Yet another OS/2 patch
Ilya Zakharevich [Thu, 5 Nov 1998 02:21:12 +0000 (21:21 -0500)]
Message-Id: <199811050721.CAA27998@monk.mps.ohio-state.edu>

p4raw-id: //depot/perl@2374

os2/Changes
os2/Makefile.SHs
os2/os2.c
t/pragma/warn/op

index dbd721f..f725137 100644 (file)
@@ -214,6 +214,8 @@ after 5.005_02:
        $^E was reset on the second read, and contained ".\r\n" at the end.
 
 after 5.005_53:
+       Would segfault system()ing non-existing program;
+       AOUT build was hosed;
        warning-test for getpriority() might lock the system hard on 
                pre-fixpak22 configuration (calling getpriority() on 
                non-existing process triggers a system-wide bug).
index 8fd7bfb..c9bf39a 100644 (file)
@@ -18,6 +18,7 @@ $spitshell >>Makefile <<!GROK!THIS!
 
 PERL_VERSION = $perl_version
 
+OPTIMIZE       = $optimize
 AOUT_OPTIMIZE  = \$(OPTIMIZE)
 AOUT_CCCMD     = \$(CC) $aout_ccflags \$(AOUT_OPTIMIZE)
 AOUT_AR                = $aout_ar
index 15a6392..ce1f209 100644 (file)
--- a/os2/os2.c
+++ b/os2/os2.c
@@ -580,21 +580,24 @@ char *inicmd;
                /* Try adding script extensions to the file name, and
                   search on PATH. */
                char *scr = find_script(PL_Argv[0], TRUE, NULL, 0);
-               int l = strlen(scr);
-               
-               if (l >= sizeof scrbuf) {
-                  Safefree(scr);
-                longbuf:
-                  croak("Size of scriptname too big: %d", l);
-               }
-               strcpy(scrbuf, scr);
-               Safefree(scr);
-               scr = scrbuf;
 
                if (scr) {
-                   FILE *file = fopen(scr, "r");
+                   FILE *file;
                    char *s = 0, *s1;
+                   int l;
 
+                    l = strlen(scr);
+               
+                    if (l >= sizeof scrbuf) {
+                       Safefree(scr);
+                     longbuf:
+                       croak("Size of scriptname too big: %d", l);
+                    }
+                    strcpy(scrbuf, scr);
+                    Safefree(scr);
+                    scr = scrbuf;
+
+                   file = fopen(scr, "r");
                    PL_Argv[0] = scr;
                    if (!file)
                        goto panic_file;
index d0886ed..195928c 100644 (file)
@@ -296,7 +296,7 @@ Useless use of times in void context at - line 13.
 use warning 'void' ;
 use Config ;
 BEGIN {
-    if ( ! $Config{d_getprior}) {
+    if ( ! $Config{d_getprior} or $^O eq 'os2') { # Locks before fixpak22
         print <<EOM ;
 SKIPPED
 # getpriority not present