\begin{patch}{FileNameXmpPagePatch1}
\begin{paste}{FileNameXmpPageFull1}{FileNameXmpPageEmpty1}
\pastebutton{FileNameXmpPageFull1}{\hidepaste}
\tab{5}\spadcommand{fn: FileName\bound{fndecl }}
\indentrel{3}\begin{verbatim}
                                             Type: Void
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{FileNameXmpPageEmpty1}
\begin{paste}{FileNameXmpPageEmpty1}{FileNameXmpPagePatch1}
\pastebutton{FileNameXmpPageEmpty1}{\showpaste}
\tab{5}\spadcommand{fn: FileName\bound{fndecl }}
\end{paste}\end{patch}

\begin{patch}{FileNameXmpPagePatch2}
\begin{paste}{FileNameXmpPageFull2}{FileNameXmpPageEmpty2}
\pastebutton{FileNameXmpPageFull2}{\hidepaste}
\tab{5}\spadcommand{fn := "/spad/src/input/fname.input"\free{fndecl }\bound{fn }}
\indentrel{3}\begin{verbatim}
   (2)  "/spad/src/input/fname.input"
                                         Type: FileName
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{FileNameXmpPageEmpty2}
\begin{paste}{FileNameXmpPageEmpty2}{FileNameXmpPagePatch2}
\pastebutton{FileNameXmpPageEmpty2}{\showpaste}
\tab{5}\spadcommand{fn := "/spad/src/input/fname.input"\free{fndecl }\bound{fn }}
\end{paste}\end{patch}

\begin{patch}{FileNameXmpPagePatch3}
\begin{paste}{FileNameXmpPageFull3}{FileNameXmpPageEmpty3}
\pastebutton{FileNameXmpPageFull3}{\hidepaste}
\tab{5}\spadcommand{directory fn\free{fn }}
\indentrel{3}\begin{verbatim}
   (3)  "/spad/src/input"
                                           Type: String
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{FileNameXmpPageEmpty3}
\begin{paste}{FileNameXmpPageEmpty3}{FileNameXmpPagePatch3}
\pastebutton{FileNameXmpPageEmpty3}{\showpaste}
\tab{5}\spadcommand{directory fn\free{fn }}
\end{paste}\end{patch}

\begin{patch}{FileNameXmpPagePatch4}
\begin{paste}{FileNameXmpPageFull4}{FileNameXmpPageEmpty4}
\pastebutton{FileNameXmpPageFull4}{\hidepaste}
\tab{5}\spadcommand{name fn\free{fn }}
\indentrel{3}\begin{verbatim}
   (4)  "fname"
                                           Type: String
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{FileNameXmpPageEmpty4}
\begin{paste}{FileNameXmpPageEmpty4}{FileNameXmpPagePatch4}
\pastebutton{FileNameXmpPageEmpty4}{\showpaste}
\tab{5}\spadcommand{name fn\free{fn }}
\end{paste}\end{patch}

\begin{patch}{FileNameXmpPagePatch5}
\begin{paste}{FileNameXmpPageFull5}{FileNameXmpPageEmpty5}
\pastebutton{FileNameXmpPageFull5}{\hidepaste}
\tab{5}\spadcommand{extension fn\free{fn }}
\indentrel{3}\begin{verbatim}
   (5)  "input"
                                           Type: String
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{FileNameXmpPageEmpty5}
\begin{paste}{FileNameXmpPageEmpty5}{FileNameXmpPagePatch5}
\pastebutton{FileNameXmpPageEmpty5}{\showpaste}
\tab{5}\spadcommand{extension fn\free{fn }}
\end{paste}\end{patch}

\begin{patch}{FileNameXmpPagePatch6}
\begin{paste}{FileNameXmpPageFull6}{FileNameXmpPageEmpty6}
\pastebutton{FileNameXmpPageFull6}{\hidepaste}
\tab{5}\spadcommand{fn := filename("/u/smwatt/work", "fname", "input")\free{fndecl }\bound{fn1 }}
\indentrel{3}\begin{verbatim}
   (6)  "/u/smwatt/work/fname.input"
                                         Type: FileName
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{FileNameXmpPageEmpty6}
\begin{paste}{FileNameXmpPageEmpty6}{FileNameXmpPagePatch6}
\pastebutton{FileNameXmpPageEmpty6}{\showpaste}
\tab{5}\spadcommand{fn := filename("/u/smwatt/work", "fname", "input")\free{fndecl }\bound{fn1 }}
\end{paste}\end{patch}

\begin{patch}{FileNameXmpPagePatch7}
\begin{paste}{FileNameXmpPageFull7}{FileNameXmpPageEmpty7}
\pastebutton{FileNameXmpPageFull7}{\hidepaste}
\tab{5}\spadcommand{objdir := "/tmp"\bound{objdir }}
\indentrel{3}\begin{verbatim}
   (7)  "/tmp"
                                           Type: String
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{FileNameXmpPageEmpty7}
\begin{paste}{FileNameXmpPageEmpty7}{FileNameXmpPagePatch7}
\pastebutton{FileNameXmpPageEmpty7}{\showpaste}
\tab{5}\spadcommand{objdir := "/tmp"\bound{objdir }}
\end{paste}\end{patch}

\begin{patch}{FileNameXmpPagePatch8}
\begin{paste}{FileNameXmpPageFull8}{FileNameXmpPageEmpty8}
\pastebutton{FileNameXmpPageFull8}{\hidepaste}
\tab{5}\spadcommand{fn := filename(objdir, "table", "spad")\free{fndecl objdir }\bound{fn2 }}
\indentrel{3}\begin{verbatim}
   (8)  "/tmp/table.spad"
                                         Type: FileName
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{FileNameXmpPageEmpty8}
\begin{paste}{FileNameXmpPageEmpty8}{FileNameXmpPagePatch8}
\pastebutton{FileNameXmpPageEmpty8}{\showpaste}
\tab{5}\spadcommand{fn := filename(objdir, "table", "spad")\free{fndecl objdir }\bound{fn2 }}
\end{paste}\end{patch}

\begin{patch}{FileNameXmpPagePatch9}
\begin{paste}{FileNameXmpPageFull9}{FileNameXmpPageEmpty9}
\pastebutton{FileNameXmpPageFull9}{\hidepaste}
\tab{5}\spadcommand{fn := filename("", "letter", "")\free{fndecl }\bound{fn3 }}
\indentrel{3}\begin{verbatim}
   (9)  "letter"
                                         Type: FileName
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{FileNameXmpPageEmpty9}
\begin{paste}{FileNameXmpPageEmpty9}{FileNameXmpPagePatch9}
\pastebutton{FileNameXmpPageEmpty9}{\showpaste}
\tab{5}\spadcommand{fn := filename("", "letter", "")\free{fndecl }\bound{fn3 }}
\end{paste}\end{patch}

\begin{patch}{FileNameXmpPagePatch10}
\begin{paste}{FileNameXmpPageFull10}{FileNameXmpPageEmpty10}
\pastebutton{FileNameXmpPageFull10}{\hidepaste}
\tab{5}\spadcommand{exists? "/etc/passwd"}
\indentrel{3}\begin{verbatim}
   (10)  true
                                          Type: Boolean
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{FileNameXmpPageEmpty10}
\begin{paste}{FileNameXmpPageEmpty10}{FileNameXmpPagePatch10}
\pastebutton{FileNameXmpPageEmpty10}{\showpaste}
\tab{5}\spadcommand{exists? "/etc/passwd"}
\end{paste}\end{patch}

\begin{patch}{FileNameXmpPagePatch11}
\begin{paste}{FileNameXmpPageFull11}{FileNameXmpPageEmpty11}
\pastebutton{FileNameXmpPageFull11}{\hidepaste}
\tab{5}\spadcommand{readable? "/etc/passwd"}
\indentrel{3}\begin{verbatim}
   (11)  true
                                          Type: Boolean
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{FileNameXmpPageEmpty11}
\begin{paste}{FileNameXmpPageEmpty11}{FileNameXmpPagePatch11}
\pastebutton{FileNameXmpPageEmpty11}{\showpaste}
\tab{5}\spadcommand{readable? "/etc/passwd"}
\end{paste}\end{patch}

\begin{patch}{FileNameXmpPagePatch12}
\begin{paste}{FileNameXmpPageFull12}{FileNameXmpPageEmpty12}
\pastebutton{FileNameXmpPageFull12}{\hidepaste}
\tab{5}\spadcommand{readable? "/etc/security/passwd"}
\indentrel{3}\begin{verbatim}
   (12)  false
                                          Type: Boolean
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{FileNameXmpPageEmpty12}
\begin{paste}{FileNameXmpPageEmpty12}{FileNameXmpPagePatch12}
\pastebutton{FileNameXmpPageEmpty12}{\showpaste}
\tab{5}\spadcommand{readable? "/etc/security/passwd"}
\end{paste}\end{patch}

\begin{patch}{FileNameXmpPagePatch13}
\begin{paste}{FileNameXmpPageFull13}{FileNameXmpPageEmpty13}
\pastebutton{FileNameXmpPageFull13}{\hidepaste}
\tab{5}\spadcommand{readable? "/etc/passwd"}
\indentrel{3}\begin{verbatim}
   (13)  true
                                          Type: Boolean
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{FileNameXmpPageEmpty13}
\begin{paste}{FileNameXmpPageEmpty13}{FileNameXmpPagePatch13}
\pastebutton{FileNameXmpPageEmpty13}{\showpaste}
\tab{5}\spadcommand{readable? "/etc/passwd"}
\end{paste}\end{patch}

\begin{patch}{FileNameXmpPagePatch14}
\begin{paste}{FileNameXmpPageFull14}{FileNameXmpPageEmpty14}
\pastebutton{FileNameXmpPageFull14}{\hidepaste}
\tab{5}\spadcommand{writable? "/etc/passwd"}
\indentrel{3}\begin{verbatim}
   (14)  false
                                          Type: Boolean
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{FileNameXmpPageEmpty14}
\begin{paste}{FileNameXmpPageEmpty14}{FileNameXmpPagePatch14}
\pastebutton{FileNameXmpPageEmpty14}{\showpaste}
\tab{5}\spadcommand{writable? "/etc/passwd"}
\end{paste}\end{patch}

\begin{patch}{FileNameXmpPagePatch15}
\begin{paste}{FileNameXmpPageFull15}{FileNameXmpPageEmpty15}
\pastebutton{FileNameXmpPageFull15}{\hidepaste}
\tab{5}\spadcommand{writable? "/dev/null"}
\indentrel{3}\begin{verbatim}
   (15)  true
                                          Type: Boolean
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{FileNameXmpPageEmpty15}
\begin{paste}{FileNameXmpPageEmpty15}{FileNameXmpPagePatch15}
\pastebutton{FileNameXmpPageEmpty15}{\showpaste}
\tab{5}\spadcommand{writable? "/dev/null"}
\end{paste}\end{patch}

\begin{patch}{FileNameXmpPagePatch16}
\begin{paste}{FileNameXmpPageFull16}{FileNameXmpPageEmpty16}
\pastebutton{FileNameXmpPageFull16}{\hidepaste}
\tab{5}\spadcommand{writable? "/etc/DoesNotExist"}
\indentrel{3}\begin{verbatim}
   (16)  false
                                          Type: Boolean
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{FileNameXmpPageEmpty16}
\begin{paste}{FileNameXmpPageEmpty16}{FileNameXmpPagePatch16}
\pastebutton{FileNameXmpPageEmpty16}{\showpaste}
\tab{5}\spadcommand{writable? "/etc/DoesNotExist"}
\end{paste}\end{patch}

\begin{patch}{FileNameXmpPagePatch17}
\begin{paste}{FileNameXmpPageFull17}{FileNameXmpPageEmpty17}
\pastebutton{FileNameXmpPageFull17}{\hidepaste}
\tab{5}\spadcommand{writable? "/tmp/DoesNotExist"}
\indentrel{3}\begin{verbatim}
   (17)  true
                                          Type: Boolean
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{FileNameXmpPageEmpty17}
\begin{paste}{FileNameXmpPageEmpty17}{FileNameXmpPagePatch17}
\pastebutton{FileNameXmpPageEmpty17}{\showpaste}
\tab{5}\spadcommand{writable? "/tmp/DoesNotExist"}
\end{paste}\end{patch}

\begin{patch}{FileNameXmpPagePatch18}
\begin{paste}{FileNameXmpPageFull18}{FileNameXmpPageEmpty18}
\pastebutton{FileNameXmpPageFull18}{\hidepaste}
\tab{5}\spadcommand{fn := new(objdir, "xxx", "yy")\free{objdir fndecl }\bound{fn4 }}
\indentrel{3}\begin{verbatim}
   (18)  "/tmp/xxx15.yy"
                                         Type: FileName
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{FileNameXmpPageEmpty18}
\begin{paste}{FileNameXmpPageEmpty18}{FileNameXmpPagePatch18}
\pastebutton{FileNameXmpPageEmpty18}{\showpaste}
\tab{5}\spadcommand{fn := new(objdir, "xxx", "yy")\free{objdir fndecl }\bound{fn4 }}
\end{paste}\end{patch}

