Delete trailing whitespace at line endings.
[pspp] / doc / utilities.texi
1 @c PSPP - a program for statistical analysis.
2 @c Copyright (C) 2017 Free Software Foundation, Inc.
3 @c Permission is granted to copy, distribute and/or modify this document
4 @c under the terms of the GNU Free Documentation License, Version 1.3
5 @c or any later version published by the Free Software Foundation;
6 @c with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
7 @c A copy of the license is included in the section entitled "GNU
8 @c Free Documentation License".
9 @c
10 @node Utilities
11 @chapter Utilities
12
13 Commands that don't fit any other category are placed here.
14
15 Most of these commands are not affected by commands like @cmd{IF} and
16 @cmd{LOOP}:
17 they take effect only once, unconditionally, at the time that they are
18 encountered in the input.
19
20 @menu
21 * ADD DOCUMENT::                Add documentary text to the active dataset.
22 * CACHE::                       Ignored for compatibility.
23 * CD::                          Change the current directory.
24 * COMMENT::                     Document your syntax file.
25 * DOCUMENT::                    Document the active dataset.
26 * DISPLAY DOCUMENTS::           Display active dataset documents.
27 * DISPLAY FILE LABEL::          Display the active dataset label.
28 * DROP DOCUMENTS::              Remove documents from the active dataset.
29 * ECHO::                        Write a string to the output stream.
30 * ERASE::                       Erase a file.
31 * EXECUTE::                     Execute pending transformations.
32 * FILE LABEL::                  Set the active dataset's label.
33 * FINISH::                      Terminate the @pspp{} session.
34 * HOST::                        Temporarily return to the operating system.
35 * INCLUDE::                     Include a file within the current one.
36 * INSERT::                      Insert a file within the current one.
37 * OUTPUT::                      Modify the appearance of the output.
38 * PERMISSIONS::                 Change permissions on a file.
39 * PRESERVE and RESTORE::        Saving settings and restoring them later.
40 * SET::                         Adjust @pspp{} runtime parameters.
41 * SHOW::                        Display runtime parameters.
42 * SUBTITLE::                    Provide a document subtitle.
43 * TITLE::                       Provide a document title.
44 @end menu
45
46 @node ADD DOCUMENT
47 @section ADD DOCUMENT
48 @vindex  ADD DOCUMENT
49
50 @display
51 ADD DOCUMENT
52     'line one' 'line two' @dots{} 'last line' .
53 @end display
54
55
56 @cmd{ADD DOCUMENT} adds one or more lines of descriptive commentary to
57 the active dataset.  Documents added in this way are saved to system files.
58 They can be viewed using @cmd{SYSFILE INFO} or @cmd{DISPLAY
59 DOCUMENTS}.  They can be removed from the active dataset with @cmd{DROP
60 DOCUMENTS}.
61
62 Each line of documentary text must be enclosed in quotation marks, and
63 may not be more than 80 bytes long. @xref{DOCUMENT}.
64
65 @node CACHE
66 @section CACHE
67 @vindex CACHE
68
69 @display
70 CACHE.
71 @end display
72
73 This command is accepted, for compatibility, but it has no effect.
74
75 @node CD
76 @section CD
77 @vindex CD
78 @cindex directory
79 @cindex changing directory
80
81 @display
82 CD 'new directory' .
83 @end display
84
85 @cmd{CD} changes the current directory.  The new directory will become that specified by the command.
86
87 @node COMMENT
88 @section COMMENT
89 @vindex COMMENT
90 @vindex *
91
92 @display
93 Two possibles syntaxes:
94         COMMENT comment text @dots{} .
95         *comment text @dots{} .
96 @end display
97
98 @cmd{COMMENT} is ignored.  It is used to provide information to
99 the author and other readers of the @pspp{} syntax file.
100
101 @cmd{COMMENT} can extend over any number of lines.  Don't forget to
102 terminate it with a dot or a blank line.
103
104
105
106 @node DOCUMENT
107 @section DOCUMENT
108 @vindex DOCUMENT
109
110 @display
111 DOCUMENT @var{documentary_text}.
112 @end display
113
114 @cmd{DOCUMENT} adds one or more lines of descriptive commentary to the
115 active dataset.  Documents added in this way are saved to system files.
116 They can be viewed using @cmd{SYSFILE INFO} or @cmd{DISPLAY
117 DOCUMENTS}.  They can be removed from the active dataset with @cmd{DROP
118 DOCUMENTS}.
119
120 Specify the @var{documentary text} following the @subcmd{DOCUMENT} keyword.
121 It is interpreted literally---any quotes or other punctuation marks
122 will be included in the file.
123 You can extend the documentary text over as many lines as necessary,
124 including blank lines to separate paragraphs.
125 Lines are truncated at 80 bytes.  Don't forget to terminate
126 the command with a dot at the end of a line. @xref{ADD DOCUMENT}.
127
128 @node DISPLAY DOCUMENTS
129 @section DISPLAY DOCUMENTS
130 @vindex DISPLAY DOCUMENTS
131
132 @display
133 DISPLAY DOCUMENTS.
134 @end display
135
136 @cmd{DISPLAY DOCUMENTS} displays the documents in the active dataset.  Each
137 document is preceded by a line giving the time and date that it was
138 added.  @xref{DOCUMENT}.
139
140 @node DISPLAY FILE LABEL
141 @section DISPLAY FILE LABEL
142 @vindex DISPLAY FILE LABEL
143
144 @display
145 DISPLAY FILE LABEL.
146 @end display
147
148 @cmd{DISPLAY FILE LABEL} displays the file label contained in the
149 active dataset,
150 if any.  @xref{FILE LABEL}.
151
152 This command is a @pspp{} extension.
153
154 @node DROP DOCUMENTS
155 @section DROP DOCUMENTS
156 @vindex DROP DOCUMENTS
157
158 @display
159 DROP DOCUMENTS.
160 @end display
161
162 @cmd{DROP DOCUMENTS} removes all documents from the active dataset.
163 New documents can be added with @cmd{DOCUMENT} (@pxref{DOCUMENT}).
164
165 @cmd{DROP DOCUMENTS} changes only the active dataset.  It does not modify any
166 system files stored on disk.
167
168 @node ECHO
169 @section ECHO
170 @vindex ECHO
171
172 @display
173 ECHO 'arbitrary text' .
174 @end display
175
176 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}).
177
178 @node ERASE
179 @section ERASE
180 @vindex ERASE
181
182 @display
183 ERASE FILE @var{file_name}.
184 @end display
185
186 @cmd{ERASE FILE} deletes a file from the local file system.
187 @var{file_name} must be quoted.
188 This command cannot be used if the SAFER (@pxref{SET}) setting is active.
189
190
191 @node EXECUTE
192 @section EXECUTE
193 @vindex EXECUTE
194
195 @display
196 EXECUTE.
197 @end display
198
199 @cmd{EXECUTE} causes the active dataset to be read and all pending
200 transformations to be executed.
201
202 @node FILE LABEL
203 @section FILE LABEL
204 @vindex FILE LABEL
205
206 @display
207 FILE LABEL @var{file_label}.
208 @end display
209
210 @cmd{FILE LABEL} provides a title for the active dataset.  This
211 title will be saved into system files and portable files that are
212 created during this @pspp{} run.
213
214 @var{file_label} should not be quoted.
215 If quotes are included, they are literally interpreted and become part of the file label.
216
217 @node FINISH
218 @section FINISH
219 @vindex FINISH
220
221 @display
222 FINISH.
223 @end display
224
225 @cmd{FINISH} terminates the current @pspp{} session and returns
226 control to the operating system.
227
228 @node HOST
229 @section HOST
230 @vindex HOST
231
232 @display
233 HOST.
234 HOST COMMAND=['@var{command}'...].
235 @end display
236
237 @cmd{HOST} suspends the current @pspp{} session and temporarily returns control
238 to the operating system.
239 This command cannot be used if the SAFER (@pxref{SET}) setting is active.
240
241 If the @subcmd{COMMAND} subcommand is specified, as a sequence of shell
242 commands as quoted strings within square brackets, then @pspp{} executes
243 them together in a single subshell.
244
245 If no subcommands are specified, then @pspp{} invokes an interactive
246 subshell.
247
248 @node INCLUDE
249 @section INCLUDE
250 @vindex INCLUDE
251
252 @display
253         INCLUDE [FILE=]'@var{file_name}' [ENCODING='@var{encoding}'].
254 @end display
255
256 @cmd{INCLUDE} causes the @pspp{} command processor to read an
257 additional command file as if it were included bodily in the current
258 command file.
259 If errors are encountered in the included file, then command processing will
260 stop and no more commands will be processed.
261 Include files may be nested to any depth, up to the limit of available
262 memory.
263
264 The @cmd{INSERT} command (@pxref{INSERT}) is a more flexible
265 alternative to @cmd{INCLUDE}.  An @cmd{INCLUDE} command acts the same as
266 @cmd{INSERT} with @subcmd{ERROR=STOP CD=NO SYNTAX=BATCH} specified.
267
268 The optional @subcmd{ENCODING} subcommand has the same meaning as with @cmd{INSERT}.
269
270 @node INSERT
271 @section INSERT
272 @vindex INSERT
273
274 @display
275      INSERT [FILE=]'@var{file_name}'
276         [CD=@{NO,YES@}]
277         [ERROR=@{CONTINUE,STOP@}]
278         [SYNTAX=@{BATCH,INTERACTIVE@}]
279         [ENCODING=@{LOCALE, '@var{charset_name}'@}].
280 @end display
281
282 @cmd{INSERT} is similar to @cmd{INCLUDE} (@pxref{INCLUDE})
283 but somewhat more flexible.
284 It causes the command processor to read a file as if it were embedded in the
285 current command file.
286
287 If @subcmd{CD=YES} is specified, then before including the file, the
288 current directory  will be changed to the directory of the included
289 file.
290 The default setting is @samp{CD=NO}.
291 Note that this directory will remain current until it is
292 changed explicitly (with the @cmd{CD} command, or a subsequent
293 @cmd{INSERT} command with the @samp{CD=YES} option).
294 It will not revert to its original setting even after the included
295 file is finished processing.
296
297 If @subcmd{ERROR=STOP} is specified, errors encountered in the
298 inserted file will cause processing to immediately cease.
299 Otherwise processing will continue at the next command.
300 The default setting is @subcmd{ERROR=CONTINUE}.
301
302 If @subcmd{SYNTAX=INTERACTIVE} is specified then the syntax contained in
303 the included file must conform to interactive syntax
304 conventions. @xref{Syntax Variants}.
305 The default setting is @subcmd{SYNTAX=BATCH}.
306
307 @subcmd{ENCODING} optionally specifies the character set used by the included
308 file.  Its argument, which is not case-sensitive, must be in one of
309 the following forms:
310
311 @table @asis
312 @item @subcmd{LOCALE}
313 The encoding used by the system locale, or as overridden by the
314 @cmd{SET} command (@pxref{SET}).  On GNU/Linux and other Unix-like systems,
315 environment variables, e.g.@: @env{LANG} or @env{LC_ALL}, determine the
316 system locale.
317
318 @item @var{charset_name}
319 One of the character set names listed by @acronym{IANA} at
320 @uref{http://www.iana.org/assignments/character-sets}.  Some examples
321 are @code{ASCII} (United States), @code{ISO-8859-1} (western Europe),
322 @code{EUC-JP} (Japan), and @code{windows-1252} (Windows).  Not all
323 systems support all character sets.
324
325 @item @code{Auto,@var{encoding}}
326 Automatically detects whether a syntax file is encoded in an Unicode
327 encoding such as UTF-8, UTF-16, or UTF-32.  If it is not, then @pspp{}
328 generally assumes that the file is encoded in @var{encoding} (an @acronym{IANA}
329 character set name).  However, if @var{encoding} is UTF-8, and the
330 syntax file is not valid UTF-8, @pspp{} instead assumes that the file
331 is encoded in @code{windows-1252}.
332
333 For best results, @var{encoding} should be an @acronym{ASCII}-compatible
334 encoding (the most common locale encodings are all @acronym{ASCII}-compatible),
335 because encodings that are not @acronym{ASCII} compatible cannot be
336 automatically distinguished from UTF-8.
337
338 @item @code{Auto}
339 @item @code{Auto,Locale}
340 Automatic detection, as above, with the default encoding taken from
341 the system locale or the setting on @subcmd{SET LOCALE}.
342 @end table
343
344 When ENCODING is not specified, the default is taken from the
345 @option{--syntax-encoding} command option, if it was specified, and
346 otherwise it is @code{Auto}.
347
348 @node OUTPUT
349 @section OUTPUT
350 @vindex OUTPUT
351 @cindex precision, of output
352 @cindex decimal places
353
354 @display
355 OUTPUT MODIFY
356        /SELECT TABLES
357        /TABLECELLS SELECT = [ @var{class}... ]
358                    FORMAT = @var{fmt_spec}.
359 @end display
360 @note{In the above synopsis the characters @samp{[} and @samp{]} are literals.
361 They must appear in the syntax to be interpreted.}
362
363 @cmd{OUTPUT} changes the appearance of the tables in which results are printed.
364 In particular, it can be used to set the format and precision to which results are displayed.
365
366 After running this command, the default table appearance parameters will have been modified and  each
367 new output table generated will use the new parameters.
368
369 Following @code{/TABLECELLS SELECT =} a list of cell classes must appear, enclosed in square
370 brackets.  This list determines the classes of values should be selected for modification.
371 Each class can be:
372
373 @table @asis
374 @item RESIDUAL
375 Residual values.  Default: @t{F40.2}.
376
377 @item CORRELATION
378 Correlations.  Default: @t{F40.3}.
379
380 @item PERCENT
381 Percentages.  Default: @t{PCT40.1}.
382
383 @item SIGNIFICANCE
384 Significance of tests (p-values).  Default: @t{F40.3}.
385
386 @item COUNT
387 Counts or sums of weights.  For a weighted data set, the default is
388 the weight variable's print format.  For an unweighted data set, the
389 default is F40.0.
390 @end table
391
392 For most other numeric values that appear in tables, @code{SET FORMAT}
393 may be used to specify the format (@pxref{SET FORMAT}).
394
395 The value of @var{fmt_spec} must be a valid output format (@pxref{Input and Output Formats}).
396 Note that not all possible formats are meaningful for all classes.
397
398 @node PERMISSIONS
399 @section PERMISSIONS
400 @vindex PERMISSIONS
401 @cindex mode
402 @cindex file mode
403 @cindex changing file permissions
404
405 @display
406 PERMISSIONS
407         FILE='@var{file_name}'
408         /PERMISSIONS = @{READONLY,WRITEABLE@}.
409 @end display
410
411 @cmd{PERMISSIONS} changes the permissions of a file.
412 There is one mandatory subcommand which specifies the permissions to
413 which the file should be changed.
414 If you set a file's  permission  to @subcmd{READONLY}, then the file will become
415 unwritable either by you or anyone else on the system.
416 If you set the permission to @subcmd{WRITEABLE}, then the file will become
417 writeable by you; the permissions afforded to others will be
418 unchanged.
419 This command cannot be used if the @subcmd{SAFER} (@pxref{SET}) setting is active.
420
421
422 @node PRESERVE and RESTORE
423 @section PRESERVE and RESTORE
424 @vindex PRESERVE
425 @vindex RESTORE
426
427 @display
428 PRESERVE.
429 @dots{}
430 RESTORE.
431 @end display
432
433 @cmd{PRESERVE} saves all of the settings that @cmd{SET} (@pxref{SET})
434 can adjust.  A later @cmd{RESTORE} command restores those settings.
435
436 @cmd{PRESERVE} can be nested up to five levels deep.
437
438 @node SET
439 @section SET
440 @vindex SET
441
442 @display
443 SET
444
445 (data input)
446         /BLANKS=@{SYSMIS,'.',number@}
447         /DECIMAL=@{DOT,COMMA@}
448         /FORMAT=@var{fmt_spec}
449         /EPOCH=@{AUTOMATIC,@var{year}@}
450         /RIB=@{NATIVE,MSBFIRST,LSBFIRST,VAX@}
451         /RRB=@{NATIVE,ISL,ISB,IDL,IDB,VF,VD,VG,ZS,ZL@}
452
453 (interaction)
454         /MXERRS=@var{max_errs}
455         /MXWARNS=@var{max_warnings}
456         /WORKSPACE=@var{workspace_size}
457
458 (syntax execution)
459         /LOCALE='@var{locale}'
460         /MEXPAND=@{ON,OFF@}
461         /MITERATE=@var{max_iterations}
462         /MNEST=@var{max_nest}
463         /MPRINT=@{ON,OFF@}
464         /MXLOOPS=@var{max_loops}
465         /SEED=@{RANDOM,@var{seed_value}@}
466         /UNDEFINED=@{WARN,NOWARN@}
467         /FUZZBITS=@var{fuzzbits}
468
469 (data output)
470         /CC@{A,B,C,D,E@}=@{'@var{npre},@var{pre},@var{suf},@var{nsuf}','@var{npre}.@var{pre}.@var{suf}.@var{nsuf}'@}
471         /DECIMAL=@{DOT,COMMA@}
472         /FORMAT=@var{fmt_spec}
473         /WIB=@{NATIVE,MSBFIRST,LSBFIRST,VAX@}
474         /WRB=@{NATIVE,ISL,ISB,IDL,IDB,VF,VD,VG,ZS,ZL@}
475
476 (output routing)
477         /ERRORS=@{ON,OFF,TERMINAL,LISTING,BOTH,NONE@}
478         /MESSAGES=@{ON,OFF,TERMINAL,LISTING,BOTH,NONE@}
479         /PRINTBACK=@{ON,OFF,TERMINAL,LISTING,BOTH,NONE@}
480         /RESULTS=@{ON,OFF,TERMINAL,LISTING,BOTH,NONE@}
481
482 (output driver options)
483         /HEADERS=@{NO,YES,BLANK@}
484         /LENGTH=@{NONE,@var{n_lines}@}
485         /WIDTH=@{NARROW,WIDTH,@var{n_characters}@}
486         /TNUMBERS=@{VALUES,LABELS,BOTH@}
487         /TVARS=@{NAMES,LABELS,BOTH@}
488
489 (logging)
490         /JOURNAL=@{ON,OFF@} ['@var{file_name}']
491
492 (system files)
493         /COMPRESSION=@{ON,OFF@}
494         /SCOMPRESSION=@{ON,OFF@}
495
496 (miscellaneous)
497         /SAFER=ON
498         /LOCALE='@var{string}'
499
500
501 (obsolete settings accepted for compatibility, but ignored)
502         /BOXSTRING=@{'@var{xxx}','@var{xxxxxxxxxxx}'@}
503         /CASE=@{UPPER,UPLOW@}
504         /CPI=cpi_value
505         /HIGHRES=@{ON,OFF@}
506         /HISTOGRAM='@var{c}'
507         /LOWRES=@{AUTO,ON,OFF@}
508         /LPI=@var{lpi_value}
509         /MENUS=@{STANDARD,EXTENDED@}
510         /MXMEMORY=@var{max_memory}
511         /SCRIPTTAB='c'
512         /TB1=@{'@var{xxx}','@var{xxxxxxxxxxx}'@}
513         /TBFONTS='@var{string}'
514         /XSORT=@{YES,NO@}
515 @end display
516
517 @cmd{SET} allows the user to adjust several parameters relating to
518 @pspp{}'s execution.  Since there are many subcommands to this command, its
519 subcommands will be examined in groups.
520
521 For subcommands that take boolean values, @subcmd{ON} and @subcmd{YES} are synonymous,
522 as are @subcmd{OFF} and @subcmd{NO}, when used as subcommand values.
523
524 The data input subcommands affect the way that data is read from data
525 files.  The data input subcommands are
526
527 @table @asis
528 @item BLANKS
529 @anchor{SET BLANKS}
530 This is the value assigned to an item data item that is empty or
531 contains only white space.  An argument of SYSMIS or '.' will cause the
532 system-missing value to be assigned to null items.  This is the
533 default.  Any real value may be assigned.
534
535 @item DECIMAL
536 @anchor{SET DECIMAL}
537 This value may be set to @subcmd{DOT} or @subcmd{COMMA}.
538 Setting it to @subcmd{DOT} causes the decimal point character to be
539 @samp{.} and the grouping character to be @samp{,}.
540 Setting it to @subcmd{COMMA}
541 causes the decimal point character to be @samp{,} and the grouping
542 character to be @samp{.}.
543 If the setting is @subcmd{COMMA}, then @samp{,} will not be treated
544 as a field separator in the @cmd{DATA LIST} command (@pxref{DATA LIST}).
545 The default value is determined from the system locale.
546
547 @item FORMAT
548 @anchor{SET FORMAT}
549 Allows the default numeric input/output format to be specified.  The
550 default is F8.2.  @xref{Input and Output Formats}.
551
552 @item EPOCH
553 @anchor{SET EPOCH}
554 Specifies the range of years used when a 2-digit year is read from a
555 data file or used in a date construction expression (@pxref{Date
556 Construction}).  If a 4-digit year is specified for the epoch, then
557 2-digit years are interpreted starting from that year, known as the
558 epoch.  If @subcmd{AUTOMATIC} (the default) is specified, then the epoch begins
559 69 years before the current date.
560
561 @item RIB
562 @anchor{SET RIB}
563
564 @pspp{} extension to set the byte ordering (endianness) used for reading
565 data in IB or PIB format (@pxref{Binary and Hexadecimal Numeric
566 Formats}).  In @subcmd{MSBFIRST} ordering, the most-significant byte appears at
567 the left end of a IB or PIB field.  In @subcmd{LSBFIRST} ordering, the
568 least-significant byte appears at the left end.  @subcmd{VAX} ordering is like
569 @subcmd{MSBFIRST}, except that each pair of bytes is in reverse order.  @subcmd{NATIVE},
570 the default, is equivalent to @subcmd{MSBFIRST} or @subcmd{LSBFIRST} depending on the
571 native format of the machine running @pspp{}.
572
573 @item RRB
574 @anchor{SET RRB}
575
576 @pspp{} extension to set the floating-point format used for reading data in
577 RB format (@pxref{Binary and Hexadecimal Numeric Formats}).  The
578 possibilities are:
579
580 @table @asis
581 @item NATIVE
582 The native format of the machine running @pspp{}.  Equivalent to either IDL
583 or IDB.
584
585 @item ISL
586 32-bit IEEE 754 single-precision floating point, in little-endian byte
587 order.
588
589 @item ISB
590 32-bit IEEE 754 single-precision floating point, in big-endian byte
591 order.
592
593 @item IDL
594 64-bit IEEE 754 double-precision floating point, in little-endian byte
595 order.
596
597 @item IDB
598 64-bit IEEE 754 double-precision floating point, in big-endian byte
599 order.
600
601 @item VF
602 32-bit VAX F format, in VAX-endian byte order.
603
604 @item VD
605 64-bit VAX D format, in VAX-endian byte order.
606
607 @item VG
608 64-bit VAX G format, in VAX-endian byte order.
609
610 @item ZS
611 32-bit IBM Z architecture short format hexadecimal floating point, in
612 big-endian byte order.
613
614 @item ZL
615 64-bit IBM Z architecture long format hexadecimal floating point, in
616 big-endian byte order.
617
618 Z architecture also supports IEEE 754 floating point.  The ZS and ZL
619 formats are only for use with very old input files.
620 @end table
621 The default is NATIVE.
622 @end table
623
624 Interaction subcommands affect the way that @pspp{} interacts with an
625 online user.  The interaction subcommands are
626
627 @table @asis
628 @item MXERRS
629 The maximum number of errors before @pspp{} halts processing of the current
630 command file.  The default is 50.
631
632 @item MXWARNS
633 The maximum number of warnings + errors before @pspp{} halts processing the
634 current command file.
635 The special value of zero means that all warning situations should be ignored.
636 No warnings will be issued, except a single initial warning advising the user
637 that warnings will not be given.
638 The default value is 100.
639 @end table
640
641 Syntax execution subcommands control the way that @pspp{} commands
642 execute.  The syntax execution subcommands are
643
644 @table @asis
645 @item LOCALE
646 Overrides the system locale for the purpose of reading and writing
647 syntax and data files.  The argument should be a locale name in the
648 general form @code{@var{language}_@var{country}.@var{encoding}}, where @var{language}
649 and @var{country} are 2-character language and country abbreviations,
650 respectively, and @var{encoding} is an @acronym{IANA} character set name.
651 Example locales are @code{en_US.UTF-8} (UTF-8 encoded English as
652 spoken in the United States) and @code{ja_JP.EUC-JP} (EUC-JP encoded
653 Japanese as spoken in Japan).
654
655 @item MEXPAND
656 @itemx MITERATE
657 @itemx MNEST
658 @itemx MPRINT
659 Currently not used.
660
661 @item MXLOOPS
662 The maximum number of iterations for an uncontrolled loop (@pxref{LOOP}).
663 The default @var{max_loops} is 40.
664
665 @item SEED
666 The initial pseudo-random number seed.  Set to a real number or to
667 RANDOM, which will obtain an initial seed from the current time of day.
668
669 @item UNDEFINED
670 Currently not used.
671
672 @item FUZZBITS
673 @anchor{SET FUZZBITS}
674 The maximum number of bits of errors in the least-significant places
675 to accept for rounding up a value that is almost halfway between two
676 possibilities for rounding with the RND operator (@pxref{Miscellaneous
677 Mathematics}).  The default @var{fuzzbits} is 6.
678
679 @item WORKSPACE
680 The maximum amount of memory (in kilobytes) that @pspp{} will use to store data being processed.
681 If memory in excess of the workspace size is required, then @pspp{} will start
682 to use temporary files to store the data.
683 Setting a higher value will, in general, mean procedures will run faster,
684 but may cause other applications to run slower.
685 On platforms without virtual memory management, setting a very large workspace
686 may cause @pspp{} to abort.
687 @cindex workspace
688 @cindex memory, amount used to store cases
689 @end table
690
691 Data output subcommands affect the format of output data.  These
692 subcommands are
693
694 @table @asis
695 @item CCA
696 @itemx CCB
697 @itemx CCC
698 @itemx CCD
699 @itemx CCE
700 @anchor{CCx Settings}
701
702 Set up custom currency formats.  @xref{Custom Currency Formats}, for
703 details.
704
705 @item DECIMAL
706 The default @subcmd{DOT} setting causes the decimal point character to be
707 @samp{.}.  A setting of @subcmd{COMMA} causes the decimal point character to be
708 @samp{,}.
709
710 @item FORMAT
711 Allows the default numeric input/output format to be specified.  The
712 default is F8.2.  @xref{Input and Output Formats}.
713
714 @item WIB
715 @anchor{SET WIB}
716
717 @pspp{} extension to set the byte ordering (endianness) used for writing
718 data in IB or PIB format (@pxref{Binary and Hexadecimal Numeric
719 Formats}).  In @subcmd{MSBFIRST} ordering, the most-significant byte appears at
720 the left end of a IB or PIB field.  In @subcmd{LSBFIRST} ordering, the
721 least-significant byte appears at the left end.  @subcmd{VAX} ordering is like
722 @subcmd{MSBFIRST}, except that each pair of bytes is in reverse order.  @subcmd{NATIVE},
723 the default, is equivalent to @subcmd{MSBFIRST} or @subcmd{LSBFIRST} depending on the
724 native format of the machine running @pspp{}.
725
726 @item WRB
727 @anchor{SET WRB}
728
729 @pspp{} extension to set the floating-point format used for writing data in
730 RB format (@pxref{Binary and Hexadecimal Numeric Formats}).  The choices
731 are the same as @subcmd{SET RIB}.  The default is @subcmd{NATIVE}.
732 @end table
733
734 In the @pspp{} text-based interface, the output routing subcommands
735 affect where output is sent.  The following values are allowed for
736 each of these subcommands:
737
738 @table @asis
739 @item OFF
740 @item NONE
741 Discard this kind of output.
742
743 @item TERMINAL
744 Write this output to the terminal, but not to listing files and other
745 output devices.
746
747 @item LISTING
748 Write this output to listing files and other output devices, but not
749 to the terminal.
750
751 @item ON
752 @itemx BOTH
753 Write this type of output to all output devices.
754 @end table
755
756 These output routing subcommands are:
757
758 @table @asis
759 @item ERRORS
760 Applies to error and warning messages.  The default is @subcmd{BOTH}.
761
762 @item MESSAGES
763 Applies to notes.  The default is @subcmd{BOTH}.
764
765 @item PRINTBACK
766 Determines whether the syntax used for input is printed back as part
767 of the output.  The default is @subcmd{NONE}.
768
769 @item RESULTS
770 Applies to everything not in one of the above categories, such as the
771 results of statistical procedures.  The default is @subcmd{BOTH}.
772 @end table
773
774 These subcommands have no effect on output in the @pspp{} GUI
775 environment.
776
777 Output driver option subcommands affect output drivers' settings.  These
778 subcommands are
779
780 @table @asis
781 @item HEADERS
782 @itemx LENGTH
783 @itemx WIDTH
784 @itemx TNUMBERS
785 The @subcmd{TNUMBERS} option sets the way in which values are displayed in output tables.
786 The valid settings are @subcmd{VALUES}, @subcmd{LABELS} and @subcmd{BOTH}.
787 If @subcmd{TNUMBERS} is set to @subcmd{VALUES}, then all values are displayed with their literal value
788 (which for a numeric value is a number and for a string value an alphanumeric string).
789 If @subcmd{TNUMBERS} is set to @subcmd{LABELS}, then values are displayed using their assigned labels if any.
790 (@xref{VALUE LABELS}.)
791 If the a value has no label, then it will be displayed using its literal value.
792 If @subcmd{TNUMBERS} is set to @subcmd{BOTH}, then values will be displayed with both their label
793 (if any) and their literal value in parentheses.
794 @item TVARS
795 The @subcmd{TVARS} option sets the way in which variables are displayed in output tables.
796 The valid settings are @subcmd{NAMES}, @subcmd{LABELS} and @subcmd{BOTH}.
797 If @subcmd{TVARS} is set to @subcmd{NAMES}, then all variables are displayed using their names.
798 If @subcmd{TVARS} is set to @subcmd{LABELS}, then variables are displayed using their label if one
799 has been set.  If no label has been set, then the name will be used.
800 (@xref{VARIABLE LABELS}.)
801 If @subcmd{TVARS} is set to @subcmd{BOTH}, then variables will be displayed with both their label
802 (if any) and their name in parentheses.
803 @end table
804
805 @cindex headers
806 @cindex length
807 @cindex pager
808 @cindex width
809 @cindex tnumbers
810
811
812 Logging subcommands affect logging of commands executed to external
813 files.  These subcommands are
814
815 @table @asis
816 @item JOURNAL
817 @itemx LOG
818 These subcommands, which are synonyms, control the journal.  The
819 default is @subcmd{ON}, which causes commands entered interactively to be
820 written to the journal file.  Commands included from syntax files that
821 are included interactively and error messages printed by @pspp{} are also
822 written to the journal file, prefixed by @samp{>}.  @subcmd{OFF} disables use
823 of the journal.
824
825 The journal is named @file{pspp.jnl} by default.  A different name may
826 be specified.
827 @end table
828
829 System file subcommands affect the default format of system files
830 produced by @pspp{}.  These subcommands are
831
832 @table @asis
833 @item COMPRESSION
834 Not currently used.
835
836 @item SCOMPRESSION
837 Whether system files created by @cmd{SAVE} or @cmd{XSAVE} are
838 compressed by default.  The default is @subcmd{ON}.
839 @end table
840
841 Security subcommands affect the operations that commands are allowed to
842 perform.  The security subcommands are
843
844 @table @asis
845 @item SAFER
846 Setting this option disables the following operations:
847
848 @itemize @bullet
849 @item
850 The @cmd{ERASE} command.
851 @item
852 The @cmd{HOST} command.
853 @item
854 The @cmd{PERMISSIONS} command.
855 @item
856 Pipes (file names beginning or ending with @samp{|}).
857 @end itemize
858
859 Be aware that this setting does not guarantee safety (commands can still
860 overwrite files, for instance) but it is an improvement.
861 When set, this setting cannot be reset during the same session, for
862 obvious security reasons.
863
864 @item LOCALE
865 @cindex locale
866 @cindex encoding, characters
867 This item is used to set the default character encoding.
868 The encoding may be specified either as an encoding name or alias
869 (see @url{http://www.iana.org/assignments/character-sets}), or
870 as a locale name.
871 If given as a locale name, only the character encoding of the
872 locale is relevant.
873
874 System files written by @pspp{} will use this encoding.
875 System files read by @pspp{}, for which the encoding is unknown, will be
876 interpreted using this encoding.
877
878 The full list of valid encodings and locale names/alias are operating system
879 dependent.
880 The following are all examples of acceptable syntax on common GNU/Linux
881 systems.
882 @example
883 SET LOCALE='iso-8859-1'.
884
885 SET LOCALE='ru_RU.cp1251'.
886
887 SET LOCALE='japanese'.
888 @end example
889
890 Contrary to intuition, this command does not affect any aspect
891 of the system's locale.
892 @end table
893
894 @node SHOW
895 @section SHOW
896 @vindex SHOW
897
898 @display
899 SHOW
900         [ALL]
901         [BLANKS]
902         [CC]
903         [CCA]
904         [CCB]
905         [CCC]
906         [CCD]
907         [CCE]
908         [COPYING]
909         [DECIMALS]
910         [DIRECTORY]
911         [ENVIRONMENT]
912         [FORMAT]
913         [FUZZBITS]
914         [LENGTH]
915         [MXERRS]
916         [MXLOOPS]
917         [MXWARNS]
918         [N]
919         [SCOMPRESSION]
920         [TEMPDIR]
921         [UNDEFINED]
922         [VERSION]
923         [WARRANTY]
924         [WEIGHT]
925         [WIDTH]
926 @end display
927
928 @cmd{SHOW} can be used to display the current state of @pspp{}'s execution
929 parameters.  Parameters that can be changed using @cmd{SET}
930 (@pxref{SET}), can be examined using @cmd{SHOW} using the subcommand
931 with the same name.  @cmd{SHOW} supports the following additional
932 subcommands:
933
934 @table @asis
935 @item @subcmd{ALL}
936 Show all settings.
937 @item @subcmd{CC}
938 Show all custom currency settings (@subcmd{CCA} through @subcmd{CCE}).
939 @item @subcmd{DIRECTORY}
940 Shows the current working directory.
941 @item @subcmd{ENVIRONMENT}
942 Shows the operating system details.
943 @item @subcmd{N}
944 Reports the number of cases in the active dataset.  The reported number is not
945 weighted.  If no dataset is defined, then @samp{Unknown} will be reported.
946 @item @subcmd{TEMPDIR}
947 Shows the path of the directory where temporary files will be stored.
948 @item @subcmd{VERSION}
949 Shows the version of this installation of @pspp{}.
950 @item @subcmd{WARRANTY}
951 Show details of the lack of warranty for @pspp{}.
952 @item @subcmd{COPYING} / @subcmd{LICENSE}
953 Display the terms of @pspp{}'s copyright licence (@pxref{License}).
954 @end table
955
956 Specifying @cmd{SHOW} without any subcommands is equivalent to @subcmd{SHOW ALL}.
957
958 @node SUBTITLE
959 @section SUBTITLE
960 @vindex SUBTITLE
961
962 @display
963 SUBTITLE '@var{subtitle_string}'.
964   or
965 SUBTITLE @var{subtitle_string}.
966 @end display
967
968 @cmd{SUBTITLE} provides a subtitle to a particular @pspp{}
969 run.  This subtitle appears at the top of each output page below the
970 title, if headers are enabled on the output device.
971
972 Specify a subtitle as a string in quotes.  The alternate syntax that did
973 not require quotes is now obsolete.  If it is used then the subtitle is
974 converted to all uppercase.
975
976 @node TITLE
977 @section TITLE
978 @vindex TITLE
979
980 @display
981 TITLE '@var{title_string}'.
982   or
983 TITLE @var{title_string}.
984 @end display
985
986 @cmd{TITLE} provides a title to a particular @pspp{} run.
987 This title appears at the top of each output page, if headers are enabled
988 on the output device.
989
990 Specify a title as a string in quotes.  The alternate syntax that did
991 not require quotes is now obsolete.  If it is used then the title is
992 converted to all uppercase.