aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--extension/ChangeLog15
-rw-r--r--extension/Makefile.am15
-rw-r--r--extension/Makefile.in30
-rw-r--r--extension/readdir.c12
-rw-r--r--io.c7
6 files changed, 66 insertions, 17 deletions
diff --git a/ChangeLog b/ChangeLog
index bbf63a42..3a01795a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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",
diff --git a/io.c b/io.c
index fdcf6b7b..57cdb581 100644
--- a/io.c
+++ b/io.c
@@ -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 */