home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #18 / NN_1992_18.iso / spool / comp / sources / misc / 3805 < prev    next >
Encoding:
Text File  |  1992-08-14  |  17.0 KB  |  695 lines

  1. Newsgroups: comp.sources.misc
  2. Path: sparky!kent
  3. From: sjg@zen.void.oz.au (Simon J. Gerraty)
  4. Subject:  v31i076:  pdksh - Public Domain Korn Shell, Patch07
  5. Message-ID: <1992Aug14.144711.22203@sparky.imd.sterling.com>
  6. Followup-To: comp.sources.d
  7. X-Md4-Signature: 97f4102ec2d3f48207ba544b27dd015d
  8. Sender: kent@sparky.imd.sterling.com (Kent Landfield)
  9. Organization: Sterling Software
  10. References: <csm-v31i074=pdksh.093459@sparky.IMD.Sterling.COM>
  11. Date: Fri, 14 Aug 1992 14:47:11 GMT
  12. Approved: kent@sparky.imd.sterling.com
  13. Lines: 680
  14.  
  15. Submitted-by: sjg@zen.void.oz.au (Simon J. Gerraty)
  16. Posting-number: Volume 31, Issue 76
  17. Archive-name: pdksh/patch07
  18. Environment: UNIX
  19. Patch-To: pdksh: Volume 25, Issue 47-55
  20.  
  21. This is patch07.
  22.  
  23. It fixes a build problem if COMPLEX_HISTORY is not defined.
  24. This patch also prevents a core dump caused by an underlying
  25. (unfixed) bug.
  26.  
  27. Apply this patch by changing directory to the root
  28. of the source tree and using the command:
  29.  
  30.     patch -p0 < this_file
  31.  
  32. The following is a complete list of patches to date.
  33.  
  34. Prereq: 09-Nov-91
  35. Prereq: 10-Nov-91
  36. Prereq: 25-Nov-91
  37. Prereq: 25-Apr-92
  38. Prereq: 26-Apr-92
  39. Prereq: 27-Apr-92
  40. Prereq: 12-May-92
  41. Prereq: 02-Aug-92
  42. *** PATCHDATES.old    Mon Aug 10 21:59:12 1992
  43. --- PATCHDATES    Thu Aug 13 00:14:06 1992
  44. ***************
  45. *** 7,9 ****
  46. --- 7,10 ----
  47.   27-Apr-92
  48.   12-May-92
  49.   02-Aug-92
  50. + 12-Aug-92
  51. *** bug-report.old    Mon Aug 10 22:59:11 1992
  52. --- bug-report    Thu Aug 13 00:14:09 1992
  53. ***************
  54. *** 2,8 ****
  55.   Subject: [area]: [synopsis]   [replace with actual area and short description]
  56.   
  57.   VERSION:
  58. !     PD KSH: 4.6 02-Aug-92
  59.       [Official patches will edit this line to indicate the patch level]
  60.   
  61.   MACHINE and OPERATING SYSTEM:
  62. --- 2,8 ----
  63.   Subject: [area]: [synopsis]   [replace with actual area and short description]
  64.   
  65.   VERSION:
  66. !     PD KSH: 4.7 12-Aug-92
  67.       [Official patches will edit this line to indicate the patch level]
  68.   
  69.   MACHINE and OPERATING SYSTEM:
  70. *** sh/ChangeLog.old    Mon Aug 10 22:02:13 1992
  71. --- sh/ChangeLog    Thu Aug 13 00:15:18 1992
  72. ***************
  73. *** 1,3 ****
  74. --- 1,15 ----
  75. + Thu Aug 13 00:00:42 1992  Simon J. Gerraty  (sjg@zen)
  76. +     * setstr(), varsub(): be robust when given dud args.
  77. + Wed Aug 12 23:56:29 1992  Simon J. Gerraty  (sjg@zen)
  78. +     * Fixed build problem when COMPLEX_HISTORY is not defined.
  79. +     * don't make COMPLETE_LIST the default, add 
  80. +         bind '^[^['=complete-list
  81. +     in .kshrc if desired.
  82.   Mon Aug  3 22:41:17 1992  Simon J. Gerraty  (sjg@zen)
  83.   
  84.       * emacs.c: correctly bind <ESC><erase>.
  85. *** sh/config.h.old    Mon Aug 10 22:02:20 1992
  86. --- sh/config.h    Thu Aug 13 00:15:22 1992
  87. ***************
  88. *** 1,7 ****
  89.   /*
  90.    * Configuration file for the PD ksh
  91.    *
  92. !  * RCSid: $Id: config.h,v 1.4 1992/08/10 12:02:20 sjg Exp $
  93.    */
  94.   
  95.   #ifndef    _CONFIG_H
  96. --- 1,7 ----
  97.   /*
  98.    * Configuration file for the PD ksh
  99.    *
  100. !  * RCSid: $Id: config.h,v 1.5 1992/08/12 14:15:22 sjg Exp $
  101.    */
  102.   
  103.   #ifndef    _CONFIG_H
  104. ***************
  105. *** 49,55 ****
  106.   /* #define    SILLY            /* Game of life in EMACS mode */
  107.   /* #define    SWTCH            /* Handle SWTCH for shl(1) */
  108.   
  109. ! #define COMPLETE_LIST            /* default to Emacs style completion */
  110.   /*
  111.    * ALTERNATIONS is csh not ksh, but it is such a nice feature...
  112.    */
  113. --- 49,61 ----
  114.   /* #define    SILLY            /* Game of life in EMACS mode */
  115.   /* #define    SWTCH            /* Handle SWTCH for shl(1) */
  116.   
  117. ! /*
  118. !  * better to leave this one out, and let users that
  119. !  * like it add
  120. !  *   bind '^[^['=complete-list
  121. !  * to their .kshrc
  122. !  */
  123. ! /*#define COMPLETE_LIST            /* default to Emacs style completion */
  124.   /*
  125.    * ALTERNATIONS is csh not ksh, but it is such a nice feature...
  126.    */
  127. *** sh/edit.h.old    Mon Aug 10 22:02:28 1992
  128. --- sh/edit.h    Thu Aug 13 00:15:25 1992
  129. ***************
  130. *** 8,14 ****
  131.    *      
  132.    *
  133.    * RCSid:
  134. !  *      $Id: edit.h,v 1.3 1992/08/10 12:02:28 sjg Exp $
  135.    *
  136.    */
  137.   
  138. --- 8,14 ----
  139.    *      
  140.    *
  141.    * RCSid:
  142. !  *      $Id: edit.h,v 1.4 1992/08/12 14:15:25 sjg Exp $
  143.    *
  144.    */
  145.   
  146. ***************
  147. *** 77,82 ****
  148. --- 77,83 ----
  149.   # undef EXTERN_DEFINED
  150.   # undef EXTERN
  151.   #endif
  152. + #undef _I_
  153.   /*
  154.    * Local Variables:
  155.    * version-control:t
  156. *** sh/eval.c.old    Mon Aug 10 22:02:35 1992
  157. --- sh/eval.c    Thu Aug 13 00:15:28 1992
  158. ***************
  159. *** 3,9 ****
  160.    */
  161.   
  162.   #ifndef lint
  163. ! static char *RCSid = "$Id: eval.c,v 1.3 1992/08/10 12:02:35 sjg Exp $";
  164.   #endif
  165.   
  166.   #include "stdh.h"
  167. --- 3,9 ----
  168.    */
  169.   
  170.   #ifndef lint
  171. ! static char *RCSid = "$Id: eval.c,v 1.4 1992/08/12 14:15:28 sjg Exp $";
  172.   #endif
  173.   
  174.   #include "stdh.h"
  175. ***************
  176. *** 420,426 ****
  177.               type = XARG;
  178.           }
  179.       } else {
  180. !         xp->str = strval(global(sp));
  181.           type = XSUB;
  182.       }
  183.   
  184. --- 420,427 ----
  185.               type = XARG;
  186.           }
  187.       } else {
  188. !         if ((xp->str = strval(global(sp))) == NULL)
  189. !           xp->str = null;
  190.           type = XSUB;
  191.       }
  192.   
  193. *** sh/history.c.old    Mon Aug 10 22:02:44 1992
  194. --- sh/history.c    Thu Aug 13 00:15:33 1992
  195. ***************
  196. *** 5,11 ****
  197.    */
  198.   
  199.   #ifndef lint
  200. ! static char *RCSid = "$Id: history.c,v 1.3 1992/08/10 12:02:44 sjg Exp $";
  201.   #endif
  202.   /*
  203.    *    This file contains
  204. --- 5,11 ----
  205.    */
  206.   
  207.   #ifndef lint
  208. ! static char *RCSid = "$Id: history.c,v 1.4 1992/08/12 14:15:33 sjg Exp $";
  209.   #endif
  210.   /*
  211.    *    This file contains
  212. ***************
  213. *** 17,25 ****
  214.    *        things. You need to have the mmap system call for this
  215.    *        to work on your system
  216.    */
  217. - #ifdef EASY_HISTORY
  218.   
  219.   #include "stdh.h"
  220.   #include <errno.h>
  221.   #include <setjmp.h>
  222.   #include "sh.h"
  223. --- 17,28 ----
  224.    *        things. You need to have the mmap system call for this
  225.    *        to work on your system
  226.    */
  227.   
  228. + #include "config.h"
  229.   #include "stdh.h"
  230. + #ifdef EASY_HISTORY
  231.   #include <errno.h>
  232.   #include <setjmp.h>
  233.   #include "sh.h"
  234. ***************
  235. *** 33,39 ****
  236.   #else
  237.   /*    Defines and includes for the complicated case */
  238.   
  239. - #include "stdh.h"
  240.   #include <sys/types.h>
  241.   #include <sys/stat.h>
  242.   #include <sys/file.h>
  243. --- 36,41 ----
  244. ***************
  245. *** 42,51 ****
  246.   #include <setjmp.h>
  247.   #include "sh.h"
  248.   
  249. - int    histsize = HISTORY;    /* size of saved history */
  250. - char   **history;        /* saved commands */
  251. - char  **histptr;        /* last history item */
  252. - int    histpush;        /* number of pushed fc commands */
  253.   /*
  254.    *    variables for handling the data file
  255.    */
  256. --- 44,49 ----
  257. *** sh/lex.h.old    Mon Aug 10 22:02:58 1992
  258. --- sh/lex.h    Thu Aug 13 00:15:37 1992
  259. ***************
  260. *** 2,8 ****
  261.    * Source input, lexer and parser
  262.    */
  263.   
  264. ! /* $Id: lex.h,v 1.3 1992/08/10 12:02:58 sjg Exp $ */
  265.   
  266.   #define    IDENT    64
  267.   
  268. --- 2,8 ----
  269.    * Source input, lexer and parser
  270.    */
  271.   
  272. ! /* $Id: lex.h,v 1.4 1992/08/12 14:15:37 sjg Exp $ */
  273.   
  274.   #define    IDENT    64
  275.   
  276. ***************
  277. *** 47,53 ****
  278.   #define    SPAREN    4        /* inside $() */
  279.   #define    SBQUOTE    5        /* inside `` */
  280.   
  281. ! Extern    int    multiline;    /* \n changed to ; */
  282.   
  283.   typedef union {
  284.       int    i;
  285. --- 47,53 ----
  286.   #define    SPAREN    4        /* inside $() */
  287.   #define    SBQUOTE    5        /* inside `` */
  288.   
  289. ! EXTERN    int    multiline;    /* \n changed to ; */
  290.   
  291.   typedef union {
  292.       int    i;
  293. ***************
  294. *** 92,103 ****
  295.   #define    SYNTAXERR    zzerr()
  296.   #define    HERES    10        /* max << in line */
  297.   
  298. ! Extern    char    line [LINE+1];    /* input line */
  299. ! Extern    Source *source;        /* yyparse/yylex source */
  300. ! Extern    YYSTYPE    yylval;        /* result from yylex */
  301. ! Extern    int    yynerrs;
  302. ! Extern    struct ioword *heres [HERES], **herep;
  303. ! Extern    char    ident [IDENT+1];
  304.   
  305.   extern    int    yylex ARGS((int flags));
  306.   extern    void    yyerror ARGS((const char *msg));
  307. --- 92,103 ----
  308.   #define    SYNTAXERR    zzerr()
  309.   #define    HERES    10        /* max << in line */
  310.   
  311. ! EXTERN    char    line [LINE+1];    /* input line */
  312. ! EXTERN    Source *source;        /* yyparse/yylex source */
  313. ! EXTERN    YYSTYPE    yylval;        /* result from yylex */
  314. ! EXTERN    int    yynerrs;
  315. ! EXTERN    struct ioword *heres [HERES], **herep;
  316. ! EXTERN    char    ident [IDENT+1];
  317.   
  318.   extern    int    yylex ARGS((int flags));
  319.   extern    void    yyerror ARGS((const char *msg));
  320. ***************
  321. *** 105,117 ****
  322.   #define    HISTORY    100        /* size of saved history */
  323.   
  324.   #ifdef EASY_HISTORY
  325. ! extern    char   *history [HISTORY];    /* saved commands */
  326.   #else
  327. ! extern    int    histsize;    /* history size */
  328. ! extern    char  **history;    /* saved commands */
  329.   #endif
  330. ! extern    char  **histptr;    /* last history item */
  331. ! extern    int    histpush;    /* number of pushed fc commands */
  332.   
  333.   extern    char    **histget();
  334.   extern  char    **histpos();
  335. --- 105,118 ----
  336.   #define    HISTORY    100        /* size of saved history */
  337.   
  338.   #ifdef EASY_HISTORY
  339. ! EXTERN    char   *history [HISTORY];    /* saved commands */
  340.   #else
  341. ! EXTERN  char   **history;        /* saved commands */
  342. ! EXTERN    int    histsize;    /* history size */
  343. ! EXTERN    char  **history;    /* saved commands */
  344.   #endif
  345. ! EXTERN    char  **histptr;    /* last history item */
  346. ! EXTERN    int    histpush;    /* number of pushed fc commands */
  347.   
  348.   extern    char    **histget();
  349.   extern  char    **histpos();
  350. *** sh/main.c.old    Mon Aug 10 22:03:00 1992
  351. --- sh/main.c    Thu Aug 13 00:15:39 1992
  352. ***************
  353. *** 3,12 ****
  354.    */
  355.   
  356.   #ifndef lint
  357. ! static char *RCSid = "$Id: main.c,v 1.5 1992/08/10 12:03:00 sjg Exp $";
  358.   #endif
  359.   
  360. ! #define    Extern                /* define Externs in sh.h */
  361.   
  362.   #include "stdh.h"
  363.   #include <unistd.h>
  364. --- 3,12 ----
  365.    */
  366.   
  367.   #ifndef lint
  368. ! static char *RCSid = "$Id: main.c,v 1.6 1992/08/12 14:15:39 sjg Exp $";
  369.   #endif
  370.   
  371. ! #define    EXTERN                /* define EXTERNs in sh.h */
  372.   
  373.   #include "stdh.h"
  374.   #include <unistd.h>
  375. *** sh/misc.c.old    Sat Apr 25 18:33:28 1992
  376. --- sh/misc.c    Thu Aug 13 00:15:42 1992
  377. ***************
  378. *** 3,9 ****
  379.    */
  380.   
  381.   #ifndef lint
  382. ! static char *RCSid = "$Id: misc.c,v 1.2 1992/04/25 08:33:28 sjg Exp $";
  383.   #endif
  384.   
  385.   #include "stdh.h"
  386. --- 3,9 ----
  387.    */
  388.   
  389.   #ifndef lint
  390. ! static char *RCSid = "$Id: misc.c,v 1.3 1992/08/12 14:15:42 sjg Exp $";
  391.   #endif
  392.   
  393.   #include "stdh.h"
  394. ***************
  395. *** 82,88 ****
  396.       register char *s;
  397.       Area *ap;
  398.   {
  399. !     return strcpy((char*) alloc((size_t)strlen(s)+1, ap), s);
  400.   }
  401.   
  402.   static struct option {
  403. --- 82,88 ----
  404.       register char *s;
  405.       Area *ap;
  406.   {
  407. !   return s ? strcpy((char*) alloc((size_t)strlen(s)+1, ap), s) : NULL;
  408.   }
  409.   
  410.   static struct option {
  411. *** sh/patchlevel.h.old    Mon Aug 10 22:03:03 1992
  412. --- sh/patchlevel.h    Thu Aug 13 00:15:45 1992
  413. ***************
  414. *** 1,6 ****
  415.   /*
  416.    * PD KSH
  417. !  * $Id: patchlevel.h,v 4.6 1992/08/10 12:03:03 sjg Exp $
  418.    */
  419.   #define VERSION        4
  420. ! #define PATCHLEVEL    6
  421. --- 1,6 ----
  422.   /*
  423.    * PD KSH
  424. !  * $Id: patchlevel.h,v 4.7 1992/08/12 14:15:45 sjg Exp $
  425.    */
  426.   #define VERSION        4
  427. ! #define PATCHLEVEL    7
  428. *** sh/sh.h.old    Mon Aug 10 22:03:08 1992
  429. --- sh/sh.h    Thu Aug 13 00:15:48 1992
  430. ***************
  431. *** 2,14 ****
  432.    * Public Domain Bourne/Korn shell
  433.    */
  434.   
  435. ! /* $Id: sh.h,v 1.4 1992/08/10 12:03:08 sjg Exp $ */
  436.   
  437.   #include "config.h"
  438.   
  439. ! /* allow for non-Unix linkers. main.c has a "#define Extern " */
  440. ! #ifndef Extern
  441. ! # define Extern    extern
  442.   #endif
  443.   
  444.   #ifndef SHELL
  445. --- 2,18 ----
  446.    * Public Domain Bourne/Korn shell
  447.    */
  448.   
  449. ! /* $Id: sh.h,v 1.5 1992/08/12 14:15:48 sjg Exp $ */
  450.   
  451.   #include "config.h"
  452.   
  453. ! /* some useful #defines */
  454. ! #ifdef EXTERN
  455. ! # define _I_(i) = i
  456. ! #else
  457. ! # define _I_(i)
  458. ! # define EXTERN extern
  459. ! # define EXTERN_DEFINED
  460.   #endif
  461.   
  462.   #ifndef SHELL
  463. ***************
  464. *** 61,70 ****
  465.   #define    LINE    256        /* input line size */
  466.   #define    PATH    256        /* pathname size */
  467.   
  468. ! Extern    int    kshpid;        /* $$, shell pid */
  469. ! Extern    int    exstat;        /* exit status */
  470. ! Extern    int    async;        /* $!, last &'d pid */
  471. ! Extern    volatile int sigchld_caught;    /* count of dead children */
  472.   
  473.   
  474.   /*
  475. --- 65,74 ----
  476.   #define    LINE    256        /* input line size */
  477.   #define    PATH    256        /* pathname size */
  478.   
  479. ! EXTERN    int    kshpid;        /* $$, shell pid */
  480. ! EXTERN    int    exstat;        /* exit status */
  481. ! EXTERN    int    async;        /* $!, last &'d pid */
  482. ! EXTERN    volatile int sigchld_caught;    /* count of dead children */
  483.   
  484.   
  485.   /*
  486. ***************
  487. *** 82,88 ****
  488.   /*
  489.    * parsing & execution environment
  490.    */
  491. ! Extern    struct    env {
  492.       int    type;            /* enviroment type - see below */
  493.       Area    area;            /* temporary allocation area */
  494.       struct    block *loc;        /* local variables and functions */
  495. --- 86,92 ----
  496.   /*
  497.    * parsing & execution environment
  498.    */
  499. ! EXTERN    struct    env {
  500.       int    type;            /* enviroment type - see below */
  501.       Area    area;            /* temporary allocation area */
  502.       struct    block *loc;        /* local variables and functions */
  503. ***************
  504. *** 126,132 ****
  505.   
  506.   #define    FLAG(c)    (1 + c - 'a')    /* map char to flags index */
  507.   #define    FLAGS    32
  508. ! Extern    char flag [FLAGS];
  509.   int    option ARGS((const char *name));
  510.   char   *getoptions ARGS((void));
  511.   void    printoptions ARGS((void));
  512. --- 130,136 ----
  513.   
  514.   #define    FLAG(c)    (1 + c - 'a')    /* map char to flags index */
  515.   #define    FLAGS    32
  516. ! EXTERN    char flag [FLAGS];
  517.   int    option ARGS((const char *name));
  518.   char   *getoptions ARGS((void));
  519.   void    printoptions ARGS((void));
  520. ***************
  521. *** 235,244 ****
  522.   #ifndef  SA_NOCLDSTOP
  523.   # include "sigact.h"            /* use sjg's fake sigaction() */
  524.   #endif
  525. ! Extern struct sigaction Sigact, Sigact_dfl, Sigact_ign, Sigact_trap;
  526.   #endif
  527.   
  528. ! Extern    int volatile trap;    /* traps pending? */
  529.   extern    Trap    sigtraps[SIGNALS];
  530.   Trap    *gettrap ARGS((char *)); /* search for struct trap by number or name */
  531.   void    trapsig ARGS((int sig)); /* trap signal handler */
  532. --- 239,248 ----
  533.   #ifndef  SA_NOCLDSTOP
  534.   # include "sigact.h"            /* use sjg's fake sigaction() */
  535.   #endif
  536. ! EXTERN struct sigaction Sigact, Sigact_dfl, Sigact_ign, Sigact_trap;
  537.   #endif
  538.   
  539. ! EXTERN    int volatile trap;    /* traps pending? */
  540.   extern    Trap    sigtraps[SIGNALS];
  541.   Trap    *gettrap ARGS((char *)); /* search for struct trap by number or name */
  542.   void    trapsig ARGS((int sig)); /* trap signal handler */
  543. ***************
  544. *** 277,279 ****
  545. --- 281,296 ----
  546.   #ifndef fileno
  547.   #define fileno(p)    ((p)->_file)
  548.   #endif
  549. + /* be sure not to interfere with anyone else's idea about EXTERN */
  550. + #ifdef EXTERN_DEFINED
  551. + # undef EXTERN_DEFINED
  552. + # undef EXTERN
  553. + #endif
  554. + #undef _I_
  555. + /*
  556. +  * Local Variables:
  557. +  * version-control:t
  558. +  * comment-column:40
  559. +  * End:
  560. +  */
  561. *** sh/table.h.old    Mon Aug 10 22:03:13 1992
  562. --- sh/table.h    Thu Aug 13 00:15:50 1992
  563. ***************
  564. *** 1,4 ****
  565. ! /* $Id: table.h,v 1.3 1992/08/10 12:03:13 sjg Exp $ */
  566.   
  567.   /*
  568.    * generic hashed associative table for commands and variables.
  569. --- 1,4 ----
  570. ! /* $Id: table.h,v 1.4 1992/08/12 14:15:50 sjg Exp $ */
  571.   
  572.   /*
  573.    * generic hashed associative table for commands and variables.
  574. ***************
  575. *** 70,80 ****
  576.       struct    block *next;    /* enclosing block */
  577.   };
  578.   
  579. ! Extern    struct block globals;    /* global variables and functions */
  580. ! Extern    struct table commands;    /* hashed commands */
  581. ! Extern    struct table builtins;    /* built-in commands */
  582. ! Extern    struct table lexicals;    /* keywords and aliases */
  583. ! Extern    struct table homedirs;    /* homedir() cache */
  584.   
  585.   struct builtin {
  586.       char   *name;
  587. --- 70,80 ----
  588.       struct    block *next;    /* enclosing block */
  589.   };
  590.   
  591. ! EXTERN    struct block globals;    /* global variables and functions */
  592. ! EXTERN    struct table commands;    /* hashed commands */
  593. ! EXTERN    struct table builtins;    /* built-in commands */
  594. ! EXTERN    struct table lexicals;    /* keywords and aliases */
  595. ! EXTERN    struct table homedirs;    /* homedir() cache */
  596.   
  597.   struct builtin {
  598.       char   *name;
  599. ***************
  600. *** 101,109 ****
  601.   #define V_FCEDIT 10
  602.   #define V_COLUMNS 11
  603.   
  604. ! Extern    Area   *lastarea;    /* area of last variable/function looked up */
  605. ! Extern    char   *path;        /* PATH value */
  606. ! Extern    char   *prompt;        /* PS1 or PS2 */
  607.   
  608.   void    newblock();
  609.   void    popblock();
  610. --- 101,109 ----
  611.   #define V_FCEDIT 10
  612.   #define V_COLUMNS 11
  613.   
  614. ! EXTERN    Area   *lastarea;    /* area of last variable/function looked up */
  615. ! EXTERN    char   *path;        /* PATH value */
  616. ! EXTERN    char   *prompt;        /* PS1 or PS2 */
  617.   
  618.   void    newblock();
  619.   void    popblock();
  620. *** sh/version.c.old    Mon Aug 10 22:03:29 1992
  621. --- sh/version.c    Thu Aug 13 00:15:53 1992
  622. ***************
  623. *** 3,9 ****
  624.    */
  625.   
  626.   #ifndef lint
  627. ! static char *RCSid = "$Id: version.c,v 1.5 1992/08/10 12:03:29 sjg Exp $";
  628.   #endif
  629.   
  630.   #include "stdh.h"
  631. --- 3,9 ----
  632.    */
  633.   
  634.   #ifndef lint
  635. ! static char *RCSid = "$Id: version.c,v 1.6 1992/08/12 14:15:53 sjg Exp $";
  636.   #endif
  637.   
  638.   #include "stdh.h"
  639. ***************
  640. *** 12,21 ****
  641.   #include "patchlevel.h"
  642.   
  643.   char ksh_version [] =
  644. !     "KSH_VERSION=@(#)PD KSH v4.6 92/08/10";
  645.   
  646.   /***
  647.   $Log: version.c,v $
  648.    * Revision 1.5  1992/08/10  12:03:29  sjg
  649.    * Update for patch06.
  650.    * Contributions from Peter Collinson, Neil Smithline and sjg
  651. --- 12,25 ----
  652.   #include "patchlevel.h"
  653.   
  654.   char ksh_version [] =
  655. !     "KSH_VERSION=@(#)PD KSH v4.7 92/08/12";
  656.   
  657.   /***
  658.   $Log: version.c,v $
  659. +  * Revision 1.6  1992/08/12  14:15:53  sjg
  660. +  * Patch07: fix some build problems,
  661. +  * and avoid core dump from arg processing bug.
  662. +  *
  663.    * Revision 1.5  1992/08/10  12:03:29  sjg
  664.    * Update for patch06.
  665.    * Contributions from Peter Collinson, Neil Smithline and sjg
  666. *** sh/lex.h.~1~    Thu Aug 13 12:07:03 1992
  667. --- sh/lex.h    Thu Aug 13 12:32:08 1992
  668. ***************
  669. *** 108,114 ****
  670.   EXTERN    char   *history [HISTORY];    /* saved commands */
  671.   #else
  672.   EXTERN  char   **history;        /* saved commands */
  673. ! EXTERN    int    histsize;    /* history size */
  674.   EXTERN    char  **history;    /* saved commands */
  675.   #endif
  676.   EXTERN    char  **histptr;    /* last history item */
  677. --- 108,114 ----
  678.   EXTERN    char   *history [HISTORY];    /* saved commands */
  679.   #else
  680.   EXTERN  char   **history;        /* saved commands */
  681. ! EXTERN    int    histsize _I_(HISTORY);    /* history size */
  682.   EXTERN    char  **history;    /* saved commands */
  683.   #endif
  684.   EXTERN    char  **histptr;    /* last history item */
  685.  
  686. exit 0 # Just in case...
  687.