diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | extension/ChangeLog | 15 | ||||
-rw-r--r-- | extension/Makefile.am | 15 | ||||
-rw-r--r-- | extension/Makefile.in | 30 | ||||
-rw-r--r-- | extension/readdir.c | 12 | ||||
-rw-r--r-- | io.c | 7 |
6 files changed, 66 insertions, 17 deletions
@@ -15,6 +15,10 @@ (gawk_popen): Ditto. (devopen): Remove check for directory. +2012-07-27 Andrew J. Schorr <aschorr@telemetry-investments.com> + + * io.c (find_input_parser): Issue a warning if take_control_of fails. + 2012-07-27 Arnold D. Robbins <arnold@skeeve.com> * awk.h (set_RT): Change to take a NODE * parameter. diff --git a/extension/ChangeLog b/extension/ChangeLog index 5e39135b..4279e22d 100644 --- a/extension/ChangeLog +++ b/extension/ChangeLog @@ -1,3 +1,18 @@ +2012-07-27 Andrew J. Schorr <aschorr@telemetry-investments.com> + + * Makefile.am (*_la_LIBADD): Need to link with $(LIBINTL) for + gettext to work on platforms where it is not included in libc. + +2012-07-27 Andrew J. Schorr <aschorr@telemetry-investments.com> + + * readdir.c (dir_get_record): Need to set errno to 0 before calling + readdir, since readdir sets errno only on failure, not on EOF. + +2012-07-27 Andrew J. Schorr <aschorr@telemetry-investments.com> + + * readdir.c (dir_get_record): If readdir fails, set errcode. Otherwise, + don't bother to set errcode. + 2012-07-27 Arnold D. Robbins <arnold@skeeve.com> * readdir.c (dir_take_control_of): Fix typo for case where diff --git a/extension/Makefile.am b/extension/Makefile.am index 32969099..b7ab071b 100644 --- a/extension/Makefile.am +++ b/extension/Makefile.am @@ -43,25 +43,36 @@ pkgextension_LTLIBRARIES = \ time.la MY_MODULE_FLAGS = -module -avoid-version -no-undefined +# on Cygwin, gettext requires that we link with -lintl +MY_LIBS = $(LIBINTL) filefuncs_la_SOURCES = filefuncs.c filefuncs_la_LDFLAGS = $(MY_MODULE_FLAGS) -fnmatch_la_SOURCES = fnmatch.c -fnmatch_la_LDFLAGS = $(MY_MODULE_FLAGS) +filefuncs_la_LIBADD = $(MY_LIBS) +fnmatch_la_SOURCES = fnmatch.c +fnmatch_la_LDFLAGS = $(MY_MODULE_FLAGS) +fnmatch_la_LIBADD = $(MY_LIBS) fork_la_SOURCES = fork.c fork_la_LDFLAGS = $(MY_MODULE_FLAGS) +fork_la_LIBADD = $(MY_LIBS) ordchr_la_SOURCES = ordchr.c ordchr_la_LDFLAGS = $(MY_MODULE_FLAGS) +ordchr_la_LIBADD = $(MY_LIBS) readdir_la_SOURCES = readdir.c readdir_la_LDFLAGS = $(MY_MODULE_FLAGS) +readdir_la_LIBADD = $(MY_LIBS) readfile_la_SOURCES = readfile.c readfile_la_LDFLAGS = $(MY_MODULE_FLAGS) +readfile_la_LIBADD = $(MY_LIBS) rwarray_la_SOURCES = rwarray.c rwarray_la_LDFLAGS = $(MY_MODULE_FLAGS) +rwarray_la_LIBADD = $(MY_LIBS) time_la_SOURCES = time.c time_la_LDFLAGS = $(MY_MODULE_FLAGS) +time_la_LIBADD = $(MY_LIBS) testext_la_SOURCES = testext.c testext_la_LDFLAGS = $(MY_MODULE_FLAGS) +testext_la_LIBADD = $(MY_LIBS) EXTRA_DIST = \ ChangeLog \ diff --git a/extension/Makefile.in b/extension/Makefile.in index 14c9e149..a96cf08f 100644 --- a/extension/Makefile.in +++ b/extension/Makefile.in @@ -130,55 +130,56 @@ am__uninstall_files_from_dir = { \ } am__installdirs = "$(DESTDIR)$(pkgextensiondir)" LTLIBRARIES = $(pkgextension_LTLIBRARIES) -filefuncs_la_LIBADD = +am__DEPENDENCIES_1 = +filefuncs_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_filefuncs_la_OBJECTS = filefuncs.lo filefuncs_la_OBJECTS = $(am_filefuncs_la_OBJECTS) filefuncs_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(filefuncs_la_LDFLAGS) $(LDFLAGS) -o $@ -fnmatch_la_LIBADD = +fnmatch_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_fnmatch_la_OBJECTS = fnmatch.lo fnmatch_la_OBJECTS = $(am_fnmatch_la_OBJECTS) fnmatch_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(fnmatch_la_LDFLAGS) $(LDFLAGS) -o $@ -fork_la_LIBADD = +fork_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_fork_la_OBJECTS = fork.lo fork_la_OBJECTS = $(am_fork_la_OBJECTS) fork_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(fork_la_LDFLAGS) \ $(LDFLAGS) -o $@ -ordchr_la_LIBADD = +ordchr_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_ordchr_la_OBJECTS = ordchr.lo ordchr_la_OBJECTS = $(am_ordchr_la_OBJECTS) ordchr_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(ordchr_la_LDFLAGS) $(LDFLAGS) -o $@ -readdir_la_LIBADD = +readdir_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_readdir_la_OBJECTS = readdir.lo readdir_la_OBJECTS = $(am_readdir_la_OBJECTS) readdir_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(readdir_la_LDFLAGS) $(LDFLAGS) -o $@ -readfile_la_LIBADD = +readfile_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_readfile_la_OBJECTS = readfile.lo readfile_la_OBJECTS = $(am_readfile_la_OBJECTS) readfile_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(readfile_la_LDFLAGS) $(LDFLAGS) -o $@ -rwarray_la_LIBADD = +rwarray_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_rwarray_la_OBJECTS = rwarray.lo rwarray_la_OBJECTS = $(am_rwarray_la_OBJECTS) rwarray_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(rwarray_la_LDFLAGS) $(LDFLAGS) -o $@ -testext_la_LIBADD = +testext_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_testext_la_OBJECTS = testext.lo testext_la_OBJECTS = $(am_testext_la_OBJECTS) testext_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(testext_la_LDFLAGS) $(LDFLAGS) -o $@ -time_la_LIBADD = +time_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_time_la_OBJECTS = time.lo time_la_OBJECTS = $(am_time_la_OBJECTS) time_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -364,24 +365,35 @@ pkgextension_LTLIBRARIES = \ time.la MY_MODULE_FLAGS = -module -avoid-version -no-undefined +# on Cygwin, gettext requires that we link with -lintl +MY_LIBS = $(LIBINTL) filefuncs_la_SOURCES = filefuncs.c filefuncs_la_LDFLAGS = $(MY_MODULE_FLAGS) +filefuncs_la_LIBADD = $(MY_LIBS) fnmatch_la_SOURCES = fnmatch.c fnmatch_la_LDFLAGS = $(MY_MODULE_FLAGS) +fnmatch_la_LIBADD = $(MY_LIBS) fork_la_SOURCES = fork.c fork_la_LDFLAGS = $(MY_MODULE_FLAGS) +fork_la_LIBADD = $(MY_LIBS) ordchr_la_SOURCES = ordchr.c ordchr_la_LDFLAGS = $(MY_MODULE_FLAGS) +ordchr_la_LIBADD = $(MY_LIBS) readdir_la_SOURCES = readdir.c readdir_la_LDFLAGS = $(MY_MODULE_FLAGS) +readdir_la_LIBADD = $(MY_LIBS) readfile_la_SOURCES = readfile.c readfile_la_LDFLAGS = $(MY_MODULE_FLAGS) +readfile_la_LIBADD = $(MY_LIBS) rwarray_la_SOURCES = rwarray.c rwarray_la_LDFLAGS = $(MY_MODULE_FLAGS) +rwarray_la_LIBADD = $(MY_LIBS) time_la_SOURCES = time.c time_la_LDFLAGS = $(MY_MODULE_FLAGS) +time_la_LIBADD = $(MY_LIBS) testext_la_SOURCES = testext.c testext_la_LDFLAGS = $(MY_MODULE_FLAGS) +testext_la_LIBADD = $(MY_LIBS) EXTRA_DIST = \ ChangeLog \ ChangeLog.0 diff --git a/extension/readdir.c b/extension/readdir.c index c2b6cbda..2818d601 100644 --- a/extension/readdir.c +++ b/extension/readdir.c @@ -130,10 +130,8 @@ dir_get_record(char **out, struct iobuf_public *iobuf, int *errcode) /* * The caller sets *errcode to 0, so we should set it only if an - * error occurs. Except that the compiler complains that it - * is unused, so we set it anyways. + * error occurs. */ - *errcode = 0; /* keep the compiler happy */ if (out == NULL || iobuf == NULL || iobuf->opaque == NULL) return EOF; @@ -141,9 +139,15 @@ dir_get_record(char **out, struct iobuf_public *iobuf, int *errcode) set_RT((awk_value_t *) & null_val); the_dir = (open_directory_t *) iobuf->opaque; dp = the_dir->dp; + /* + * Initialize errno, since readdir does not set it to zero on EOF. + */ + errno = 0; dirent = readdir(dp); - if (dirent == NULL) + if (dirent == NULL) { + *errcode = errno; /* in case there was an error */ return EOF; + } if (do_ftype) sprintf(the_dir->buf, "%ld/%s/%s", @@ -2644,8 +2644,11 @@ find_input_parser(IOBUF *iop) } } - if (ip != NULL) - ip->take_control_of(& iop->public); + if (ip != NULL) { + if (! ip->take_control_of(& iop->public)) + warning(_("input parser `%s' failed to open `%s'."), + ip->name, iop->public.name); + } } /* iop_alloc --- allocate an IOBUF structure for an open fd */ |