w32tex
About: TeX Live provides a comprehensive TeX system including all the major TeX-related programs, macro packages, and fonts that are free software. Windows sources.
  Fossies Dox: w32tex-src.tar.xz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

sh6.c
Go to the documentation of this file.
1 /*
2  * MS-DOS SHELL - Data Declarations
3  *
4  * MS-DOS SHELL - Copyright (c) 1990,4 Data Logic Limited and Charles Forsyth
5  *
6  * This code is based on (in part) the shell program written by Charles
7  * Forsyth and is subject to the following copyright restrictions:
8  *
9  * 1. Redistribution and use in source and binary forms are permitted
10  * provided that the above copyright notice is duplicated in the
11  * source form and the copyright notice in file sh6.c is displayed
12  * on entry to the program.
13  *
14  * 2. The sources (or parts thereof) or objects generated from the sources
15  * (or parts of sources) cannot be sold under any circumstances.
16  *
17  * $Header: /usr/users/istewart/shell/sh2.3/Release/RCS/sh6.c,v 2.15 1994/08/25 20:49:11 istewart Exp $
18  *
19  * $Log: sh6.c,v $
20  * Revision 2.15 1994/08/25 20:49:11 istewart
21  * MS Shell 2.3 Release
22  *
23  * Revision 2.14 1994/02/23 09:23:38 istewart
24  * Beta 233 updates
25  *
26  * Revision 2.13 1994/02/01 10:25:20 istewart
27  * Release 2.3 Beta 2, including first NT port
28  *
29  * Revision 2.12 1994/01/11 17:55:25 istewart
30  * Release 2.3 Beta 0 patches
31  *
32  * Revision 2.11 1993/11/09 10:39:49 istewart
33  * Beta 226 checking
34  *
35  * Revision 2.10 1993/08/25 16:03:57 istewart
36  * Beta 225 - see Notes file
37  *
38  * Revision 2.9 1993/07/02 10:21:35 istewart
39  * 224 Beta fixes
40  *
41  * Revision 2.8 1993/06/14 11:00:12 istewart
42  * More changes for 223 beta
43  *
44  * Revision 2.7 1993/06/02 09:52:35 istewart
45  * Beta 223 Updates - see Notes file
46  *
47  * Revision 2.6 1993/02/16 16:03:15 istewart
48  * Beta 2.22 Release
49  *
50  * Revision 2.5 1993/01/26 18:35:09 istewart
51  * Release 2.2 beta 0
52  *
53  * Revision 2.4 1992/12/14 10:54:56 istewart
54  * BETA 215 Fixes and 2.1 Release
55  *
56  * Revision 2.3 1992/11/06 10:03:44 istewart
57  * 214 Beta test updates
58  *
59  * Revision 2.2 1992/09/03 18:54:45 istewart
60  * Beta 213 Updates
61  *
62  * Revision 2.1 1992/07/10 10:52:48 istewart
63  * 211 Beta updates
64  *
65  * Revision 2.0 1992/04/13 17:39:09 Ian_Stewartson
66  * MS-Shell 2.0 Baseline release
67  *
68  *
69  */
70 
71 #include <sys/types.h>
72 #include <sys/stat.h>
73 #include <stddef.h>
74 #include <stdio.h>
75 #include <setjmp.h>
76 #include <stdlib.h>
77 #include <limits.h>
78 #include <unistd.h>
79 #include "sh.h"
80 
81 #if (OS_TYPE == OS_UNIX)
82 # include <sys/utsname.h>
83 static char *Copy_Right1 = "%s %s SH Version 2.3 (%s) - %s (OS %s.%s)\n";
84 #else
85 static char *Copy_Right1 = "%s %s SH Version 2.3 (%s) - %s (OS %d.%d)\n";
86 #endif
87 
88 
89 #if (OS_TYPE == OS_OS2)
90 char *LIT_OSname = "OS2";
91 # if (OS_SIZE == OS_32)
92 static char *Copy_Right2 = "(32-Bit)";
93 # else
94 static char *Copy_Right2 = "(16-Bit)";
95 # endif
96 #elif (OS_TYPE == OS_DOS)
97 char *LIT_OSname = "MS-DOS";
98 # if (OS_SIZE == OS_32)
99 static char *Copy_Right2 = "(32-Bit)";
100 # else
101 static char *Copy_Right2 = "(16-Bit)";
102 # endif
103 #elif (OS_TYPE == OS_NT)
104 char *LIT_OSname = "MS-Win32";
105 static char *Copy_Right2 = "";
106 #elif (OS_TYPE == OS_UNIX)
107 char *LIT_OSname = "UNIX";
108 #endif
109 
110 static char *Copy_Right3 = "Copyright (c) Data Logic Ltd and Charles Forsyth 1990, 94\n";
111 
112 #if (OS_TYPE == OS_DOS) && (OS_SIZE == OS_32)
113 bool IgnoreHardErrors = FALSE;/* Hard Error Flag */
114 #endif
115 
116 int BaseOS; /* Underlying OS */
117 char **ParameterArray = (char **)NULL; /* Parameter array */
118 int ParameterCount = 0; /* # entries in parameter array */
119 int ExitStatus; /* Exit status */
121  /* interactive (talking-type wireless) */
123 bool ProcessingEXECCommand; /* Exec mode */
124 bool UseConsoleBuffer = FALSE;/* Flag from dofc to */
125  /* GetConsoleInput */
126 int AllowMultipleLines; /* Allow continuation onto */
127  /* Next line */
128 int Current_Event = 0; /* Current history event */
129 bool ChangeInitLoad = FALSE; /* Change load .ini pt. */
130 unsigned int ShellGlobalFlags = 0; /* Other global flags */
131 int MaxNumberofFDs = 20; /* Max no of file descriptors */
132 
133 int DisabledVariables = 0; /* Disabled variables */
134 int StartCursorPosition = -1;/* Start cursor position */
135 
136 #ifndef OS_SWAPPING
137 unsigned int SW_intr; /* Interrupt flag */
138 bool IgnoreInterrupts = FALSE;/* Ignore interrupts flag */
139 #else
140  /* Swap mode */
142 #endif
143 
144 Break_C *Break_List; /* Break list for FOR/WHILE */
145 Break_C *Return_List; /* Return list for RETURN */
146 Break_C *SShell_List; /* SubShell list for EXIT */
147 bool RestrictedShellFlag = FALSE; /* Restricted shell */
148  /* History processing enabled flag */
150 
151 void *FunctionTree = (void *)NULL; /* Function tree */
153 void *AliasTree = (void *)NULL; /* Alias tree */
154 
155 #if (OS_TYPE != OS_DOS)
156 void *JobTree = (void *)NULL; /* job tree */
157 bool ExitWithJobsActive = FALSE; /* Exit flag */
158 int CurrentJob = 0; /* No current */
159 int PreviousJob = 0; /* Previous Job */
160 #endif
161 
162 #if (OS_TYPE == OS_OS2)
163 /*
164  * Session Info
165  */
166 char *SessionEndQName = (char *)NULL; /* Queue */
167 
168 /*
169  * Special flag for EMX parameters
170  */
171 
172 bool EMXStyleParameters = FALSE;
173 #endif
174 
175 /*
176  * redirection
177  */
178 
179 Save_IO *SSave_IO; /* Save IO array */
180 int NSave_IO_E = 0; /* Number of entries in Save IO array */
181 int MSave_IO_E = 0; /* Max Number of entries in SSave_IO */
182 S_SubShell *SubShells; /* Save Vars array */
183 int NSubShells = 0; /* Number of entries in SubShells */
184 int MSubShells = 0; /* Max Number of entries in SubShells */
185 int LastNumberBase = -1; /* Last base entered */
186 
187 int InterruptTrapPending; /* Trap pending */
188 int Execute_stack_depth; /* execute function recursion */
189  /* depth */
190 void *VariableTree = (void *)NULL; /* Variable dictionary */
191 VariableList *CurrentDirectory; /* Current directory */
192 char *LastUserPrompt; /* Last prompt output */
193 char *LastUserPrompt1; /* Alternate Last prompt output */
194 char IFS[] = "IFS"; /* Inter-field separator */
195 char PS1[] = "PS1"; /* Prompt 1 */
196 char PS2[] = "PS2"; /* Prompt 2 */
197 char PS3[] = "PS3"; /* Prompt 3 */
198 char PS4[] = "PS4"; /* Prompt 4 */
199 char PathLiteral[] = "PATH";
200 char CDPathLiteral[] = "CDPATH";
201 char CurrentDirLiteral[] = ".";
202 char ParentDirLiteral[] = "..";
203 char PathExtsLiteral[] = "PATHEXTS";
204 char HomeVariableName[] = "HOME";
205 char ShellVariableName[] = "SHELL";
206 char HistoryFileVariable[] = "HISTFILE";
207 char HistorySizeVariable[] = "HISTSIZE";
208 char *ComspecVariable= "COMSPEC";
211 char StatusVariable[] = "?";
212 char SecondsVariable[] = "SECONDS";
213 char RandomVariable[] = "RANDOM";
214 char LineCountVariable[] = "LINENO";
215 char *RootDirectory = "x:/";
216 
217 #if (OS_TYPE != OS_DOS)
218 char WinTitleVariable[] = "WINTITLE";
219 #endif
220 
221 char *OldPWDVariable = "OLDPWD";
222 char *PWDVariable = "PWD";
223 char *ENVVariable = "ENV";
224 
225 #if (OS_TYPE == OS_OS2)
226 char BATExtension[] = ".cmd";
227 #else
228 char BATExtension[] = ".bat";
229 char CMDExtension[] = ".cmd";
230 char VBSExtension[] = ".vbs";
231 char JSExtension[] = ".js";
232 #endif
233 
234 char SHELLExtension[] = ".sh";
235 char KSHELLExtension[] = ".ksh";
236 char SUBExtension[] = ".sub";
237 char LGExtension[] = ".lg";
238 char EXEExtension[] = ".exe";
239 char COMExtension[] = ".com";
240 char COFFExtension[] = "";
241 char *NotFound = "not found";
242 char *BasicErrorMessage = "%s: %s";
243 char *DirectorySeparator = "/";
244 char LastWordVariable[] = "_";
245 char OptArgVariable[] = "OPTARG";
246 char OptIndVariable[] = "OPTIND";
247 char MailCheckVariable[] = "MAILCHECK";
248 char FCEditVariable[] = "FCEDIT";
249 char EditorVariable[] = "EDITOR";
250 char VisualVariable[] = "VISUAL";
251 char Trap_DEBUG[] = "~DEBUG";
252 char Trap_ERR[] = "~ERR";
253 char LIT_dos[] = "DOS";
254 char *LIT_NewLine = "\n";
255 char *LIT_BadID = "bad identifier";
256 char LIT_export[] = "export";
257 char LIT_exit[] = "exit";
258 char LIT_exec[] = "exec";
259 char LIT_done[] = "done";
260 char LIT_history[] = "history";
261 char LIT_REPLY[] = "REPLY";
262 char LIT_LINES[] = "LINES";
263 char LIT_COLUMNS[] = "COLUMNS";
264 char *ListVarFormat = "%s=%s\n";
265 char *Outofmemory1 = "Out of memory";
266 char *LIT_Emsg = "%s: %s (%s)";
267 char *LIT_2Strings = "%s %s";
268 char *LIT_3Strings = "%s %s%s";
269 char *LIT_SyntaxError = "Syntax error";
270 char *LIT_BadArray = "%s: bad array value";
271 char *LIT_ArrayRange = "%s: subscript out of range";
272 char *LIT_BNumber = "[%d]";
273 char *LIT_Invalidfunction = "Invalid function name";
274 char *LIT_AllowTTY = "SH_ALLOWTTYPIPES";
275 char *LIT_IsReadonly = "is read-only";
276 char LIT_Test[] = "[[";
277 int MaximumColumns = 80; /* Max columns */
278 int MaximumLines = 25; /* Max Lines */
279 
280 /*
281  * Fopen modes, different between IBM OS/2 2.x and the rest
282  */
283 
284 #ifdef __IBMC__
285 char *sOpenReadMode = "r"; /* Open file in read mode */
286 char *sOpenWriteMode = "w"; /* Open file in write mode */
287 char *sOpenAppendMode = "w+";/* Open file in append mode */
288 char *sOpenWriteBinaryMode = "wb";/* Open file in append mode */
289 #else
290 char *sOpenReadMode = "rt"; /* Open file in read mode */
291 char *sOpenWriteMode = "wt"; /* Open file in write mode */
292 char *sOpenAppendMode = "wt+";/* Open file in append mode */
293 char *sOpenWriteBinaryMode = "wb";/* Open file in append mode */
294 #endif
295 
296 #if (OS_TYPE == OS_OS2)
297 STARTDATA *SessionControlBlock; /* Start a session info */
298 
299 STARTDATA PM_SessionControlBlock = { /* PM session defaults */
300  sizeof (STARTDATA), /* Length */
301  SSF_RELATED_CHILD, /* Related */
302  SSF_FGBG_FORE, /* FgBg */
303  SSF_TRACEOPT_NONE, /* TraceOpt */
304  (char *)NULL, /* PgmTitle */
305  (char *)NULL, /* PgmName */
306  (PBYTE)NULL, /* PgmInputs */
307  (PBYTE)NULL, /* TermQ */
308  (char *)1, /* Environment */
309  SSF_INHERTOPT_PARENT, /* InheritOpt */
310  SSF_TYPE_PM, /* SessionType */
311  (char *)NULL, /* IconFile */
312  0L, /* PgmHandle */
313  SSF_CONTROL_NOAUTOCLOSE, /* PgmControl */
314  0, /* InitXPos */
315  0, /* InitYPos */
316  100, /* InitXSize */
317  100 /* InitYSize */
318 };
319 
320 STARTDATA DOS_SessionControlBlock = { /* DOS session defaults */
321  sizeof (STARTDATA), /* Length */
322  SSF_RELATED_CHILD, /* Related */
323  SSF_FGBG_FORE, /* FgBg */
324  SSF_TRACEOPT_NONE, /* TraceOpt */
325  (char *)NULL, /* PgmTitle */
326  (char *)NULL, /* PgmName */
327  (PBYTE)NULL, /* PgmInputs */
328  (PBYTE)NULL, /* TermQ */
329  (char *)1, /* Environment */
330  SSF_INHERTOPT_PARENT, /* InheritOpt */
331  SSF_TYPE_VDM, /* SessionType */
332  (char *)NULL, /* IconFile */
333  0L, /* PgmHandle */
334  SSF_CONTROL_NOAUTOCLOSE, /* PgmControl */
335  0, /* InitXPos */
336  0, /* InitYPos */
337  100, /* InitXSize */
338  100 /* InitYSize */
339 };
340 #endif
341 
342 /*
343  * Parser information
344  */
345 
346 char CurrentLexIdentifier [IDENT+1];/* Identifier */
347 Source *source; /* yyparse/ScanNextToken source */
348 YYSTYPE yylval; /* result from ScanNextToken */
349 int yynerrs; /* Parse error flag */
350 
351 
352 /*
353  * Global program mode information
354  */
355 
356 ExeMode ExecProcessingMode; /* Global Program mode */
357 
358 /*
359  * Character Types array
360  */
361 
362 unsigned char CharTypes [UCHAR_MAX + 1];
363 
364 /*
365  * Modified getopt values
366  */
367 
368 int OptionIndex = 1; /* optind */
369 int OptionStart; /* start character */
370 char *OptionArgument; /* optarg */
371 
372 /*
373  * Device directory. The length of this string is defined by the variable
374  * LEN_DEVICE_NAME_HEADER
375  */
376 
377 char *DeviceNameHeader = "/dev/";
378 
379 int MemoryAreaLevel;/* Current allocation area */
380 long flags = 0L; /* Command line flags */
381 char null[] = ""; /* Null value */
382 char ConsoleLineBuffer[LINE_MAX + 1]; /* Console line buffer */
383 
384 /*
385  * Current environment
386  */
387 
389  (int *)NULL, /* Error handler */
390  0L, /* IO Map for this level */
391  (char *)NULL, /* Current line buffer */
392  (ShellFileEnvironment *)NULL, /* Previous Env pointer */
393 };
394 
395 /*
396  * Some defines to print version and release info
397  */
398 
399 #define str(s) # s
400 #define xstr(s) str(s)
401 
402 /*
403  * The only bit of code in this module prints the version number
404  */
405 
407 {
408 #if (OS_TYPE == OS_UNIX)
409  char *Copy_Right2 = null;
410  char *_osmajor = null;
411  char *_osminor = null;
412  struct utsname name;
413 
414  if (!uname (&name))
415  {
416  Copy_Right2 = name.machine;
417  _osmajor = name.release;
418  _osminor = name.version;
419  }
420 
421 #endif
424  fputs (Copy_Right3, fp);
425 }
#define name
@ FALSE
Definition: dd.h:101
#define __DATE__
#define NULL
Definition: ftobjs.h:61
#define STARTDATA
Definition: cidparse.c:49
#define UCHAR_MAX
Definition: c-minmax.h:36
#define fputs
Definition: mendex.h:67
#define fprintf
Definition: mendex.h:64
#define LINE_MAX
Definition: mkind.h:326
#define fp
int V2[(255+1)]
Definition: pnmnlfilt.c:342
Break_C * Break_List
Definition: sh6.c:144
char CurrentDirLiteral[]
Definition: sh6.c:201
char ** ParameterArray
Definition: sh6.c:117
int MemoryAreaLevel
Definition: sh6.c:379
char LastWordVariable[]
Definition: sh6.c:244
char VBSExtension[]
Definition: sh6.c:230
bool UseConsoleBuffer
Definition: sh6.c:124
int yynerrs
Definition: sh6.c:349
char RandomVariable[]
Definition: sh6.c:213
char SUBExtension[]
Definition: sh6.c:236
char ShellVariableName[]
Definition: sh6.c:205
char LIT_REPLY[]
Definition: sh6.c:261
char * LastUserPrompt1
Definition: sh6.c:193
char JSExtension[]
Definition: sh6.c:231
char CMDExtension[]
Definition: sh6.c:229
char LIT_COLUMNS[]
Definition: sh6.c:263
char * LIT_3Strings
Definition: sh6.c:268
int Swap_Mode
Definition: sh6.c:141
void * VariableTree
Definition: sh6.c:190
char Trap_ERR[]
Definition: sh6.c:252
char LIT_LINES[]
Definition: sh6.c:262
char OptArgVariable[]
Definition: sh6.c:245
char * sOpenWriteMode
Definition: sh6.c:291
char LIT_Test[]
Definition: sh6.c:276
int Execute_stack_depth
Definition: sh6.c:188
char PS3[]
Definition: sh6.c:197
char * ShellOptionsVariable
Definition: sh6.c:210
int MSubShells
Definition: sh6.c:184
char PS1[]
Definition: sh6.c:195
void PrintVersionNumber(FILE *fp)
Definition: sh6.c:406
char * LIT_AllowTTY
Definition: sh6.c:274
int InterruptTrapPending
Definition: sh6.c:187
char * LIT_BNumber
Definition: sh6.c:272
unsigned int ShellGlobalFlags
Definition: sh6.c:130
bool RestrictedShellFlag
Definition: sh6.c:147
char PS4[]
Definition: sh6.c:198
void * AliasTree
Definition: sh6.c:153
int ParameterCount
Definition: sh6.c:118
char SecondsVariable[]
Definition: sh6.c:212
char CurrentLexIdentifier[64+1]
Definition: sh6.c:346
char StatusVariable[]
Definition: sh6.c:211
char HomeVariableName[]
Definition: sh6.c:204
int DisabledVariables
Definition: sh6.c:133
char * LIT_SyntaxError
Definition: sh6.c:269
char PS2[]
Definition: sh6.c:196
YYSTYPE yylval
Definition: sh6.c:348
int MaximumLines
Definition: sh6.c:278
char * ComspecVariable
Definition: sh6.c:208
static char * Copy_Right1
Definition: sh6.c:85
bool HistoryEnabled
Definition: sh6.c:149
char * LIT_OSname
Definition: sh6.c:97
int ExitStatus
Definition: sh6.c:119
Source * source
Definition: sh6.c:347
char LIT_exit[]
Definition: sh6.c:257
ExeMode ExecProcessingMode
Definition: sh6.c:356
bool ProcessingEXECCommand
Definition: sh6.c:123
char * LastUserPrompt
Definition: sh6.c:192
char * sOpenAppendMode
Definition: sh6.c:292
char PathExtsLiteral[]
Definition: sh6.c:203
int BaseOS
Definition: sh6.c:116
char * PWDVariable
Definition: sh6.c:222
long flags
Definition: sh6.c:380
S_SubShell * SubShells
Definition: sh6.c:182
char MailCheckVariable[]
Definition: sh6.c:247
char EXEExtension[]
Definition: sh6.c:238
int NSave_IO_E
Definition: sh6.c:180
char * OptionArgument
Definition: sh6.c:370
void * FunctionTree
Definition: sh6.c:151
char * Outofmemory1
Definition: sh6.c:265
char * sOpenReadMode
Definition: sh6.c:290
char * LIT_BadID
Definition: sh6.c:255
int MaximumColumns
Definition: sh6.c:277
char * ListVarFormat
Definition: sh6.c:264
char LineCountVariable[]
Definition: sh6.c:214
char EditorVariable[]
Definition: sh6.c:249
char CDPathLiteral[]
Definition: sh6.c:200
char * LIT_IsReadonly
Definition: sh6.c:275
ShellFileEnvironment e
Definition: sh6.c:388
char LIT_done[]
Definition: sh6.c:259
int OptionStart
Definition: sh6.c:369
char HistoryFileVariable[]
Definition: sh6.c:206
char ParentDirLiteral[]
Definition: sh6.c:202
char * LIT_2Strings
Definition: sh6.c:267
VariableList * CurrentDirectory
Definition: sh6.c:191
Save_IO * SSave_IO
Definition: sh6.c:179
char KSHELLExtension[]
Definition: sh6.c:235
int AllowMultipleLines
Definition: sh6.c:126
char Trap_DEBUG[]
Definition: sh6.c:251
char LIT_exec[]
Definition: sh6.c:258
char BATExtension[]
Definition: sh6.c:228
char HistorySizeVariable[]
Definition: sh6.c:207
char FCEditVariable[]
Definition: sh6.c:248
char * LIT_NewLine
Definition: sh6.c:254
int StartCursorPosition
Definition: sh6.c:134
static char * Copy_Right3
Definition: sh6.c:110
FunctionList * CurrentFunction
Definition: sh6.c:152
char LIT_dos[]
Definition: sh6.c:253
char * LIT_Invalidfunction
Definition: sh6.c:273
char COMExtension[]
Definition: sh6.c:239
char * sOpenWriteBinaryMode
Definition: sh6.c:293
char * LIT_ArrayRange
Definition: sh6.c:271
char LGExtension[]
Definition: sh6.c:237
static char * Copy_Right2
Definition: sh6.c:101
char SHELLExtension[]
Definition: sh6.c:234
int MaxNumberofFDs
Definition: sh6.c:131
Break_C * Return_List
Definition: sh6.c:145
char * DirectorySeparator
Definition: sh6.c:243
char PathLiteral[]
Definition: sh6.c:199
bool ChangeInitLoad
Definition: sh6.c:129
char LIT_export[]
Definition: sh6.c:256
char VisualVariable[]
Definition: sh6.c:250
char * OldPWDVariable
Definition: sh6.c:221
bool ExpansionErrorDetected
Definition: sh6.c:120
bool InteractiveFlag
Definition: sh6.c:122
char * RootDirectory
Definition: sh6.c:215
char OptIndVariable[]
Definition: sh6.c:246
unsigned char CharTypes[255+1]
Definition: sh6.c:362
char COFFExtension[]
Definition: sh6.c:240
char * NotFound
Definition: sh6.c:241
char * LIT_BadArray
Definition: sh6.c:270
int Current_Event
Definition: sh6.c:128
int MSave_IO_E
Definition: sh6.c:181
int NSubShells
Definition: sh6.c:183
char * ParameterCountVariable
Definition: sh6.c:209
int OptionIndex
Definition: sh6.c:368
Break_C * SShell_List
Definition: sh6.c:146
char * ENVVariable
Definition: sh6.c:223
int LastNumberBase
Definition: sh6.c:185
char ConsoleLineBuffer[524288+1]
Definition: sh6.c:382
#define xstr(s)
Definition: sh6.c:400
char LIT_history[]
Definition: sh6.c:260
char * DeviceNameHeader
Definition: sh6.c:377
char IFS[]
Definition: sh6.c:194
char * BasicErrorMessage
Definition: sh6.c:242
char * LIT_Emsg
Definition: sh6.c:266
int _osminor
Definition: sh.h:2461
#define IDENT
Definition: sh.h:1338
#define OS_VERS_N
Definition: sh.h:537
int _osmajor
Definition: sh1.c:1
unsigned int far SW_intr
#define SWAP_DISK
Definition: sh.h:1467
#define SWAP_EXPAND
Definition: sh.h:1469
Definition: sh.h:1540
Definition: sh.h:1689
Definition: sh.h:1569
Definition: sh.h:1345
Definition: sh.h:1929
Definition: sh.h:1782
#define FILE
Definition: t1stdio.h:34
@ L
Definition: ubidiimp.h:45
Definition: sh.h:1317