home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional / OS2PRO194.ISO / os2 / editor / sed / patches.os2 < prev    next >
Text File  |  1994-01-31  |  13KB  |  520 lines

  1. diff -cb orig/glob.c ./glob.c
  2. *** orig/glob.c    Tue Mar 20 19:08:38 1990
  3. --- ./glob.c    Fri Dec 22 21:43:52 1989
  4. ***************
  5. *** 27,37 ****
  6. --- 27,41 ----
  7.   #define    D_NAMLEN(d) strlen((d)->d_name)
  8.   #else    /* not USGr3    */
  9.   #define D_NAMLEN(d) ((d)->d_namlen)
  10. + #ifdef MSDOS
  11. + #include "dir.h"
  12. + #else
  13.   #ifdef    USG
  14.   #include "ndir.h"   /* Get ndir.h from the Emacs distribution.  */
  15.   #else    /* not USG    */
  16.   #include <sys/dir.h>
  17.   #endif    /* USG        */
  18. + #endif
  19.   #endif    /* USGr3    */
  20.   
  21.   #ifdef USG
  22. ***************
  23. *** 40,47 ****
  24.   #define bcopy(s, d, n) ((void) memcpy ((d), (s), (n)))
  25.   #define rindex strrchr
  26.   struct passwd *getpwent(), *getpwuid(), *getpwnam();
  27.   extern char *memcpy ();
  28.   #else /* not USG */
  29.   #include <strings.h>
  30.   
  31. --- 44,52 ----
  32.   #define bcopy(s, d, n) ((void) memcpy ((d), (s), (n)))
  33.   #define rindex strrchr
  34.   struct passwd *getpwent(), *getpwuid(), *getpwnam();
  35. ! #ifndef MSDOS
  36.   extern char *memcpy ();
  37. + #endif
  38.   #else /* not USG */
  39.   #include <strings.h>
  40.   
  41. ***************
  42. *** 58,64 ****
  43. --- 63,71 ----
  44.   #endif    /* sparc.  */
  45.   #endif    /* GCC.  */
  46.   
  47. + #ifndef MSDOS
  48.   #include <pwd.h>
  49. + #endif
  50.   
  51.   extern char *malloc (), *realloc ();
  52.   extern void free ();
  53. ***************
  54. *** 410,415 ****
  55. --- 417,423 ----
  56.         ++filename;
  57.       }
  58.   
  59. + #ifndef MSDOS
  60.     if (glob_tilde && *pathname == '~')
  61.       {
  62.         if (directory_len == 0)
  63. ***************
  64. *** 455,461 ****
  65.           }
  66.       }
  67.       }
  68. !   else if (glob_pattern_p (directory_name))
  69.       {
  70.         /* If directory_name contains globbing characters, then we
  71.        have to expand the previous levels.  Just recurse. */
  72. --- 463,471 ----
  73.           }
  74.       }
  75.       }
  76. !   else
  77. ! #endif
  78. !      if (glob_pattern_p (directory_name))
  79.       {
  80.         /* If directory_name contains globbing characters, then we
  81.        have to expand the previous levels.  Just recurse. */
  82. diff -cb orig/regex.c ./regex.c
  83. *** orig/regex.c    Tue Mar 20 19:08:42 1990
  84. --- ./regex.c    Tue Mar 20 18:58:30 1990
  85. ***************
  86. *** 55,60 ****
  87. --- 55,65 ----
  88.   #endif
  89.   #endif
  90.   
  91. + #ifdef MSDOS
  92. + #include <memory.h>
  93. + #include <malloc.h>
  94. + #endif
  95.   /*
  96.    * Define the syntax stuff, so we can do the \<...\> things.
  97.    */
  98. ***************
  99. *** 165,170 ****
  100. --- 170,176 ----
  101.   
  102.   #define PATUNFETCH p--
  103.   
  104. + #ifndef MSDOS
  105.   #define EXTEND_BUFFER                            \
  106.     { char *old_buffer = bufp->buffer;                    \
  107.       if (bufp->allocated == (1L<<16)) goto too_big;            \
  108. ***************
  109. *** 182,187 ****
  110. --- 188,212 ----
  111.       if (pending_exact)                            \
  112.         pending_exact = (pending_exact - old_buffer) + bufp->buffer;    \
  113.     }
  114. + #else
  115. + #define EXTEND_BUFFER                            \
  116. +   { char *old_buffer = bufp->buffer;                    \
  117. +     if (bufp->allocated == (1L<<15)) goto too_big;                      \
  118. +     bufp->allocated *= 2;                        \
  119. +     if (bufp->allocated > (1L<<15)) bufp->allocated = (1L<<15);         \
  120. +     bufp->buffer = (char *) realloc (bufp->buffer, bufp->allocated);    \
  121. +     if (bufp->buffer == 0)                        \
  122. +       goto memory_exhausted;                        \
  123. +     b = (b - old_buffer) + bufp->buffer;                \
  124. +     if (fixup_jump)                            \
  125. +       fixup_jump = (fixup_jump - old_buffer) + bufp->buffer;        \
  126. +     if (laststart)                            \
  127. +       laststart = (laststart - old_buffer) + bufp->buffer;        \
  128. +     begalt = (begalt - old_buffer) + bufp->buffer;            \
  129. +     if (pending_exact)                            \
  130. +       pending_exact = (pending_exact - old_buffer) + bufp->buffer;    \
  131. +   }
  132. + #endif
  133.   
  134.   static int store_jump (), insert_jump ();
  135.   
  136. ***************
  137. *** 256,262 ****
  138.   #endif
  139.   #endif
  140.   
  141. !   if (bufp->allocated == 0)
  142.       {
  143.         bufp->allocated = 28;
  144.         if (bufp->buffer)
  145. --- 281,287 ----
  146.   #endif
  147.   #endif
  148.   
  149. !   if (bufp->allocated < 10)
  150.       {
  151.         bufp->allocated = 28;
  152.         if (bufp->buffer)
  153. diff -cb orig/sed.c ./sed.c
  154. *** orig/sed.c    Tue Mar 20 19:08:48 1990
  155. --- ./sed.c    Tue Mar 20 19:13:10 1990
  156. ***************
  157. *** 296,302 ****
  158.   static char NO_ADDR[] = "Command doesn't take any addresses";
  159.   static char LINE_JUNK[] ="Extra characters after command";
  160.   static char BAD_EOF[] =  "Unexpected End-of-file";
  161. ! static char USAGE[] =   "Usage: %s [-n] [-e script...] [-f sfile...] [file...]\n";
  162.   static char NO_REGEX[] = "No previous regular expression";
  163.   
  164.   /* Yes, the main program, which parses arguments, and does the right thing with them,
  165. --- 296,302 ----
  166.   static char NO_ADDR[] = "Command doesn't take any addresses";
  167.   static char LINE_JUNK[] ="Extra characters after command";
  168.   static char BAD_EOF[] =  "Unexpected End-of-file";
  169. ! static char USAGE[] =   "Usage: %s [-n] [-e script...] [-f sfile...] [file...]";
  170.   static char NO_REGEX[] = "No previous regular expression";
  171.   
  172.   /* Yes, the main program, which parses arguments, and does the right thing with them,
  173. ***************
  174. *** 309,319 ****
  175.       struct sed_label *go,*lbl;
  176.   
  177.           myname=argv[0];
  178.           while((opt=getopt(argc,argv,"ne:f:"))!=EOF) {
  179.           switch(opt) {
  180.           case 'n':
  181.                           if(no_default_output)
  182. !                 panic(USAGE);
  183.               no_default_output++;
  184.               break;
  185.           case 'e':
  186. --- 309,322 ----
  187.       struct sed_label *go,*lbl;
  188.   
  189.           myname=argv[0];
  190. +         if ( argc == 1 )
  191. +           usage();
  192.           while((opt=getopt(argc,argv,"ne:f:"))!=EOF) {
  193.           switch(opt) {
  194.           case 'n':
  195.                           if(no_default_output)
  196. !                                 usage();
  197.               no_default_output++;
  198.               break;
  199.           case 'e':
  200. ***************
  201. *** 328,334 ****
  202.       }
  203.       if(!compiled) {
  204.           if(argc<=optind)
  205. !             panic("No program to run\n");
  206.           compile_string(argv[optind]);
  207.           optind++;
  208.       }
  209. --- 331,337 ----
  210.       }
  211.       if(!compiled) {
  212.           if(argc<=optind)
  213. !                         panic("No program to run");
  214.           compile_string(argv[optind]);
  215.           optind++;
  216.       }
  217. ***************
  218. *** 338,344 ****
  219.               if(!strcmp(lbl->name,go->name))
  220.                   break;
  221.           if(!lbl)
  222. !             panic("Can't find label for jump to '%s'\n",go->name);
  223.           go->v->v[go->v_index].x.jump=lbl;
  224.       }
  225.   
  226. --- 341,347 ----
  227.               if(!strcmp(lbl->name,go->name))
  228.                   break;
  229.           if(!lbl)
  230. !                         panic("Can't find label for jump to '%s'",go->name);
  231.           go->v->v[go->v_index].x.jump=lbl;
  232.       }
  233.   
  234. ***************
  235. *** 396,402 ****
  236. --- 399,432 ----
  237.       if(str[0]=='-' && str[1]=='\0')
  238.           prog_file=stdin;
  239.           else
  240. + #ifdef OS2
  241. +         {
  242. +                 char fname[256];
  243. +                 _searchenv(str, "INIT", fname);
  244. +                 if ( fname[0] == 0 )
  245. +                   _searchenv(str, "PATH", fname);
  246. +                 if ( fname[0] == 0 )
  247. +                   strcpy(fname,str);
  248. +                 prog_file=ck_fopen(fname,"r");
  249. +         }
  250. + #else
  251.                   prog_file=ck_fopen(str,"r");
  252. + #endif
  253. + #ifdef OS2
  254. +         if ( !isatty(fileno(prog_file)) )
  255. +         {
  256. +           char line[80];
  257. +           fgets(line, sizeof(line), prog_file);
  258. +           if ( strnicmp(line, "extproc ", 8) != 0 )
  259. +             rewind(prog_file);
  260. +         }
  261. + #endif
  262.       ch=getc(prog_file);
  263.       if(ch=='#') {
  264.           ch=getc(prog_file);
  265. ***************
  266. *** 729,737 ****
  267.   char *why;
  268.   {
  269.       if(prog_line)
  270. !         fprintf(stderr,"%s: file %s line %d: %s\n",myname,prog_name,prog_line,why);
  271.       else
  272. !         fprintf(stderr,"%s: %s\n",myname,why);
  273.       exit(1);
  274.   }
  275.   
  276. --- 759,767 ----
  277.   char *why;
  278.   {
  279.       if(prog_line)
  280. !                 fprintf(stderr,"\n%s: file %s line %d: %s\n",myname,prog_name,prog_line,why);
  281.       else
  282. !                 fprintf(stderr,"\n%s: %s\n",myname,why);
  283.       exit(1);
  284.   }
  285.   
  286. ***************
  287. *** 935,941 ****
  288.   
  289.               ptr=(errno>=0 && errno<sys_nerr) ? sys_errlist[errno] : "Unknown error code";
  290.               bad_input++;
  291. !             fprintf(stderr,"%s: can't read %s: %s\n",myname,name,ptr);
  292.   
  293.               return;
  294.           }
  295. --- 965,971 ----
  296.   
  297.               ptr=(errno>=0 && errno<sys_nerr) ? sys_errlist[errno] : "Unknown error code";
  298.               bad_input++;
  299. !                         fprintf(stderr,"\n%s: can't read %s: %s\n",myname,name,ptr);
  300.   
  301.               return;
  302.           }
  303. ***************
  304. *** 1126,1132 ****
  305.                           width+=2;
  306.                           break;
  307.                       default:
  308. !                         printf("/%02x",(*tmp)&0xFF);
  309.                           width+=2;
  310.                           break;
  311.                       }
  312. --- 1156,1162 ----
  313.                           width+=2;
  314.                           break;
  315.                       default:
  316. !                                                 printf("\\x%02x",(*tmp)&0xFF);
  317.                           width+=2;
  318.                           break;
  319.                       }
  320. ***************
  321. *** 1177,1183 ****
  322.                       }
  323.                   }
  324.                   if(ferror(cur_cmd->x.io_file))
  325. !                     panic("Read error on input file to 'r' command\n");
  326.               }
  327.               break;
  328.   
  329. --- 1207,1213 ----
  330.                       }
  331.                   }
  332.                   if(ferror(cur_cmd->x.io_file))
  333. !                                         panic("Read error on input file to 'r' command");
  334.               }
  335.               break;
  336.   
  337. ***************
  338. *** 1306,1312 ****
  339.               break;
  340.   
  341.           default:
  342. !             panic("INTERNAL ERROR: Bad cmd %c\n",cur_cmd->cmd);
  343.           }
  344.           if(end_cycle)
  345.               break;
  346. --- 1336,1342 ----
  347.               break;
  348.   
  349.           default:
  350. !                         panic("INTERNAL ERROR: Bad cmd %c",cur_cmd->cmd);
  351.           }
  352.           if(end_cycle)
  353.               break;
  354. ***************
  355. *** 1337,1343 ****
  356.           return (input_EOF) ? 1 : 0;
  357.   
  358.       default:
  359. !         panic("INTERNAL ERROR: bad address type\n");
  360.           break;
  361.       }
  362.       return -1;
  363. --- 1367,1373 ----
  364.           return (input_EOF) ? 1 : 0;
  365.   
  366.       default:
  367. !                 panic("INTERNAL ERROR: bad address type");
  368.           break;
  369.       }
  370.       return -1;
  371. ***************
  372. *** 1491,1496 ****
  373. --- 1521,1538 ----
  374.   /* These routines were written as part of a library (by me), but since most
  375.      people don't have the library, here they are.  */
  376.   
  377. + usage()
  378. + {
  379. +         printf("\n%s\n\n", version_string);
  380. +         printf(USAGE,myname);
  381. +         printf("\n\n  -n          no default output"
  382. +                "\n  -e script   read script as a sed command"
  383. +                "\n  -f file     read sed commands contained in file\n");
  384. +     exit(4);
  385. + }
  386.   #ifdef __STDC__
  387.   #include "stdarg.h"
  388.   
  389. ***************
  390. *** 1501,1507 ****
  391.       va_list iggy;
  392.   
  393.       va_start(iggy,str);
  394. !     fprintf(stderr,"%s: ",myname);
  395.   #ifdef NO_VFPRINTF
  396.       _doprnt(str,&iggy,stderr);
  397.   #else
  398. --- 1543,1549 ----
  399.       va_list iggy;
  400.   
  401.       va_start(iggy,str);
  402. !         fprintf(stderr,"\n%s: ",myname);
  403.   #ifdef NO_VFPRINTF
  404.       _doprnt(str,&iggy,stderr);
  405.   #else
  406. ***************
  407. *** 1522,1528 ****
  408.       va_list iggy;
  409.   
  410.       va_start(iggy);
  411. !     fprintf(stderr,"%s: ",myname);
  412.   #ifdef NO_VFPRINTF
  413.       _doprnt(str,&iggy,stderr);
  414.   #else
  415. --- 1564,1570 ----
  416.       va_list iggy;
  417.   
  418.       va_start(iggy);
  419. !         fprintf(stderr,"\n%s: ",myname);
  420.   #ifdef NO_VFPRINTF
  421.       _doprnt(str,&iggy,stderr);
  422.   #else
  423. ***************
  424. *** 1572,1578 ****
  425.   
  426.       ret=fopen(name,mode);
  427.       if(ret==(FILE *)0)
  428. !         panic("Couldn't open file %s\n",name);
  429.       for(n=0;n<N_FILE;n++) {
  430.           if(ret==__id_s[n].fp) {
  431.               free((VOID *)__id_s[n].name);
  432. --- 1614,1620 ----
  433.   
  434.       ret=fopen(name,mode);
  435.       if(ret==(FILE *)0)
  436. !                 panic("Couldn't open file %s",name);
  437.       for(n=0;n<N_FILE;n++) {
  438.           if(ret==__id_s[n].fp) {
  439.               free((VOID *)__id_s[n].name);
  440. ***************
  441. *** 1586,1592 ****
  442.               if(__id_s[n].fp==(FILE *)0)
  443.                   break;
  444.           if(n==N_FILE)
  445. !             panic("Internal error: too many files open\n");
  446.           __id_s[n].fp=ret;
  447.           __id_s[n].name=(char *)ck_malloc(strlen(name)+1);
  448.           strcpy(__id_s[n].name,name);
  449. --- 1628,1634 ----
  450.               if(__id_s[n].fp==(FILE *)0)
  451.                   break;
  452.           if(n==N_FILE)
  453. !                         panic("Internal error: too many files open");
  454.           __id_s[n].fp=ret;
  455.           __id_s[n].name=(char *)ck_malloc(strlen(name)+1);
  456.           strcpy(__id_s[n].name,name);
  457. ***************
  458. *** 1611,1617 ****
  459.   FILE *stream;
  460.   {
  461.       if(fclose(stream)==EOF)
  462. !         panic("Couldn't close %s\n",__fp_name(stream));
  463.   }
  464.   
  465.   /* Panic on failing malloc */
  466. --- 1653,1659 ----
  467.   FILE *stream;
  468.   {
  469.       if(fclose(stream)==EOF)
  470. !                 panic("Couldn't close %s",__fp_name(stream));
  471.   }
  472.   
  473.   /* Panic on failing malloc */
  474. ***************
  475. *** 1624,1630 ****
  476.   
  477.       ret=malloc(size);
  478.       if(ret==(VOID *)0)
  479. !         panic("Couldn't allocate memory\n");
  480.       return ret;
  481.   }
  482.   
  483. --- 1666,1672 ----
  484.   
  485.       ret=malloc(size);
  486.       if(ret==(VOID *)0)
  487. !                 panic("Couldn't allocate memory");
  488.       return ret;
  489.   }
  490.   
  491. ***************
  492. *** 1639,1645 ****
  493.   
  494.       ret=realloc(ptr,size);
  495.       if(ret==(VOID *)0)
  496. !         panic("Couldn't re-allocate memory\n");
  497.       return ret;
  498.   }
  499.   
  500. --- 1681,1687 ----
  501.   
  502.       ret=realloc(ptr,size);
  503.       if(ret==(VOID *)0)
  504. !                 panic("Couldn't re-allocate memory");
  505.       return ret;
  506.   }
  507.   
  508.