diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2011-01-10 21:45:58 +0200 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2011-01-10 21:45:58 +0200 |
commit | 3e47f16c969b845e323f38f421a6b1da8c20c3a5 (patch) | |
tree | 3a2fc4ca6d389ec5b44d319024daa192bd3c71ab | |
parent | 163f4f479b50edfc153e9f2e77bdd9cd070e37ff (diff) | |
download | egawk-3e47f16c969b845e323f38f421a6b1da8c20c3a5.tar.gz egawk-3e47f16c969b845e323f38f421a6b1da8c20c3a5.tar.bz2 egawk-3e47f16c969b845e323f38f421a6b1da8c20c3a5.zip |
Fixes for OS/2.
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | awklib/ChangeLog | 4 | ||||
-rw-r--r-- | awklib/Makefile.am | 2 | ||||
-rw-r--r-- | awklib/Makefile.in | 2 | ||||
-rw-r--r-- | doc/gawk.info | 117 | ||||
-rw-r--r-- | doc/gawk.texi | 18 | ||||
-rw-r--r-- | io.c | 9 |
7 files changed, 90 insertions, 66 deletions
@@ -1,3 +1,7 @@ +Mon Jan 10 21:40:05 2011 Andreas Buening <andreas.buening@nexgo.de> + + * io.c (devopen): Handle opening of directories for OS/2. + Mon Jan 10 21:37:49 2011 Arnold D. Robbins <arnold@skeeve.com> * awk.h: Rearrange includes of <fcntl.h> so it won't be diff --git a/awklib/ChangeLog b/awklib/ChangeLog index 92d24d8b..e3f24da4 100644 --- a/awklib/ChangeLog +++ b/awklib/ChangeLog @@ -1,3 +1,7 @@ +Mon Jan 10 21:40:05 2011 Andreas Buening <andreas.buening@nexgo.de> + + * Makefile.am (AWKPROG): Get correct path to gawk executable. + Fri Nov 19 11:53:16 2010 Arnold D. Robbins <arnold@skeeve.com> * Makefile.am: Remove special handling of CVS directories. diff --git a/awklib/Makefile.am b/awklib/Makefile.am index e2c98dff..6801af28 100644 --- a/awklib/Makefile.am +++ b/awklib/Makefile.am @@ -26,7 +26,7 @@ EXTRA_DIST = ChangeLog extract.awk eg $(srcdir)/stamp-eg # With some locales, the script extract.awk fails. # So we fix the locale to some sensible value. -AWKPROG = LC_ALL=C LANG=C ../gawk$(EXEEXT) +AWKPROG = LC_ALL=C LANG=C $(abs_top_builddir)/gawk$(EXEEXT) # Get config.h from the build directory and custom.h from the source directory. AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir) diff --git a/awklib/Makefile.in b/awklib/Makefile.in index cd721f59..f853f0ce 100644 --- a/awklib/Makefile.in +++ b/awklib/Makefile.in @@ -247,7 +247,7 @@ top_srcdir = @top_srcdir@ EXTRA_DIST = ChangeLog extract.awk eg $(srcdir)/stamp-eg # With some locales, the script extract.awk fails. # So we fix the locale to some sensible value. -AWKPROG = LC_ALL=C LANG=C ../gawk$(EXEEXT) +AWKPROG = LC_ALL=C LANG=C $(abs_top_builddir)/gawk$(EXEEXT) # Get config.h from the build directory and custom.h from the source directory. AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir) diff --git a/doc/gawk.info b/doc/gawk.info index 50f54f64..066cd3d0 100644 --- a/doc/gawk.info +++ b/doc/gawk.info @@ -20149,11 +20149,6 @@ additional `configure' options `--infodir=c:/usr/share/info', NOTE: Versions later than GCC 2.95, i.e., GCC 3.x using the Innotek libc were not tested. - After compilation the internal tests can be performed. Enter `make -check CMP="diff -a"' at your command prompt. All tests except for the -`pid' test are expected to work properly. The `pid' test fails because -child processes are not started by `fork()'. - `make install' works as expected with the EMX build. NOTE: Most OS/2 ports of GNU `make' are not able to handle the @@ -20170,13 +20165,21 @@ B.3.1.3 Testing `gawk' on PC Operating Systems Using `make' to run the standard tests and to install `gawk' requires additional Unix-like tools, including `sh', `sed', and `cp'. In order to run the tests, the `test/*.ok' files may need to be converted so -that they have the usual MS-DOS-style end-of-line markers. Most of the -tests work properly with Stewartson's shell along with the companion -utilities or appropriate GNU utilities. However, some editing of -`test/Makefile' is required. It is recommended that you copy the file -`pc/Makefile.tst' over the file `test/Makefile' as a replacement. -Details can be found in `README_d/README.pc' and in the file -`pc/Makefile.tst'. +that they have the usual MS-DOS-style end-of-line markers. +Alternatively, run `make check CMP="diff -a"' to use GNU `diff' in text +mode instead of `cmp' to compare the resulting files. + + Most of the tests work properly with Stewartson's shell along with +the companion utilities or appropriate GNU utilities. However, some +editing of `test/Makefile' is required. It is recommended that you copy +the file `pc/Makefile.tst' over the file `test/Makefile' as a +replacement. Details can be found in `README_d/README.pc' and in the +file `pc/Makefile.tst'. + + On OS/2 the `pid' test fails because `spawnl()' is used instead of +`fork()'/`execl()' to start child processes. Also the `mbfw1' and +`mbprintf1' tests fail because the needed multibyte functionality is +not available. File: gawk.info, Node: PC Using, Next: Cygwin, Prev: PC Testing, Up: PC Installation @@ -27108,50 +27111,50 @@ Node: Non-Unix Installation800385 Node: PC Installation800843 Node: PC Binary Installation802142 Node: PC Compiling803990 -Node: PC Testing807396 -Node: PC Using808220 -Node: Cygwin812405 -Node: MSYS813402 -Node: VMS Installation813916 -Node: VMS Compilation814520 -Node: VMS Installation Details816097 -Node: VMS Running817727 -Node: VMS POSIX819324 -Node: VMS Old Gawk820622 -Node: Bugs821094 -Node: Other Versions824959 -Node: Notes829484 -Node: Compatibility Mode830176 -Node: Additions830959 -Node: Accessing The Source831771 -Node: Adding Code833194 -Node: New Ports838742 -Node: Dynamic Extensions842855 -Node: Internals844231 -Node: Plugin License853350 -Node: Sample Library853984 -Node: Internal File Description854670 -Node: Internal File Ops858377 -Ref: Internal File Ops-Footnote-1863145 -Node: Using Internal File Ops863293 -Node: Future Extensions865670 -Node: Basic Concepts868174 -Node: Basic High Level868931 -Ref: Basic High Level-Footnote-1872966 -Node: Basic Data Typing873151 -Node: Floating Point Issues877676 -Node: String Conversion Precision878759 -Ref: String Conversion Precision-Footnote-1880453 -Node: Unexpected Results880562 -Node: POSIX Floating Point Problems882388 -Ref: POSIX Floating Point Problems-Footnote-1886084 -Node: Glossary886122 -Node: Copying910221 -Node: GNU Free Documentation License947778 -Node: next-edition972922 -Node: unresolved973274 -Node: revision973774 -Node: consistency974197 -Node: Index977696 +Node: PC Testing807136 +Node: PC Using808312 +Node: Cygwin812497 +Node: MSYS813494 +Node: VMS Installation814008 +Node: VMS Compilation814612 +Node: VMS Installation Details816189 +Node: VMS Running817819 +Node: VMS POSIX819416 +Node: VMS Old Gawk820714 +Node: Bugs821186 +Node: Other Versions825051 +Node: Notes829576 +Node: Compatibility Mode830268 +Node: Additions831051 +Node: Accessing The Source831863 +Node: Adding Code833286 +Node: New Ports838834 +Node: Dynamic Extensions842947 +Node: Internals844323 +Node: Plugin License853442 +Node: Sample Library854076 +Node: Internal File Description854762 +Node: Internal File Ops858469 +Ref: Internal File Ops-Footnote-1863237 +Node: Using Internal File Ops863385 +Node: Future Extensions865762 +Node: Basic Concepts868266 +Node: Basic High Level869023 +Ref: Basic High Level-Footnote-1873058 +Node: Basic Data Typing873243 +Node: Floating Point Issues877768 +Node: String Conversion Precision878851 +Ref: String Conversion Precision-Footnote-1880545 +Node: Unexpected Results880654 +Node: POSIX Floating Point Problems882480 +Ref: POSIX Floating Point Problems-Footnote-1886176 +Node: Glossary886214 +Node: Copying910313 +Node: GNU Free Documentation License947870 +Node: next-edition973014 +Node: unresolved973366 +Node: revision973866 +Node: consistency974289 +Node: Index977788 End Tag Table diff --git a/doc/gawk.texi b/doc/gawk.texi index a81b14d3..3c045bbd 100644 --- a/doc/gawk.texi +++ b/doc/gawk.texi @@ -27066,12 +27066,6 @@ Versions later than GCC 2.95, i.e., GCC 3.x using the Innotek libc were not tested. @end quotation -After compilation the internal tests can be performed. Enter -@samp{make check CMP="diff -a"} at your command prompt. All tests -except for the @code{pid} test are expected to work properly. -The @code{pid} test fails because child processes are not started by -@code{fork()}. - @samp{make install} works as expected with the EMX build. @quotation NOTE @@ -27088,7 +27082,11 @@ find the latest version on Using @command{make} to run the standard tests and to install @command{gawk} requires additional Unix-like tools, including @command{sh}, @command{sed}, and @command{cp}. In order to run the tests, the @file{test/*.ok} files may need to -be converted so that they have the usual MS-DOS-style end-of-line markers. Most +be converted so that they have the usual MS-DOS-style end-of-line markers. +Alternatively, run @command{make check CMP="diff -a"} to use GNU @command{diff} +in text mode instead of @command{cmp} to compare the resulting files. + +Most of the tests work properly with Stewartson's shell along with the companion utilities or appropriate GNU utilities. However, some editing of @file{test/Makefile} is required. It is recommended that you copy the file @@ -27096,6 +27094,12 @@ companion utilities or appropriate GNU utilities. However, some editing of replacement. Details can be found in @file{README_d/README.pc} and in the file @file{pc/Makefile.tst}. +On OS/2 the @code{pid} test fails because @code{spawnl()} is used instead of +@code{fork()}/@code{execl()} to start child processes. +Also the @code{mbfw1} and @code{mbprintf1} tests fail because the needed +multibyte functionality is not available. + + @node PC Using @appendixsubsubsec Using @command{gawk} on PC Operating Systems @c STARTOFRANGE opgawx @@ -1502,6 +1502,15 @@ devopen(const char *name, const char *mode) strictopen: if (openfd == INVALID_HANDLE) openfd = open(name, flag, 0666); +#ifdef __EMX__ + if (openfd == INVALID_HANDLE && errno == EACCES) { + /* on OS/2 directory access via open() is not permitted */ + struct stat buf; + + if (stat(name, &buf) == 0 && S_ISDIR(buf.st_mode)) + errno = EISDIR; + } +#endif if (openfd != INVALID_HANDLE) { if (os_isdir(openfd)) { (void) close(openfd); /* don't leak fds */ |