Implemented the INSERT command.
[pspp-builds.git] / doc / utilities.texi
index 63a26196688d5ef7a9d307daf09e86bc85266786..94fa50744d6a4c70d48befce93b2b57438c1d658 100644 (file)
@@ -1,4 +1,4 @@
-@node Utilities, Not Implemented, Statistics, Top
+@node Utilities
 @chapter Utilities
 
 Commands that don't fit any other category are placed here.
@@ -9,6 +9,8 @@ they take effect only once, unconditionally, at the time that they are
 encountered in the input.
 
 @menu
+* ADD DOCUMENT::                Add documentary text to the active file.
+* CD::                          Change the current directory.
 * COMMENT::                     Document your syntax file.
 * DOCUMENT::                    Document the active file.
 * DISPLAY DOCUMENTS::           Display active file documents.
@@ -21,15 +23,47 @@ encountered in the input.
 * FINISH::                      Terminate the PSPP session.
 * HOST::                        Temporarily return to the operating system.
 * INCLUDE::                     Include a file within the current one.
+* INSERT::                      Insert a file within the current one.
 * PERMISSIONS::                 Change permissions on a file.
-* QUIT::                        Terminate the PSPP session.
 * SET::                         Adjust PSPP runtime parameters.
 * SHOW::                        Display runtime parameters.
 * SUBTITLE::                    Provide a document subtitle.
 * TITLE::                       Provide a document title.
 @end menu
 
-@node COMMENT, DOCUMENT, Utilities, Utilities
+@node ADD DOCUMENT
+@comment  node-name,  next,  previous,  up
+@section ADD DOCUMENT
+@vindex  ADD DOCUMENT
+
+@display
+ADD DOCUMENT 
+    'line one' 'line two' @dots{} 'last line' .
+@end display
+
+
+@cmd{ADD DOCUMENT} adds one or more lines of descriptive commentary to 
+the active file.  Documents added in this way are saved to system files.
+They can be viewed using @cmd{SYSFILE INFO} or @cmd{DISPLAY
+DOCUMENTS}.  They can be removed from the active file with @cmd{DROP
+DOCUMENTS}.
+
+Each line of documentary text must be enclosed in quotation marks, and 
+may not be more than 80 bytes long. @xref{DOCUMENT}.
+
+@node CD
+@section CD
+@vindex CD
+@cindex directory
+@cindex changing directory
+
+@display
+CD 'new directory' .
+@end display 
+
+@cmd{CD} changes the current directory.  The new directory will become that specified by the command.
+
+@node COMMENT
 @section COMMENT
 @vindex COMMENT
 @vindex *
@@ -46,12 +80,14 @@ the author and other readers of the PSPP syntax file.
 @cmd{COMMENT} can extend over any number of lines.  Don't forget to
 terminate it with a dot or a blank line.
 
-@node DOCUMENT, DISPLAY DOCUMENTS, COMMENT, Utilities
+
+
+@node DOCUMENT
 @section DOCUMENT
 @vindex DOCUMENT
 
 @display
-DOCUMENT documentary_text.
+DOCUMENT @var{documentary_text}.
 @end display
 
 @cmd{DOCUMENT} adds one or more lines of descriptive commentary to the
@@ -60,12 +96,14 @@ They can be viewed using @cmd{SYSFILE INFO} or @cmd{DISPLAY
 DOCUMENTS}.  They can be removed from the active file with @cmd{DROP
 DOCUMENTS}.
 
-Specify the documentary text following the DOCUMENT keyword.  You can
-extend the documentary text over as many lines as necessary.  Lines are
-truncated at 80 characters width.  Don't forget to terminate
-the command with a dot or a blank line.
+Specify the @var{documentary text} following the DOCUMENT keyword.  
+It is interpreted literally --- any quotes or other punctuation marks 
+will be included in the file.
+You can extend the documentary text over as many lines as necessary.  
+Lines are truncated at 80 bytes.  Don't forget to terminate
+the command with a dot or a blank line. @xref{ADD DOCUMENT}.
 
-@node DISPLAY DOCUMENTS, DISPLAY FILE LABEL, DOCUMENT, Utilities
+@node DISPLAY DOCUMENTS
 @section DISPLAY DOCUMENTS
 @vindex DISPLAY DOCUMENTS
 
@@ -77,7 +115,7 @@ DISPLAY DOCUMENTS.
 document is preceded by a line giving the time and date that it was
 added.  @xref{DOCUMENT}.
 
-@node DISPLAY FILE LABEL, DROP DOCUMENTS, DISPLAY DOCUMENTS, Utilities
+@node DISPLAY FILE LABEL
 @section DISPLAY FILE LABEL
 @vindex DISPLAY FILE LABEL
 
@@ -89,7 +127,9 @@ DISPLAY FILE LABEL.
 active file,
 if any.  @xref{FILE LABEL}.
 
-@node DROP DOCUMENTS, ECHO, DISPLAY FILE LABEL, Utilities
+This command is a PSPP extension.
+
+@node DROP DOCUMENTS
 @section DROP DOCUMENTS
 @vindex DROP DOCUMENTS
 
@@ -103,7 +143,7 @@ New documents can be added with @cmd{DOCUMENT} (@pxref{DOCUMENT}).
 @cmd{DROP DOCUMENTS} changes only the active file.  It does not modify any
 system files stored on disk.
 
-@node ECHO, ERASE, DROP DOCUMENTS, Utilities
+@node ECHO
 @section ECHO
 @vindex ECHO
 
@@ -113,7 +153,7 @@ ECHO 'arbitrary text' .
 
 Use @cmd{ECHO} to write arbitrary text to the output stream. The text should be enclosed in quotation marks following the normal rules for string tokens (@pxref{Tokens}).
 
-@node ERASE, EXECUTE, ECHO, Utilities
+@node ERASE
 @comment  node-name,  next,  previous,  up
 @section ERASE
 @vindex ERASE
@@ -127,7 +167,7 @@ file_name must be quoted.
 This command cannot be used if the SAFER setting is active.
 
 
-@node EXECUTE, FILE LABEL, ERASE, Utilities
+@node EXECUTE
 @section EXECUTE
 @vindex EXECUTE
 
@@ -138,7 +178,7 @@ EXECUTE.
 @cmd{EXECUTE} causes the active file to be read and all pending
 transformations to be executed.
 
-@node FILE LABEL, FINISH, EXECUTE, Utilities
+@node FILE LABEL
 @section FILE LABEL
 @vindex FILE LABEL
 
@@ -153,7 +193,7 @@ created during this PSPP run.
 file_label need not be quoted.  If quotes are
 included, they become part of the file label.
 
-@node FINISH, HOST, FILE LABEL, Utilities
+@node FINISH
 @section FINISH
 @vindex FINISH
 
@@ -164,9 +204,7 @@ FINISH.
 @cmd{FINISH} terminates the current PSPP session and returns
 control to the operating system.
 
-This command is not valid in interactive mode.
-
-@node HOST, INCLUDE, FINISH, Utilities
+@node HOST
 @comment  node-name,  next,  previous,  up
 @section HOST
 @vindex HOST
@@ -180,26 +218,73 @@ to the operating system.
 This command cannot be used if the SAFER setting is active.
 
 
-@node INCLUDE, PERMISSIONS, HOST, Utilities
+@node INCLUDE
 @section INCLUDE
 @vindex INCLUDE
-@vindex @@
 
 @display
-Two possible syntaxes:
-        INCLUDE 'filename'.
-        @@filename.
+        INCLUDE [FILE=]'file-name'.
 @end display
 
 @cmd{INCLUDE} causes the PSPP command processor to read an
 additional command file as if it were included bodily in the current
 command file.
-
+If errors are encountered in the included file, then command processing will 
+stop and no more commands will be processed.
 Include files may be nested to any depth, up to the limit of available
 memory.
 
-@node PERMISSIONS, QUIT, INCLUDE, Utilities
-@comment  node-name,  next,  previous,  up
+
+The @cmd{INSERT} command (@pxref{INSERT}) may be used instead of
+@cmd{INCLUDE} if you require more flexible options.
+The syntax 
+@example
+INCLUDE FILE=@var{file-name}.
+@end example
+@noindent 
+functions identically to 
+@example
+INSERT FILE=@var{file-name} ERROR=STOP CD=NO SYNTAX=BATCH.
+@end example
+
+
+@node INSERT
+@section INSERT
+@vindex INSERT
+
+@display
+     INSERT [FILE=]'file-name'
+        [CD=@{NO,YES@}]
+        [ERROR=@{CONTINUE,STOP@}]
+        [SYNTAX=@{BATCH,INTERACTIVE@}].
+@end display
+
+@cmd{INSERT} is similar to @cmd{INCLUDE} (@pxref{INCLUDE}) 
+but somewhat more flexible.
+It causes the command processor to read a file as if it were embedded in the 
+current command file.
+
+If @samp{CD=YES} is specified, then before including the file, the
+current directory  will be changed to the directory of the included
+file.  
+The default setting is @samp{CD=NO}.
+Note that this directory will remain current until it is
+changed explicitly (with the @cmd{CD} command, or a subsequent
+@cmd{INSERT} command with the @samp{CD=YES} option).
+It will not revert to its original setting even after the included
+file is finished processing.
+
+If @samp{ERROR=STOP} is specified, errors encountered in the
+inserted file will cause processing to immediately cease.
+Otherwise processing will continue at the next command.
+The default setting is @samp{ERROR=CONTINUE}.
+
+If @samp{SYNTAX=INTERACTIVE} is specified then the syntax contained in
+the included file must conform to interactive syntax
+conventions. @xref{Syntax Variants}.
+The default setting is @samp{SYNTAX=BATCH}.
+
+@node PERMISSIONS
 @section PERMISSIONS
 @vindex PERMISSIONS
 @cindex mode
@@ -208,7 +293,7 @@ memory.
 
 @display
 PERMISSIONS
-        FILE='filename'
+        FILE='file-name'
         /PERMISSIONS = @{READONLY,WRITEABLE@}.
 @end display
 
@@ -223,22 +308,7 @@ unchanged.
 This command cannot be used if the SAFER setting is active.
 
 
-@node QUIT, SET, PERMISSIONS, Utilities
-@section QUIT
-@vindex QUIT
-
-@display
-Two possible syntaxes:
-        QUIT.
-        EXIT.
-@end display
-
-@cmd{QUIT} terminates the current PSPP session and returns control
-to the operating system.  
-
-This command is not valid within a command file.
-
-@node SET, SHOW, QUIT, Utilities
+@node SET
 @section SET
 @vindex SET
 
@@ -250,6 +320,8 @@ SET
         /DECIMAL=@{DOT,COMMA@}
         /FORMAT=fmt_spec
         /EPOCH=@{AUTOMATIC,year@}
+        /RIB=@{NATIVE,MSBFIRST,LSBFIRST,VAX@}
+        /RRB=@{NATIVE,ISL,ISB,IDL,IDB,VF,VD,VG,ZS,ZL@}
 
 (program input)
         /ENDCMD='.'
@@ -276,6 +348,8 @@ SET
         /CC@{A,B,C,D,E@}=@{'npre,pre,suf,nsuf','npre.pre.suf.nsuf'@}
         /DECIMAL=@{DOT,COMMA@}
         /FORMAT=fmt_spec
+        /WIB=@{NATIVE,MSBFIRST,LSBFIRST,VAX@}
+        /WRB=@{NATIVE,ISL,ISB,IDL,IDB,VF,VD,VG,ZS,ZL@}
 
 (output routing)
         /ECHO=@{ON,OFF@}
@@ -288,12 +362,12 @@ SET
 (output driver options)
         /HEADERS=@{NO,YES,BLANK@}
         /LENGTH=@{NONE,length_in_lines@}
-        /LISTING=@{ON,OFF,filename@}
+        /LISTING=@{ON,OFF,'file-name'@}
         /MORE=@{ON,OFF@}
         /WIDTH=@{NARROW,WIDTH,n_characters@}
 
 (logging)
-        /JOURNAL=@{ON,OFF@} [filename]
+        /JOURNAL=@{ON,OFF@} ['file-name']
 
 (system files)
         /COMPRESSION=@{ON,OFF@}
@@ -338,22 +412,86 @@ system-missing value to be assigned to null items.  This is the
 default.  Any real value may be assigned.
 
 @item DECIMAL
+@anchor{SET DECIMAL}
 The default DOT setting causes the decimal point character to be
-@samp{.}.  A setting of COMMA causes the decimal point character to be
-@samp{,}.
+@samp{.} and the grouping character to be @samp{,}.  A setting of COMMA
+causes the decimal point character to be @samp{,} and the grouping
+character to be @samp{.}.
 
 @item FORMAT
 Allows the default numeric input/output format to be specified.  The
-default is F8.2.  @xref{Input/Output Formats}.
+default is F8.2.  @xref{Input and Output Formats}.
 
 @item EPOCH
 @anchor{SET EPOCH}
 Specifies the range of years used when a 2-digit year is read from a
 data file or used in a date construction expression (@pxref{Date
-Construction}).  If a 4-digit year is specified, then 2-digit years
-are interpreted starting from that year, known as the epoch.  If
-AUTOMATIC (the default) is specified, then the epoch begins 69 years
-before the current date.
+Construction}).  If a 4-digit year is specified for the epoch, then
+2-digit years are interpreted starting from that year, known as the
+epoch.  If AUTOMATIC (the default) is specified, then the epoch begins
+69 years before the current date.
+
+@item RIB
+@anchor{SET RIB} 
+
+PSPP extension to set the byte ordering (endianness) used for reading
+data in IB or PIB format (@pxref{Binary and Hexadecimal Numeric
+Formats}).  In MSBFIRST ordering, the most-significant byte appears at
+the left end of a IB or PIB field.  In LSBFIRST ordering, the
+least-significant byte appears at the left end.  VAX ordering is like
+MSBFIRST, except that each pair of bytes is in reverse order.  NATIVE,
+the default, is equivalent to MSBFIRST or LSBFIRST depending on the
+native format of the machine running PSPP.
+
+@item RRB
+@anchor{SET RRB}
+
+PSPP extension to set the floating-point format used for reading data in
+RB format (@pxref{Binary and Hexadecimal Numeric Formats}).  The
+possibilities are:
+
+@table @asis
+@item NATIVE
+The native format of the machine running PSPP.  Equivalent to either IDL
+or IDB.
+
+@item ISL
+32-bit IEEE 754 single-precision floating point, in little-endian byte
+order.
+
+@item ISB
+32-bit IEEE 754 single-precision floating point, in big-endian byte
+order.
+
+@item IDL
+64-bit IEEE 754 double-precision floating point, in little-endian byte
+order.
+
+@item IDB
+64-bit IEEE 754 double-precision floating point, in big-endian byte
+order.
+
+@item VF
+32-bit VAX F format, in VAX-endian byte order.
+
+@item VD
+64-bit VAX D format, in VAX-endian byte order.
+
+@item VG
+64-bit VAX G format, in VAX-endian byte order.
+
+@item ZS
+32-bit IBM Z architecture short format hexadecimal floating point, in
+big-endian byte order.  
+
+@item ZL
+64-bit IBM Z architecture long format hexadecimal floating point, in
+big-endian byte order.
+
+Z architecture also supports IEEE 754 floating point.  The ZS and ZL
+formats are only for use with very old input files.
+@end table
+The default is NATIVE.
 @end table
 
 Program input subcommands affect the way that programs are parsed when
@@ -426,18 +564,10 @@ subcommands are
 @itemx CCC
 @itemx CCD
 @itemx CCE
-Set up custom currency formats.  The argument is a string which must
-contain exactly three commas or exactly three periods.  If commas, then
-the grouping character for the currency format is @samp{,}, and the
-decimal point character is @samp{.}; if periods, then the situation is
-reversed.  
-
-The commas or periods divide the string into four fields, which are, in
-order, the negative prefix, prefix, suffix, and negative suffix.  When a
-value is formatted using the custom currency format, the prefix precedes
-the value formatted and the suffix follows it.  In addition, if the
-value is negative, the negative prefix precedes the prefix and the
-negative suffix follows the suffix.
+@anchor{CCx Settings}
+
+Set up custom currency formats.  @xref{Custom Currency Formats}, for
+details.
 
 @item DECIMAL
 The default DOT setting causes the decimal point character to be
@@ -446,7 +576,26 @@ The default DOT setting causes the decimal point character to be
 
 @item FORMAT
 Allows the default numeric input/output format to be specified.  The
-default is F8.2.  @xref{Input/Output Formats}.
+default is F8.2.  @xref{Input and Output Formats}.
+
+@item WIB
+@anchor{SET WIB} 
+
+PSPP extension to set the byte ordering (endianness) used for writing
+data in IB or PIB format (@pxref{Binary and Hexadecimal Numeric
+Formats}).  In MSBFIRST ordering, the most-significant byte appears at
+the left end of a IB or PIB field.  In LSBFIRST ordering, the
+least-significant byte appears at the left end.  VAX ordering is like
+MSBFIRST, except that each pair of bytes is in reverse order.  NATIVE,
+the default, is equivalent to MSBFIRST or LSBFIRST depending on the
+native format of the machine running PSPP.
+
+@item WRB
+@anchor{SET WRB}
+
+PSPP extension to set the floating-point format used for writing data in
+RB format (@pxref{Binary and Hexadecimal Numeric Formats}).  The choices
+are the same as SET RIB.  The default is NATIVE.
 @end table
 
 Output routing subcommands affect where the output of transformations
@@ -491,8 +640,16 @@ files.  These subcommands are
 
 @table @asis
 @item JOURNAL
-@item LOG
-Not currently used.
+@itemx LOG
+These subcommands, which are synonyms, control the journal.  The
+default is ON, which causes commands entered interactively to be
+written to the journal file.  Commands included from syntax files that
+are included interactively and error messages printed by PSPP are also
+written to the journal file, prefixed by @samp{>}.  OFF disables use
+of the journal.
+
+The journal is named @file{pspp.jnl} by default.  A different name may
+be specified.
 @end table
 
 System file subcommands affect the default format of system files
@@ -522,7 +679,7 @@ The HOST command.
 @item
 The PERMISSIONS command.
 @item
-Pipe filenames (filenames beginning or ending with @samp{|}).
+Pipes (file names beginning or ending with @samp{|}).
 @end itemize
 
 Be aware that this setting does not guarantee safety (commands can still
@@ -531,7 +688,7 @@ When set, this setting cannot be reset during the same session, for
 obvious security reasons.
 @end table
 
-@node SHOW, SUBTITLE, SET, Utilities
+@node SHOW
 @comment  node-name,  next,  previous,  up
 @section SHOW
 @vindex SHOW
@@ -580,7 +737,7 @@ Display the terms of PSPP's copyright licence (@pxref{License}).
 
 Specifying @cmd{SHOW} without any subcommands is equivalent to SHOW ALL.
 
-@node SUBTITLE, TITLE, SHOW, Utilities
+@node SUBTITLE
 @section SUBTITLE
 @vindex SUBTITLE
 
@@ -598,7 +755,7 @@ Specify a subtitle as a string in quotes.  The alternate syntax that did
 not require quotes is now obsolete.  If it is used then the subtitle is
 converted to all uppercase.
 
-@node TITLE,  , SUBTITLE, Utilities
+@node TITLE
 @section TITLE
 @vindex TITLE