summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog21
-rw-r--r--Makefile.in4
-rw-r--r--NEWS5
-rw-r--r--README-alpha19
-rw-r--r--config.h.in9
-rwxr-xr-xconfigure1241
-rw-r--r--configure.ac4
-rw-r--r--doc/id-utils.texi54
-rw-r--r--doc/version.texi4
-rw-r--r--libidu/id-lang.map1
-rw-r--r--libidu/iduglobal.h10
-rw-r--r--libidu/scanners.c309
-rw-r--r--po/boldquot.sed10
-rw-r--r--po/de.po57
-rw-r--r--po/fr.po57
-rw-r--r--po/nl.po69
-rw-r--r--po/pl.po57
-rw-r--r--po/quot.sed6
-rw-r--r--src/mkid.c5
19 files changed, 1863 insertions, 79 deletions
diff --git a/ChangeLog b/ChangeLog
index 6b702d6..ff235ea 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,23 @@
-2005-11-01
+2005-12-11 Claudio Fontana <claudio@gnu.org>
+ * libidu/scanners.c: Fixed signed/unsigned char* assignments by
+ making both 'scanner_buffer' and 'id' unsigned char*.
+ characters from scanner_buffer are first assigned to an int prior
+ to checking with the class-macros;
+
+ * src/mkid.c, configure.ac, libidu/iduglobal.h:
+ print an off_t value more portably by checking size of off_t
+ against size of int and size of long.
+ The remaining case is handled with c99 long long format.
+
+ * intl/*, po/*: updated to latest version
+
+2005-12-10 Claudio Fontana <claudio@gnu.org>
+ * applied savannah patch 2775: include scanner for the perl language
+
+2005-11-01 Claudio Fontana <claudio@gnu.org>
* libidu/scanners.c: applied (with changes) savannah patch 2702:
- Fix language options handling bugs, and removed redundant C options help.
+ Fix language options handling bugs, and removed redundant C options
+ help.
2005-05-31 Claudio Fontana <sick_soul@users.sourceforge.net>
* configure.in: moved to configure.ac
diff --git a/Makefile.in b/Makefile.in
index 3479f73..fbf4480 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -39,8 +39,8 @@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
$(top_srcdir)/configure $(top_srcdir)/intl/Makefile.in \
ABOUT-NLS AUTHORS COPYING ChangeLog INSTALL NEWS THANKS TODO \
- config.guess config.sub depcomp elisp-comp install-sh missing \
- mkinstalldirs
+ config.guess config.rpath config.sub depcomp elisp-comp \
+ install-sh missing mkinstalldirs
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/alloca.m4 \
diff --git a/NEWS b/NEWS
index d6b6eb7..ffc0bee 100644
--- a/NEWS
+++ b/NEWS
@@ -2,7 +2,10 @@ id-utils NEWS - User visible changes.
Version 4.0 - Nov 1, 2005, by Claudio Fontana
-* Modernize build system
+* Modernize build system (autotools, gnulib, intl, large file support)
+* Cleaned up some code
+* Fixed some portability problems (some might remain)
+* Integrated perl support
Version 3.2d - April 6, 1999, by Greg McGary
diff --git a/README-alpha b/README-alpha
index 4c27bcd..d2084c3 100644
--- a/README-alpha
+++ b/README-alpha
@@ -1,6 +1,23 @@
id-utils README-alpha
-Special instructions for pre-release testers:
+id-utils-4.0 Special instructions for pre-release testers
+---------------------------------------------------------
+
+ * The code has been substantially changed.
+ Portability problems might remain.
+
+ * Please report your successes/problems along with your operating system,
+ compiler, and possibly other relevant information.
+
+ Information that follows this small section is out of date,
+ but might contain interesting info.
+__________________________________________________________
+
+
+
+
+id-utils-3.x Special instructions for pre-release testers
+ (WARNING! Out of date, for reference only)
* The code is pretty solid, but portability problems might remain.
diff --git a/config.h.in b/config.h.in
index 4adf464..df89a74 100644
--- a/config.h.in
+++ b/config.h.in
@@ -408,6 +408,15 @@
/* Define if <inttypes.h> exists and defines unusable PRI* macros. */
#undef PRI_MACROS_BROKEN
+/* The size of a `int', as computed by sizeof. */
+#undef SIZEOF_INT
+
+/* The size of a `long', as computed by sizeof. */
+#undef SIZEOF_LONG
+
+/* The size of a `off_t', as computed by sizeof. */
+#undef SIZEOF_OFF_T
+
/* Define as the maximum value of type 'size_t', if the system doesn't define
it. */
#undef SIZE_MAX
diff --git a/configure b/configure
index cb37874..df27514 100755
--- a/configure
+++ b/configure
@@ -18031,6 +18031,1247 @@ _ACEOF
fi
+echo "$as_me:$LINENO: checking for off_t" >&5
+echo $ECHO_N "checking for off_t... $ECHO_C" >&6
+if test "${ac_cv_type_off_t+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+if ((off_t *) 0)
+ return 0;
+if (sizeof (off_t))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_type_off_t=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_off_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5
+echo "${ECHO_T}$ac_cv_type_off_t" >&6
+
+echo "$as_me:$LINENO: checking size of off_t" >&5
+echo $ECHO_N "checking size of off_t... $ECHO_C" >&6
+if test "${ac_cv_sizeof_off_t+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test "$ac_cv_type_off_t" = yes; then
+ # The cast to unsigned long works around a bug in the HP C Compiler
+ # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+ # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+ # This bug is HP SR number 8606223364.
+ if test "$cross_compiling" = yes; then
+ # Depending upon the size, compute the lo and hi bounds.
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (off_t))) >= 0)];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_lo=0 ac_mid=0
+ while :; do
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (off_t))) <= $ac_mid)];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_hi=$ac_mid; break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr $ac_mid + 1`
+ if test $ac_lo -le $ac_mid; then
+ ac_lo= ac_hi=
+ break
+ fi
+ ac_mid=`expr 2 '*' $ac_mid + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ done
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (off_t))) < 0)];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_hi=-1 ac_mid=-1
+ while :; do
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (off_t))) >= $ac_mid)];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_lo=$ac_mid; break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_hi=`expr '(' $ac_mid ')' - 1`
+ if test $ac_mid -le $ac_hi; then
+ ac_lo= ac_hi=
+ break
+ fi
+ ac_mid=`expr 2 '*' $ac_mid`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ done
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo= ac_hi=
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+ ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (off_t))) <= $ac_mid)];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_hi=$ac_mid
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr '(' $ac_mid ')' + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in
+?*) ac_cv_sizeof_off_t=$ac_lo;;
+'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (off_t), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (off_t), 77
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; } ;;
+esac
+else
+ if test "$cross_compiling" = yes; then
+ { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+long longval () { return (long) (sizeof (off_t)); }
+unsigned long ulongval () { return (long) (sizeof (off_t)); }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+ FILE *f = fopen ("conftest.val", "w");
+ if (! f)
+ exit (1);
+ if (((long) (sizeof (off_t))) < 0)
+ {
+ long i = longval ();
+ if (i != ((long) (sizeof (off_t))))
+ exit (1);
+ fprintf (f, "%ld\n", i);
+ }
+ else
+ {
+ unsigned long i = ulongval ();
+ if (i != ((long) (sizeof (off_t))))
+ exit (1);
+ fprintf (f, "%lu\n", i);
+ }
+ exit (ferror (f) || fclose (f) != 0);
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_sizeof_off_t=`cat conftest.val`
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+{ { echo "$as_me:$LINENO: error: cannot compute sizeof (off_t), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (off_t), 77
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+rm -f conftest.val
+else
+ ac_cv_sizeof_off_t=0
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_sizeof_off_t" >&5
+echo "${ECHO_T}$ac_cv_sizeof_off_t" >&6
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_OFF_T $ac_cv_sizeof_off_t
+_ACEOF
+
+
+echo "$as_me:$LINENO: checking for int" >&5
+echo $ECHO_N "checking for int... $ECHO_C" >&6
+if test "${ac_cv_type_int+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+if ((int *) 0)
+ return 0;
+if (sizeof (int))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_type_int=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_int=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_int" >&5
+echo "${ECHO_T}$ac_cv_type_int" >&6
+
+echo "$as_me:$LINENO: checking size of int" >&5
+echo $ECHO_N "checking size of int... $ECHO_C" >&6
+if test "${ac_cv_sizeof_int+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test "$ac_cv_type_int" = yes; then
+ # The cast to unsigned long works around a bug in the HP C Compiler
+ # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+ # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+ # This bug is HP SR number 8606223364.
+ if test "$cross_compiling" = yes; then
+ # Depending upon the size, compute the lo and hi bounds.
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (int))) >= 0)];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_lo=0 ac_mid=0
+ while :; do
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (int))) <= $ac_mid)];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_hi=$ac_mid; break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr $ac_mid + 1`
+ if test $ac_lo -le $ac_mid; then
+ ac_lo= ac_hi=
+ break
+ fi
+ ac_mid=`expr 2 '*' $ac_mid + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ done
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (int))) < 0)];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_hi=-1 ac_mid=-1
+ while :; do
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (int))) >= $ac_mid)];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_lo=$ac_mid; break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_hi=`expr '(' $ac_mid ')' - 1`
+ if test $ac_mid -le $ac_hi; then
+ ac_lo= ac_hi=
+ break
+ fi
+ ac_mid=`expr 2 '*' $ac_mid`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ done
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo= ac_hi=
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+ ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (int))) <= $ac_mid)];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_hi=$ac_mid
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr '(' $ac_mid ')' + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in
+?*) ac_cv_sizeof_int=$ac_lo;;
+'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (int), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (int), 77
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; } ;;
+esac
+else
+ if test "$cross_compiling" = yes; then
+ { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+long longval () { return (long) (sizeof (int)); }
+unsigned long ulongval () { return (long) (sizeof (int)); }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+ FILE *f = fopen ("conftest.val", "w");
+ if (! f)
+ exit (1);
+ if (((long) (sizeof (int))) < 0)
+ {
+ long i = longval ();
+ if (i != ((long) (sizeof (int))))
+ exit (1);
+ fprintf (f, "%ld\n", i);
+ }
+ else
+ {
+ unsigned long i = ulongval ();
+ if (i != ((long) (sizeof (int))))
+ exit (1);
+ fprintf (f, "%lu\n", i);
+ }
+ exit (ferror (f) || fclose (f) != 0);
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_sizeof_int=`cat conftest.val`
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+{ { echo "$as_me:$LINENO: error: cannot compute sizeof (int), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (int), 77
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+rm -f conftest.val
+else
+ ac_cv_sizeof_int=0
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_sizeof_int" >&5
+echo "${ECHO_T}$ac_cv_sizeof_int" >&6
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_INT $ac_cv_sizeof_int
+_ACEOF
+
+
+echo "$as_me:$LINENO: checking for long" >&5
+echo $ECHO_N "checking for long... $ECHO_C" >&6
+if test "${ac_cv_type_long+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+if ((long *) 0)
+ return 0;
+if (sizeof (long))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_type_long=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_long=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_long" >&5
+echo "${ECHO_T}$ac_cv_type_long" >&6
+
+echo "$as_me:$LINENO: checking size of long" >&5
+echo $ECHO_N "checking size of long... $ECHO_C" >&6
+if test "${ac_cv_sizeof_long+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test "$ac_cv_type_long" = yes; then
+ # The cast to unsigned long works around a bug in the HP C Compiler
+ # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+ # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+ # This bug is HP SR number 8606223364.
+ if test "$cross_compiling" = yes; then
+ # Depending upon the size, compute the lo and hi bounds.
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (long))) >= 0)];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_lo=0 ac_mid=0
+ while :; do
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (long))) <= $ac_mid)];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_hi=$ac_mid; break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr $ac_mid + 1`
+ if test $ac_lo -le $ac_mid; then
+ ac_lo= ac_hi=
+ break
+ fi
+ ac_mid=`expr 2 '*' $ac_mid + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ done
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (long))) < 0)];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_hi=-1 ac_mid=-1
+ while :; do
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (long))) >= $ac_mid)];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_lo=$ac_mid; break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_hi=`expr '(' $ac_mid ')' - 1`
+ if test $ac_mid -le $ac_hi; then
+ ac_lo= ac_hi=
+ break
+ fi
+ ac_mid=`expr 2 '*' $ac_mid`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ done
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo= ac_hi=
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+ ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (long))) <= $ac_mid)];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_hi=$ac_mid
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr '(' $ac_mid ')' + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in
+?*) ac_cv_sizeof_long=$ac_lo;;
+'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (long), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (long), 77
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; } ;;
+esac
+else
+ if test "$cross_compiling" = yes; then
+ { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+long longval () { return (long) (sizeof (long)); }
+unsigned long ulongval () { return (long) (sizeof (long)); }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+ FILE *f = fopen ("conftest.val", "w");
+ if (! f)
+ exit (1);
+ if (((long) (sizeof (long))) < 0)
+ {
+ long i = longval ();
+ if (i != ((long) (sizeof (long))))
+ exit (1);
+ fprintf (f, "%ld\n", i);
+ }
+ else
+ {
+ unsigned long i = ulongval ();
+ if (i != ((long) (sizeof (long))))
+ exit (1);
+ fprintf (f, "%lu\n", i);
+ }
+ exit (ferror (f) || fclose (f) != 0);
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_sizeof_long=`cat conftest.val`
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+{ { echo "$as_me:$LINENO: error: cannot compute sizeof (long), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (long), 77
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+rm -f conftest.val
+else
+ ac_cv_sizeof_long=0
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_sizeof_long" >&5
+echo "${ECHO_T}$ac_cv_sizeof_long" >&6
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_LONG $ac_cv_sizeof_long
+_ACEOF
+
ac_config_files="$ac_config_files intl/Makefile po/Makefile.in doc/Makefile m4/Makefile lib/Makefile libidu/Makefile lisp/Makefile testsuite/Makefile src/Makefile Makefile"
diff --git a/configure.ac b/configure.ac
index 7aa624d..38de9b8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -46,7 +46,9 @@ AC_C_INLINE
AC_TYPE_OFF_T
AC_TYPE_SIZE_T
AC_CHECK_TYPES(ptrdiff_t)
-
+AC_CHECK_SIZEOF(off_t)
+AC_CHECK_SIZEOF(int)
+AC_CHECK_SIZEOF(long)
AC_CONFIG_FILES([
intl/Makefile
diff --git a/doc/id-utils.texi b/doc/id-utils.texi
index 396fb62..26a673a 100644
--- a/doc/id-utils.texi
+++ b/doc/id-utils.texi
@@ -427,6 +427,7 @@ scanners, and examine their language-specific options by invoking
* C/C++ scanner:: For the C and C++ programming language.
* Assembler scanner:: For assembly language.
* Text scanner:: For documents or other non-source code.
+* Perl scanner:: For Perl language (experimental).
* Defining scanners:: Defining new scanners in the source code.
@end menu
@@ -706,6 +707,59 @@ them as token delimiters.
@end table
@c ************* gkm *********************************************************
+@node Perl scanner
+@subsection Perl Scanner
+
+@cindex perl scanner
+(EXPERIMENTAL)
+
+The perl scanner is intended for perl-language documents. Tokens are all
+words, Perl Keywords are included. Comments & string declarations are
+ignored, as well as the documentation. It is customizable to the extent
+that character classes can be designated as token constituents or as
+token delimiters. The default token constituents are the alpha-numerics;
+all other characters are considered token delimiters.
+
+@table @samp
+
+@item -i @var{character-class}
+@itemx --include=@var{character-class}
+@opindex -i
+@opindex --include
+@opindex -l perl:-i
+@opindex -l perl:--include
+@opindex --lang-option=perl:-i
+@opindex --lang-option=perl:--include
+
+Include characters belonging to @var{character-class} in tokens.
+
+@item -x @var{character-class}
+@itemx --exclude=@var{character-class}
+@opindex -x
+@opindex --exclude
+@opindex -l perl:-x
+@opindex -l perl:--exclude
+@opindex --lang-option=perl:-x
+@opindex --lang-option=perl:--exclude
+
+Exclude characters belonging to @var{character-class} from tokens, i.e., treat
+them as token delimiters.
+
+@item -d
+@itemx --dtags
+@opindex -d
+@opindex --dtags
+@opindex -l asm:-d
+@opindex -l asm:--dtags
+@opindex --lang-option=perl:-d
+@opindex --lang-option=perl:--dtags
+
+Include tokens from the documentation. By default, the tokens in the
+documentation are ignored.
+
+@end table
+
+@c ************* gkm *********************************************************
@node Defining scanners
@subsection Defining New Scanners in the Source Code
diff --git a/doc/version.texi b/doc/version.texi
index b8aacf5..0ea9ff1 100644
--- a/doc/version.texi
+++ b/doc/version.texi
@@ -1,4 +1,4 @@
-@set UPDATED 3 December 2001
-@set UPDATED-MONTH December 2001
+@set UPDATED 9 November 2005
+@set UPDATED-MONTH November 2005
@set EDITION 4.0
@set VERSION 4.0
diff --git a/libidu/id-lang.map b/libidu/id-lang.map
index e230cb6..00a55a7 100644
--- a/libidu/id-lang.map
+++ b/libidu/id-lang.map
@@ -83,6 +83,7 @@ Makefile.* make
*.m4 m4
*.pl perl
+*.pm perl
*.gz FILTER gzip -d <%s
*.Z FILTER gzip -d <%s
diff --git a/libidu/iduglobal.h b/libidu/iduglobal.h
index e7a2916..1441efe 100644
--- a/libidu/iduglobal.h
+++ b/libidu/iduglobal.h
@@ -68,4 +68,14 @@
#define DOT_DOT_SLASH "..\\"
#endif
+/* vvv fix me: does not solve off_t printing problem, only a workaround vvv */
+
+#if SIZEOF_OFF_T == SIZEOF_INT
+# define OFF_FMT "%d"
+#elif SIZEOF_OFF_T == SIZEOF_LONG
+# define OFF_FMT "%ld"
+#else
+# define OFF_FMT "%lld"
+#endif
+
#endif /* _iduglobal_h */
diff --git a/libidu/scanners.c b/libidu/scanners.c
index 332edb1..eaeb8b9 100644
--- a/libidu/scanners.c
+++ b/libidu/scanners.c
@@ -62,12 +62,18 @@ static struct token *get_token_text (FILE *in_FILE, void const *args, int *flags
static void *parse_args_text (char **argv, int argc);
static void help_me_text (void);
+static struct token *get_token_perl (FILE *in_FILE, void const *args, int *flags);
+static void *parse_args_perl (char **argv, int argc);
+static void help_me_perl (void);
+
+
struct language languages_0[] =
{
{ "C", parse_args_c, get_token_c, help_me_c },
{ "C++", parse_args_c, get_token_c, help_me_cpp },
{ "asm", parse_args_asm, get_token_asm, help_me_asm },
{ "text", parse_args_text, get_token_text, help_me_text },
+ { "perl", parse_args_perl, get_token_perl, help_me_perl }
};
struct language const *languages_N = &languages_0[cardinalityof (languages_0)];
@@ -587,7 +593,7 @@ get_token_c (FILE *in_FILE, void const *args, int *flags)
static int new_line = 1;
unsigned short const *rct = &ARGS->ctype[1];
unsigned char *id = scanner_buffer;
- int c;
+ int c; int d;
obstack_blank (&tokens_obstack, OFFSETOF_TOKEN_NAME);
@@ -620,7 +626,7 @@ next:
}
*--id = '\0';
id = scanner_buffer;
- while (ISSTRKEEP (*id))
+ while (ISSTRKEEP (d = *id))
id++;
if (*id || id == scanner_buffer)
{
@@ -899,7 +905,7 @@ get_token_asm (FILE *in_FILE, void const *args, int *flags)
static int new_line = 1;
unsigned char const *rct = &ARGS->ctype[1];
unsigned char *id = scanner_buffer;
- int c;
+ int c, d;
obstack_blank (&tokens_obstack, OFFSETOF_TOKEN_NAME);
@@ -987,7 +993,7 @@ next:
*id = '\0';
for (id = scanner_buffer; *id; id++)
- if (ISIGNORE (*id))
+ if (ISIGNORE (d = *id))
goto next;
ungetc (c, in_FILE);
*flags |= TOK_LITERAL;
@@ -1205,3 +1211,298 @@ top:
#undef ISEOF
#undef ISBORING
#undef ISIDSQUEEZE
+
+/*************** Perl *******************************************************/
+
+#define I1 0x01 /* 1st char of an identifier [a-zA-Z_] */
+#define NM 0x02 /* digit [0-9a-fA-FxX] */
+#define SQ 0x04 /* squeeze these out (.,',-) */
+#define CM 0x08 /* Comment Character '#' */
+#define EQ 0x10 /* Start of Documentation Character '=' */
+#define Q1 0x20 /* Start of Single Quote ''' */
+#define Q2 0x40 /* Start of Double Quote '"' */
+#define EF 0x80 /* EOF */
+#define NL 0x100 /* '\n' character */
+#define ES 0x200 /* Escape '\\' character */
+
+/* Text character classes */
+#define ISID1ST(c) ((rct)[c] & (I1))
+#define ISIDREST(c) ((rct)[c] & (I1|NM|SQ|Q1))
+#define ISNUMBER(c) ((rct)[c] & (NM))
+#define ISIDSQUEEZE(c) ((rct)[c] & (SQ))
+#define ISCOMMENT(c) ((rct)[c] & (CM))
+#define ISEQUALS(c) ((rct)[c] & (EQ))
+#define ISQUOTE1(c) ((rct)[c] & (Q1))
+#define ISQUOTE2(c) ((rct)[c] & (Q2))
+#define ISNEWLINE(c) ((rct)[c] & (NL))
+#define ISEOF(c) ((rct)[c] & (EF))
+#define ISBORING(c) (!((rct)[c] & (I1|NL|NM|CM|EQ|Q1|Q2|ES|EF)))
+
+static unsigned short ctype_perl[257] =
+{
+ EF,
+/* 0 1 2 3 4 5 6 7 */
+/* ----- ----- ----- ----- ----- ----- ----- ----- */
+/*000*/ 0, 0, 0, 0, 0, 0, 0, 0,
+/*010*/ 0, 0, NL, 0, 0, 0, 0, 0,
+/*020*/ 0, 0, 0, 0, 0, 0, 0, 0,
+/*030*/ 0, 0, 0, 0, 0, 0, 0, 0,
+/*040*/ 0, 0, Q2, CM, 0, 0, 0, Q1,
+/*050*/ 0, 0, 0, 0, 0, 0, 0, 0,
+/*060*/ NM, NM, NM, NM, NM, NM, NM, NM,
+/*070*/ NM, NM, 0, 0, 0, EQ, 0, 0,
+/*100*/ 0, I1|NM, I1|NM, I1|NM, I1|NM, I1|NM, I1|NM, I1,
+/*110*/ I1, I1, I1, I1, I1|NM, I1, I1, I1,
+/*120*/ I1, I1, I1, I1, I1, I1, I1, I1,
+/*130*/ I1|NM, I1, I1, 0, ES, 0, 0, I1,
+/*140*/ 0, I1|NM, I1|NM, I1|NM, I1|NM, I1|NM, I1|NM, I1,
+/*150*/ I1, I1, I1, I1, I1|NM, I1, I1, I1,
+/*160*/ I1, I1, I1, I1, I1, I1, I1, I1,
+/*170*/ I1|NM, I1, I1, 0, 0, 0, 0, 0,
+/*200*/ 0, 0, 0, 0, 0, 0, 0, 0,
+/*210*/ 0, 0, 0, 0, 0, 0, 0, 0,
+/*220*/ 0, 0, 0, 0, 0, 0, 0, 0,
+/*230*/ 0, 0, 0, 0, 0, 0, 0, 0,
+/*240*/ 0, 0, 0, 0, 0, 0, 0, 0,
+/*250*/ 0, 0, 0, 0, 0, 0, 0, 0,
+/*260*/ 0, 0, 0, 0, 0, 0, 0, 0,
+/*270*/ 0, 0, 0, 0, 0, 0, 0, 0,
+/*300*/ I1, I1, I1, I1, I1, I1, I1, I1,
+/*310*/ I1, I1, I1, I1, I1, I1, I1, I1,
+/*320*/ I1, I1, I1, I1, I1, I1, I1, 0,
+/*330*/ I1, I1, I1, I1, I1, I1, I1, I1,
+/*340*/ I1, I1, I1, I1, I1, I1, I1, I1,
+/*350*/ I1, I1, I1, I1, I1, I1, I1, I1,
+/*360*/ I1, I1, I1, I1, I1, I1, I1, 0,
+/*370*/ I1, I1, I1, I1, I1, I1, I1, I1,
+};
+
+struct args_perl
+{
+ int exclude_dtags;
+ unsigned short *ctype;
+};
+
+static struct args_perl args_perl = { 1, ctype_perl };
+
+static struct option const long_options_perl[] =
+{
+ { "include", required_argument, 0, 'i' },
+ { "exclude", required_argument, 0, 'x' },
+ { "dtags", no_argument, 0, 'd' },
+ { 0 }
+};
+
+static void
+help_me_perl (void)
+{
+ printf (_("\
+Perl language:\n\
+ -i,--include=CHAR-CLASS Treat characters of CHAR-CLASS as token constituents\n\
+ -x,--exclude=CHAR-CLASS Treat characters of CHAR-CLASS as token delimiters\n\
+ -d,--dtags Include documentation tags\n\
+"));
+}
+
+static void *
+parse_args_perl (char **argv, int argc)
+{
+ char *tmp_string = 0;
+ struct args_perl *args;
+
+ if (argv == 0 || *argv == 0)
+ return &args_perl;
+
+ if (argc)
+ args = &args_perl;
+ else
+ {
+ tmp_string = strdup (*argv);
+ tokenize_args_string (tmp_string, &argc, &argv);
+ args = xmalloc (sizeof(struct args_perl));
+ args->exclude_dtags = 1;
+ args->ctype = ctype_perl;
+ }
+
+ optind = 0;
+ for (;;)
+ {
+ int optc = getopt_long (argc, argv, "i:x:d",
+ long_options_perl, (int *) 0);
+ if (optc < 0)
+ break;
+ if ((optc == 'x' || optc == 'i') && args->ctype == ctype_perl)
+ args->ctype = CLONE (ctype_perl, unsigned short, cardinalityof (ctype_perl));
+ switch (optc)
+ {
+ case 'd':
+ args->exclude_dtags = 0;
+ break;
+
+ case 'i':
+ set_ushort_ctype (args->ctype, optarg, I1);
+ break;
+
+ case 'x':
+ clear_ushort_ctype (args->ctype, optarg, I1);
+ break;
+
+ default:
+ usage ();
+ }
+ }
+ if (tmp_string)
+ {
+ free (argv);
+ free (tmp_string);
+ }
+ return args;
+}
+
+/* Grab the next identifier the text source file. This state machine
+ is built for speed, not elegance. */
+
+static struct token *
+get_token_perl (FILE *in_FILE, void const *args, int *flags)
+{
+#define ARGS ((struct args_perl const *) args)
+ static int new_line = 1;
+ /* static char id_0[BUFSIZ]; */
+ unsigned short const *rct = &ARGS->ctype[1];
+ int c, state = 0, skip_doc = 0;
+ /* int comment = 0, d_quote = 0, s_quote = 0, equals = 0; */
+ unsigned char *id = scanner_buffer;
+
+ obstack_blank (&tokens_obstack, OFFSETOF_TOKEN_NAME);
+
+top:
+ c = getc (in_FILE);
+ while (ISBORING (c))
+ c = getc (in_FILE);
+
+ switch (c)
+ {
+ case '\n':
+ state &= ~CM; /* comment = 0; */
+ new_line = 1;
+ goto top;
+ break;
+
+ case '\\':
+ c = getc (in_FILE); /* Skip next character */
+ new_line = 0;
+ goto top;
+ break;
+
+ case '#':
+ state |= CM; /* comment = 1; */
+ break;
+
+ case '\'':
+ if (!skip_doc)
+ state ^= Q1; /* s_quote = ((s_quote) ? 0 : 1); */
+ break;
+
+ case '\"':
+ if (!skip_doc)
+ state ^= Q2; /* d_quote = ((d_quote == 1) ? 0 : 1); */
+ break;
+
+ case '=':
+ if (new_line && ARGS->exclude_dtags)
+ {
+ skip_doc = 1;
+ state &= ~EQ; /* documenation = 0; */
+ }
+ break;
+
+ default:
+ if (ISEOF (c))
+ {
+ new_line = 1;
+ obstack_free (&tokens_obstack, obstack_finish (&tokens_obstack));
+ return 0;
+ }
+ break;
+ }
+
+ new_line = 0;
+ if (ISCOMMENT(c) || ISQUOTE1(c) || ISQUOTE2(c) ||
+ ISNEWLINE(c) || ISEQUALS(c) || state)
+ goto top;
+
+ id = scanner_buffer;
+ *id++ = c;
+ if (ISID1ST (c))
+ {
+ *flags = TOK_NAME;
+ while (ISIDREST (c = getc (in_FILE)))
+ if (!ISIDSQUEEZE (c))
+ *id++ = c;
+ }
+ else if (ISNUMBER (c))
+ {
+ *flags = TOK_NUMBER;
+ while (ISNUMBER (c = getc (in_FILE)))
+ *id++ = c;
+
+ ungetc (c, in_FILE);
+ goto top; /* skip all numbers */
+ }
+ else
+ {
+ if (isprint (c))
+ fprintf (stderr, _("junk: `%c'"), c);
+ else
+ fprintf (stderr, _("junk: `\\%03o'"), c);
+ goto top;
+ }
+
+ ungetc (c, in_FILE);
+
+ *id = '\0';
+ if (skip_doc)
+ {
+ if (strequ (scanner_buffer, "cut"))
+ {
+ skip_doc = 0;
+ }
+ else
+ {
+ state |= EQ; /* documenation = 1; */
+ }
+ goto top;
+ }
+
+ if (strequ (scanner_buffer, "_"))
+ {
+ goto top;
+ }
+
+ *flags |= TOK_LITERAL;
+ obstack_grow0 (&tokens_obstack, scanner_buffer, id - scanner_buffer);
+ return (struct token *) obstack_finish (&tokens_obstack);
+#undef ARGS
+}
+
+#undef I1
+#undef NM
+#undef SQ
+#undef CM
+#undef EQ
+#undef Q1
+#undef Q2
+#undef EF
+#undef NL
+#undef ES
+#undef ISID1ST
+#undef ISIDREST
+#undef ISNUMBER
+#undef ISIDSQUEEZE
+#undef ISCOMMENT
+#undef ISEQUALS
+#undef ISQUOTE1
+#undef ISQUOTE2
+#undef ISNEWLINE
+#undef ISEOF
+#undef ISBORING
diff --git a/po/boldquot.sed b/po/boldquot.sed
new file mode 100644
index 0000000..4b937aa
--- /dev/null
+++ b/po/boldquot.sed
@@ -0,0 +1,10 @@
+s/"\([^"]*\)"/“\1”/g
+s/`\([^`']*\)'/‘\1’/g
+s/ '\([^`']*\)' / ‘\1’ /g
+s/ '\([^`']*\)'$/ ‘\1’/g
+s/^'\([^`']*\)' /‘\1’ /g
+s/“”/""/g
+s/“/“/g
+s/”/”/g
+s/‘/‘/g
+s/’/’/g
diff --git a/po/de.po b/po/de.po
index e6595e2..b06f75a 100644
--- a/po/de.po
+++ b/po/de.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: GNU mkid 3.0.8\n"
"Report-Msgid-Bugs-To: bug-id-utils@gnu.org\n"
-"POT-Creation-Date: 2005-10-06 13:04+0200\n"
+"POT-Creation-Date: 2005-12-11 04:49+0100\n"
"PO-Revision-Date: 1996-03-23 22:34 MET\n"
"Last-Translator: Karl Eichwalder <ke@ke.Central.DE>\n"
"Language-Team: German <de@li.org>\n"
@@ -73,45 +73,45 @@ msgstr ""
msgid "unsupported size in io_write (): %d"
msgstr "Nicht untersttzte Gre (`size') in \"io_write ()\": %d"
-#: libidu/scanners.c:93
+#: libidu/scanners.c:100
#, fuzzy, c-format
msgid "unrecognized language: `%s'"
msgstr "Kein Scanner fr die Sprache '%s'"
-#: libidu/scanners.c:139
+#: libidu/scanners.c:146
msgid "can't allocate language args obstack: memory exhausted"
msgstr ""
-#: libidu/scanners.c:193 libidu/scanners.c:262
+#: libidu/scanners.c:200 libidu/scanners.c:269
msgid "can't allocate language args: memory exhausted"
msgstr ""
-#: libidu/scanners.c:201
+#: libidu/scanners.c:208
#, c-format
msgid "language name expected following `%s' in file `%s'"
msgstr ""
-#: libidu/scanners.c:256
+#: libidu/scanners.c:263
#, fuzzy, c-format
msgid "can't open language map file `%s'"
msgstr "Kein Scanner fr die Sprache '%s'"
-#: libidu/scanners.c:258
+#: libidu/scanners.c:265
#, c-format
msgid "can't get size of map file `%s'"
msgstr ""
-#: libidu/scanners.c:268
+#: libidu/scanners.c:275
#, fuzzy, c-format
msgid "can't read language map file `%s'"
msgstr "Kein Scanner fr die Sprache '%s'"
-#: libidu/scanners.c:271
+#: libidu/scanners.c:278
#, c-format
msgid "can't read entire language map file `%s'"
msgstr ""
-#: libidu/scanners.c:416
+#: libidu/scanners.c:423
#, c-format
msgid ""
"C language:\n"
@@ -123,17 +123,31 @@ msgid ""
"strings\n"
msgstr ""
-#: libidu/scanners.c:699 libidu/scanners.c:970 libidu/scanners.c:1173
+#: libidu/scanners.c:434
+#, c-format
+msgid ""
+"C++ language:\n"
+" -k,--keep=CHARS Allow CHARS in single-token strings, keep the "
+"result\n"
+" -i,--ignore=CHARS Allow CHARS in single-token strings, toss the "
+"result\n"
+" -u,--strip-underscore Strip a leading underscore from single-token "
+"strings\n"
+msgstr ""
+
+#: libidu/scanners.c:717 libidu/scanners.c:988 libidu/scanners.c:1191
+#: libidu/scanners.c:1455
#, c-format
msgid "junk: `%c'"
msgstr "\"junk\": '%c'"
-#: libidu/scanners.c:701 libidu/scanners.c:972 libidu/scanners.c:1175
+#: libidu/scanners.c:719 libidu/scanners.c:990 libidu/scanners.c:1193
+#: libidu/scanners.c:1457
#, c-format
msgid "junk: `\\%03o'"
msgstr "\"junk\": '\\%03o'"
-#: libidu/scanners.c:805
+#: libidu/scanners.c:823
#, c-format
msgid ""
"Assembly language:\n"
@@ -144,7 +158,7 @@ msgid ""
" -n,--no-cpp Don't handle C pre-processor directives\n"
msgstr ""
-#: libidu/scanners.c:1076
+#: libidu/scanners.c:1094
#, c-format
msgid ""
"Text language:\n"
@@ -154,6 +168,17 @@ msgid ""
"delimiters\n"
msgstr ""
+#: libidu/scanners.c:1299
+#, c-format
+msgid ""
+"Perl language:\n"
+" -i,--include=CHAR-CLASS Treat characters of CHAR-CLASS as token "
+"constituents\n"
+" -x,--exclude=CHAR-CLASS Treat characters of CHAR-CLASS as token "
+"delimiters\n"
+" -d,--dtags Include documentation tags\n"
+msgstr ""
+
#: libidu/walker.c:111
#, c-format
msgid "can't read directory `%s' (`.' from `%s')"
@@ -542,12 +567,12 @@ msgstr "Schreibe '%s'...\n"
msgid "can't create `%s'"
msgstr ""
-#: src/mkid.c:629
+#: src/mkid.c:630
#, c-format
msgid "error closing `%s'"
msgstr ""
-#: src/mkid.c:717
+#: src/mkid.c:718
#, fuzzy, c-format
msgid "level %d: %ld/%ld = %.0f%%\n"
msgstr "level %d: %ld == %ld\n"
diff --git a/po/fr.po b/po/fr.po
index 1b389ad..0e8340b 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: GNU mkid 3.0.8\n"
"Report-Msgid-Bugs-To: bug-id-utils@gnu.org\n"
-"POT-Creation-Date: 2005-10-06 13:04+0200\n"
+"POT-Creation-Date: 2005-12-11 04:49+0100\n"
"PO-Revision-Date: 1996-03-23 22:34 MET\n"
"Last-Translator: Unknown <unknown@unknown.fr>\n"
"Language-Team: French <fr@li.org>\n"
@@ -84,45 +84,45 @@ msgstr ""
msgid "unsupported size in io_write (): %d"
msgstr "Paramtre taille pass io_write () non suport: %d"
-#: libidu/scanners.c:93
+#: libidu/scanners.c:100
#, fuzzy, c-format
msgid "unrecognized language: `%s'"
msgstr "Pas d'analyseur lexical pour le langag `%s'"
-#: libidu/scanners.c:139
+#: libidu/scanners.c:146
msgid "can't allocate language args obstack: memory exhausted"
msgstr ""
-#: libidu/scanners.c:193 libidu/scanners.c:262
+#: libidu/scanners.c:200 libidu/scanners.c:269
msgid "can't allocate language args: memory exhausted"
msgstr ""
-#: libidu/scanners.c:201
+#: libidu/scanners.c:208
#, c-format
msgid "language name expected following `%s' in file `%s'"
msgstr ""
-#: libidu/scanners.c:256
+#: libidu/scanners.c:263
#, fuzzy, c-format
msgid "can't open language map file `%s'"
msgstr "Pas d'analyseur lexical pour le langag `%s'"
-#: libidu/scanners.c:258
+#: libidu/scanners.c:265
#, c-format
msgid "can't get size of map file `%s'"
msgstr ""
-#: libidu/scanners.c:268
+#: libidu/scanners.c:275
#, fuzzy, c-format
msgid "can't read language map file `%s'"
msgstr "Pas d'analyseur lexical pour le langag `%s'"
-#: libidu/scanners.c:271
+#: libidu/scanners.c:278
#, c-format
msgid "can't read entire language map file `%s'"
msgstr ""
-#: libidu/scanners.c:416
+#: libidu/scanners.c:423
#, c-format
msgid ""
"C language:\n"
@@ -134,17 +134,31 @@ msgid ""
"strings\n"
msgstr ""
-#: libidu/scanners.c:699 libidu/scanners.c:970 libidu/scanners.c:1173
+#: libidu/scanners.c:434
+#, c-format
+msgid ""
+"C++ language:\n"
+" -k,--keep=CHARS Allow CHARS in single-token strings, keep the "
+"result\n"
+" -i,--ignore=CHARS Allow CHARS in single-token strings, toss the "
+"result\n"
+" -u,--strip-underscore Strip a leading underscore from single-token "
+"strings\n"
+msgstr ""
+
+#: libidu/scanners.c:717 libidu/scanners.c:988 libidu/scanners.c:1191
+#: libidu/scanners.c:1455
#, c-format
msgid "junk: `%c'"
msgstr "dchet: `%c'"
-#: libidu/scanners.c:701 libidu/scanners.c:972 libidu/scanners.c:1175
+#: libidu/scanners.c:719 libidu/scanners.c:990 libidu/scanners.c:1193
+#: libidu/scanners.c:1457
#, c-format
msgid "junk: `\\%03o'"
msgstr "dchet: `\\%03o'"
-#: libidu/scanners.c:805
+#: libidu/scanners.c:823
#, c-format
msgid ""
"Assembly language:\n"
@@ -155,7 +169,7 @@ msgid ""
" -n,--no-cpp Don't handle C pre-processor directives\n"
msgstr ""
-#: libidu/scanners.c:1076
+#: libidu/scanners.c:1094
#, c-format
msgid ""
"Text language:\n"
@@ -165,6 +179,17 @@ msgid ""
"delimiters\n"
msgstr ""
+#: libidu/scanners.c:1299
+#, c-format
+msgid ""
+"Perl language:\n"
+" -i,--include=CHAR-CLASS Treat characters of CHAR-CLASS as token "
+"constituents\n"
+" -x,--exclude=CHAR-CLASS Treat characters of CHAR-CLASS as token "
+"delimiters\n"
+" -d,--dtags Include documentation tags\n"
+msgstr ""
+
#: libidu/walker.c:111
#, c-format
msgid "can't read directory `%s' (`.' from `%s')"
@@ -549,12 +574,12 @@ msgstr "criture `%s'...\n"
msgid "can't create `%s'"
msgstr ""
-#: src/mkid.c:629
+#: src/mkid.c:630
#, c-format
msgid "error closing `%s'"
msgstr ""
-#: src/mkid.c:717
+#: src/mkid.c:718
#, fuzzy, c-format
msgid "level %d: %ld/%ld = %.0f%%\n"
msgstr "niveau %d: %ld == %ld\n"
diff --git a/po/nl.po b/po/nl.po
index 015ba62..e1ac9ac 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: id-utils 3.2\n"
"Report-Msgid-Bugs-To: bug-id-utils@gnu.org\n"
-"POT-Creation-Date: 2005-10-06 13:04+0200\n"
+"POT-Creation-Date: 2005-12-11 04:49+0100\n"
"PO-Revision-Date: 1998-09-30 13:31+02:00\n"
"Last-Translator: Ivo Timmermans <zarq@iname.com>\n"
"Language-Team: Dutch <nl@li.org>\n"
@@ -73,45 +73,45 @@ msgstr "onbekend I/O type: %d"
msgid "unsupported size in io_write (): %d"
msgstr "niet-ondersteunde afmeting in io_write(): %d"
-#: libidu/scanners.c:93
+#: libidu/scanners.c:100
#, c-format
msgid "unrecognized language: `%s'"
msgstr "niet herkende taal: `%s'"
-#: libidu/scanners.c:139
+#: libidu/scanners.c:146
msgid "can't allocate language args obstack: memory exhausted"
msgstr "kan geen objectstapel voor taalargumenten vrijmaken: geheugen vol"
-#: libidu/scanners.c:193 libidu/scanners.c:262
+#: libidu/scanners.c:200 libidu/scanners.c:269
msgid "can't allocate language args: memory exhausted"
msgstr "kan geen geheugen vrijmaken voor taalargumenten: geheugen vol"
-#: libidu/scanners.c:201
+#: libidu/scanners.c:208
#, c-format
msgid "language name expected following `%s' in file `%s'"
msgstr "taalnaam verwacht na `%s' in bestand `%s'"
-#: libidu/scanners.c:256
+#: libidu/scanners.c:263
#, c-format
msgid "can't open language map file `%s'"
msgstr "kan taalbestand `%s' niet openen"
-#: libidu/scanners.c:258
+#: libidu/scanners.c:265
#, c-format
msgid "can't get size of map file `%s'"
msgstr "kan grootte van mapbestand `%s' niet krijgen"
-#: libidu/scanners.c:268
+#: libidu/scanners.c:275
#, c-format
msgid "can't read language map file `%s'"
msgstr "kan taalbestand `%s' niet lezen"
-#: libidu/scanners.c:271
+#: libidu/scanners.c:278
#, c-format
msgid "can't read entire language map file `%s'"
msgstr "kan niet het hele taalbestand `%s' lezen"
-#: libidu/scanners.c:416
+#: libidu/scanners.c:423
#, c-format
msgid ""
"C language:\n"
@@ -130,17 +130,38 @@ msgstr ""
" -u,--strip-underscore Haal een voorgaand laag liggend streepje (`_')\n"
" weg van reeksen van een eenheid\n"
-#: libidu/scanners.c:699 libidu/scanners.c:970 libidu/scanners.c:1173
+#: libidu/scanners.c:434
+#, fuzzy, c-format
+msgid ""
+"C++ language:\n"
+" -k,--keep=CHARS Allow CHARS in single-token strings, keep the "
+"result\n"
+" -i,--ignore=CHARS Allow CHARS in single-token strings, toss the "
+"result\n"
+" -u,--strip-underscore Strip a leading underscore from single-token "
+"strings\n"
+msgstr ""
+"C taal:\n"
+" -k,--keep=TEKENS Sta TEKENS toe in reeksen van een eenheid, behoud\n"
+" resultaat\n"
+" -i,--ignore=TEKENS Sta TEKENS toe in reeksen van een eenheid, gooi\n"
+" resultaat weg\n"
+" -u,--strip-underscore Haal een voorgaand laag liggend streepje (`_')\n"
+" weg van reeksen van een eenheid\n"
+
+#: libidu/scanners.c:717 libidu/scanners.c:988 libidu/scanners.c:1191
+#: libidu/scanners.c:1455
#, c-format
msgid "junk: `%c'"
msgstr "onzin: `%c'"
-#: libidu/scanners.c:701 libidu/scanners.c:972 libidu/scanners.c:1175
+#: libidu/scanners.c:719 libidu/scanners.c:990 libidu/scanners.c:1193
+#: libidu/scanners.c:1457
#, c-format
msgid "junk: `\\%03o'"
msgstr "onzin: `\\%03o'"
-#: libidu/scanners.c:805
+#: libidu/scanners.c:823
#, c-format
msgid ""
"Assembly language:\n"
@@ -159,7 +180,7 @@ msgstr ""
"eenheden\n"
" -n,--no-cpp Behandel geen C pre-processor aanwijzingen\n"
-#: libidu/scanners.c:1076
+#: libidu/scanners.c:1094
#, c-format
msgid ""
"Text language:\n"
@@ -174,6 +195,22 @@ msgstr ""
" -x,--exclude=TEKEN-KLASSE Behandel tekens van TEKEN-KLASSE als "
"eenheidscheiding\n"
+#: libidu/scanners.c:1299
+#, fuzzy, c-format
+msgid ""
+"Perl language:\n"
+" -i,--include=CHAR-CLASS Treat characters of CHAR-CLASS as token "
+"constituents\n"
+" -x,--exclude=CHAR-CLASS Treat characters of CHAR-CLASS as token "
+"delimiters\n"
+" -d,--dtags Include documentation tags\n"
+msgstr ""
+"Tekst taal:\n"
+" -i,--include=TEKEN-KLASSE Behandel tekens van TEKEN-KLASSE als onderdeel "
+"van een eenheid\n"
+" -x,--exclude=TEKEN-KLASSE Behandel tekens van TEKEN-KLASSE als "
+"eenheidscheiding\n"
+
#: libidu/walker.c:111
#, c-format
msgid "can't read directory `%s' (`.' from `%s')"
@@ -637,12 +674,12 @@ msgstr "`%s' schrijven...\n"
msgid "can't create `%s'"
msgstr "kan `%s' niet aanmaken"
-#: src/mkid.c:629
+#: src/mkid.c:630
#, c-format
msgid "error closing `%s'"
msgstr ""
-#: src/mkid.c:717
+#: src/mkid.c:718
#, c-format
msgid "level %d: %ld/%ld = %.0f%%\n"
msgstr "niveau %d: %ld/%ld = %.0f%%\n"
diff --git a/po/pl.po b/po/pl.po
index 188f905..6498743 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: id-utils 3.0.8\n"
"Report-Msgid-Bugs-To: bug-id-utils@gnu.org\n"
-"POT-Creation-Date: 2005-10-06 13:04+0200\n"
+"POT-Creation-Date: 2005-12-11 04:49+0100\n"
"PO-Revision-Date: 1997-03-26 23:59 +0100\n"
"Last-Translator: Wojciech Marek Gazka <wgalazka@chem.uw.edu.pl>\n"
"Language-Team: Polish <pl@li.org>\n"
@@ -73,45 +73,45 @@ msgstr ""
msgid "unsupported size in io_write (): %d"
msgstr "Nie obsugiwany rozmiar w io_write (): %d\n"
-#: libidu/scanners.c:93
+#: libidu/scanners.c:100
#, fuzzy, c-format
msgid "unrecognized language: `%s'"
msgstr "Brak skanera dla jzyka `%s'\n"
-#: libidu/scanners.c:139
+#: libidu/scanners.c:146
msgid "can't allocate language args obstack: memory exhausted"
msgstr ""
-#: libidu/scanners.c:193 libidu/scanners.c:262
+#: libidu/scanners.c:200 libidu/scanners.c:269
msgid "can't allocate language args: memory exhausted"
msgstr ""
-#: libidu/scanners.c:201
+#: libidu/scanners.c:208
#, c-format
msgid "language name expected following `%s' in file `%s'"
msgstr ""
-#: libidu/scanners.c:256
+#: libidu/scanners.c:263
#, fuzzy, c-format
msgid "can't open language map file `%s'"
msgstr "Brak skanera dla jzyka `%s'\n"
-#: libidu/scanners.c:258
+#: libidu/scanners.c:265
#, c-format
msgid "can't get size of map file `%s'"
msgstr ""
-#: libidu/scanners.c:268
+#: libidu/scanners.c:275
#, fuzzy, c-format
msgid "can't read language map file `%s'"
msgstr "Brak skanera dla jzyka `%s'\n"
-#: libidu/scanners.c:271
+#: libidu/scanners.c:278
#, c-format
msgid "can't read entire language map file `%s'"
msgstr ""
-#: libidu/scanners.c:416
+#: libidu/scanners.c:423
#, c-format
msgid ""
"C language:\n"
@@ -123,17 +123,31 @@ msgid ""
"strings\n"
msgstr ""
-#: libidu/scanners.c:699 libidu/scanners.c:970 libidu/scanners.c:1173
+#: libidu/scanners.c:434
+#, c-format
+msgid ""
+"C++ language:\n"
+" -k,--keep=CHARS Allow CHARS in single-token strings, keep the "
+"result\n"
+" -i,--ignore=CHARS Allow CHARS in single-token strings, toss the "
+"result\n"
+" -u,--strip-underscore Strip a leading underscore from single-token "
+"strings\n"
+msgstr ""
+
+#: libidu/scanners.c:717 libidu/scanners.c:988 libidu/scanners.c:1191
+#: libidu/scanners.c:1455
#, c-format
msgid "junk: `%c'"
msgstr "mie: `%c'"
-#: libidu/scanners.c:701 libidu/scanners.c:972 libidu/scanners.c:1175
+#: libidu/scanners.c:719 libidu/scanners.c:990 libidu/scanners.c:1193
+#: libidu/scanners.c:1457
#, c-format
msgid "junk: `\\%03o'"
msgstr "mie: `\\%03o'"
-#: libidu/scanners.c:805
+#: libidu/scanners.c:823
#, c-format
msgid ""
"Assembly language:\n"
@@ -144,7 +158,7 @@ msgid ""
" -n,--no-cpp Don't handle C pre-processor directives\n"
msgstr ""
-#: libidu/scanners.c:1076
+#: libidu/scanners.c:1094
#, c-format
msgid ""
"Text language:\n"
@@ -154,6 +168,17 @@ msgid ""
"delimiters\n"
msgstr ""
+#: libidu/scanners.c:1299
+#, c-format
+msgid ""
+"Perl language:\n"
+" -i,--include=CHAR-CLASS Treat characters of CHAR-CLASS as token "
+"constituents\n"
+" -x,--exclude=CHAR-CLASS Treat characters of CHAR-CLASS as token "
+"delimiters\n"
+" -d,--dtags Include documentation tags\n"
+msgstr ""
+
#: libidu/walker.c:111
#, c-format
msgid "can't read directory `%s' (`.' from `%s')"
@@ -538,12 +563,12 @@ msgstr "Zapisuj `%s'...\n"
msgid "can't create `%s'"
msgstr ""
-#: src/mkid.c:629
+#: src/mkid.c:630
#, c-format
msgid "error closing `%s'"
msgstr ""
-#: src/mkid.c:717
+#: src/mkid.c:718
#, fuzzy, c-format
msgid "level %d: %ld/%ld = %.0f%%\n"
msgstr "poziom %d: %ld == %ld\n"
diff --git a/po/quot.sed b/po/quot.sed
new file mode 100644
index 0000000..0122c46
--- /dev/null
+++ b/po/quot.sed
@@ -0,0 +1,6 @@
+s/"\([^"]*\)"/“\1”/g
+s/`\([^`']*\)'/‘\1’/g
+s/ '\([^`']*\)' / ‘\1’ /g
+s/ '\([^`']*\)'$/ ‘\1’/g
+s/^'\([^`']*\)' /‘\1’ /g
+s/“”/""/g
diff --git a/src/mkid.c b/src/mkid.c
index ae79a8b..ea3f82e 100644
--- a/src/mkid.c
+++ b/src/mkid.c
@@ -104,7 +104,7 @@ int statistics_flag = 0;
int file_name_count = 0; /* # of files in database */
int levels = 0; /* ceil(log(8)) of file_name_count */
-char *current_hits_signature;
+unsigned char *current_hits_signature;
#define INIT_TOKENS_SIZE(level) (1 << ((level) + 13))
struct summary *summary_root;
struct summary *summary_leaf;
@@ -386,7 +386,7 @@ scan_files (struct idhead *idhp)
hash_init (&token_table, n, token_hash_1, token_hash_2, token_hash_cmp);
if (verbose_flag)
- printf ("files=%ld, largest=%lu, slots=%ld\n",
+ printf ("files=%ld, largest=" OFF_FMT ", slots=%lu\n",
idhp->idh_member_file_table.ht_fill,
largest_member_file, token_table.ht_size);
init_hits_signature (0);
@@ -581,6 +581,7 @@ write_id_file (struct idhead *idhp)
for (i = 0; i < token_table.ht_fill; i++, tokens++)
{
struct token *token = *tokens;
+
occurrences += token->tok_count;
if (token->tok_flags & TOK_NUMBER)
number_tokens++;