home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / misc / volume31 / pdksh / patch07 < prev    next >
Encoding:
Text File  |  1992-08-13  |  16.8 KB  |  689 lines

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