new jupp, again fixes jupp-3_1_20
authorThorsten Glaser <tg@mirbsd.org>
Fri, 8 Jun 2012 20:35:31 +0000 (20:35 +0000)
committerThorsten Glaser <tg@mirbsd.org>
Fri, 8 Jun 2012 20:35:31 +0000 (20:35 +0000)
20 files changed:
ChangeLog
NEWS
TODO
autoconf.h.in
blocks.c
blocks.h
compat.c
configure
configure.ac
rc.c
termcap.c
termidx.c
tty.c
types.h
utf8.c
va.c
va.h
vfile.h
vs.c
vs.h

index b27ee3f..ce13d9f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,9 @@ Wed Nov 10 2004  Thorsten Glaser <tg@mirbsd.org>
 
        cf. http://cvs.mirbsd.de/src/share/doc/legal/LICENCE-GNU?rev=HEAD
 
+       Direct source: https://www.mirbsd.org/cvs.cgi/contrib/code/jupp/
+       Direct cvslog: http://news.gmane.org/gmane.os.miros.cvs
+
 Sat May 29 2004  Joe Allen <jhallen@world.std.com>
 
        Use 'aspell' if it exists.
@@ -1450,4 +1453,4 @@ Wed Jul 02 2001  Marek 'Marx' Grac <xgrac@fi.muni.cz>
        able to find patch :(
 
 ______________________________________________________________________
-$MirOS: contrib/code/jupp/ChangeLog,v 1.6 2008/05/13 16:17:41 tg Exp $
+$MirOS: contrib/code/jupp/ChangeLog,v 1.7 2012/06/08 20:31:38 tg Exp $
diff --git a/NEWS b/NEWS
index 399de6c..0c281f4 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,14 @@
-$MirOS: contrib/code/jupp/NEWS,v 1.47 2012/06/07 22:34:52 tg Exp $
+$MirOS: contrib/code/jupp/NEWS,v 1.48 2012/06/08 17:07:21 tg Exp $
 ------------------------------------------------------------------
 
+JOE 3.1jupp20
+
+- Fix mistakes in the ctime replacement code for klibc
+- Fix mistakes in the configure script
+- Disable CR-LF mode upon entering hex edit mode
+- Remove junk from files and improve comments
+- Configure for Large File Support
+
 JOE 3.1jupp19
 
 - Support ncurses tinfo split
diff --git a/TODO b/TODO
index 004a106..1a469d1 100644 (file)
--- a/TODO
+++ b/TODO
@@ -647,7 +647,8 @@ Other requests:
 • merge syntax handling code from joe-3.7+
 • make -Wcast-qual clean
 • write a jupp(1) mdoc page
+• use mirkev (better code for hashtables)
 • …
 
-_________________________________________________________________
-$MirOS: contrib/code/jupp/TODO,v 1.9 2012/06/07 22:39:44 tg Exp $
+__________________________________________________________________
+$MirOS: contrib/code/jupp/TODO,v 1.10 2012/06/08 16:55:27 tg Exp $
index 19dba7b..e275603 100644 (file)
@@ -38,6 +38,9 @@
 /* Define to 1 if you have the <fcntl.h> header file. */
 #undef HAVE_FCNTL_H
 
+/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
+#undef HAVE_FSEEKO
+
 /* Define if GCC has Anil's bounds checker */
 #undef HAVE_GCC_ATTRIBUTE_BOUNDED
 
 /* Version number of package */
 #undef VERSION
 
+/* Number of bits in a file offset, on hosts where this is settable. */
+#undef _FILE_OFFSET_BITS
+
+/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */
+#undef _LARGEFILE_SOURCE
+
+/* Define for large files, on AIX-style hosts. */
+#undef _LARGE_FILES
+
 /* Check to see if we can use strict prototypes */
 #ifndef PARAMS
 #  ifdef PROTOTYPES
index 43707d6..3d087d4 100644 (file)
--- a/blocks.c
+++ b/blocks.c
@@ -1,4 +1,4 @@
-/* $MirOS: contrib/code/jupp/blocks.c,v 1.3 2010/01/03 18:22:03 tg Exp $ */
+/* $MirOS: contrib/code/jupp/blocks.c,v 1.4 2012/06/08 16:55:27 tg Exp $ */
 /*
  *     Fast block move/copy subroutines
  *     Copyright
@@ -568,31 +568,3 @@ int mcnt(register unsigned char *blk, register unsigned char c, int size)
        }
        return nlines;
 }
-
-#ifdef junk
-
-unsigned char *mchr(blk, c)
-register unsigned char *blk, c;
-{
-    loop:
-       if (blk[0] == c) return blk + 0;
-       if (blk[1] == c) return blk + 1;
-       if (blk[2] == c) return blk + 2;
-       if (blk[3] == c) return blk + 3;
-       if (blk[4] == c) return blk + 4;
-       if (blk[5] == c) return blk + 5;
-       if (blk[6] == c) return blk + 6;
-       if (blk[7] == c) return blk + 7;
-       if (blk[8] == c) return blk + 8;
-       if (blk[9] == c) return blk + 9;
-       if (blk[10] == c) return blk + 10;
-       if (blk[11] == c) return blk + 11;
-       if (blk[12] == c) return blk + 12;
-       if (blk[13] == c) return blk + 13;
-       if (blk[14] == c) return blk + 14;
-       if (blk[15] == c) return blk + 15;
-       blk += 15;
-       goto loop;
-}
-
-#endif
index b5123ac..095b0dc 100644 (file)
--- a/blocks.h
+++ b/blocks.h
@@ -1,4 +1,4 @@
-/* $MirOS: contrib/code/jupp/blocks.h,v 1.3 2010/01/03 18:22:03 tg Exp $ */
+/* $MirOS: contrib/code/jupp/blocks.h,v 1.4 2012/06/08 16:55:27 tg Exp $ */
 /*
  *     Fast block move/copy subroutines
  *     Copyright
@@ -40,12 +40,4 @@ void **msetP PARAMS((void **dest, void *c, int sz));
  * Count the number of occurances a character appears in a block
  */
 int mcnt PARAMS((unsigned char *blk, unsigned char c, int size));
-
-#ifdef junk
-/* char *mchr(char *s,char c);
- *
- * Return address of first 'c' following 's'.
- */
-unsigned char *mchr PARAMS(());
-#endif
 #endif
index 7ec680f..9668485 100644 (file)
--- a/compat.c
+++ b/compat.c
@@ -1,4 +1,4 @@
-/* $MirOS: contrib/code/jupp/compat.c,v 1.2 2012/06/08 00:37:25 tg Exp $ */
+/* $MirOS: contrib/code/jupp/compat.c,v 1.4 2012/06/08 16:48:58 tg Exp $ */
 
 /*-
  * Copyright © 2004, 2005, 2006, 2007, 2011, 2012
  *-
  * Compatibility functions for jupp.
  *
- * - ctime: based on mirtime from MirBSD libc; not leap second compliant
+ * – ctime: based on mirtime from MirBSD libc; not leap second capable
  *   src/kern/include/mirtime.h,v 1.2 2011/11/20 23:40:11 tg Exp
  *   src/kern/c/mirtime.c,v 1.3 2011/11/20 23:40:10 tg Exp
+ * – strlcpy, strlcat: pulled in via "strlfun.inc"
+ * – popen, pclose: pulled in via "popen.inc"
  */
 
 #include "config.h"
@@ -92,11 +94,11 @@ static const char joe_months[12][4] = {
 
 /*-
  * Dimensions for the buffer, example formats:
- * "Sun Jan  1 12:34:56 1234"
- * "Sat Dec 31 12:34:56     12345"
- *  <- 24 -----------------> + max.length of a year + NUL
+ * "Sun Jan  1 12:34:56 1234\n"
+ * "Sat Dec 31 12:34:56     12345\n"
+ *  <- 24 -----------------> + max.length of a year + NL + NUL
  */
-static char joe_ctime_buf[24 + T_MAXLEN(time_t) + 1];
+static char joe_ctime_buf[24 + T_MAXLEN(time_t) + 2];
 
 char *
 ctime(const time_t *tp)
@@ -108,10 +110,10 @@ ctime(const time_t *tp)
        year = (int)(tm.tm_year + 1900);
        joe_snprintf_7(joe_ctime_buf, sizeof(joe_ctime_buf),
            (year >= -999 && year <= 9999) ?
-           "%s %s %2d %02d:%02d:%02d %04d" :
-           "%s %s %2d %02d:%02d:%02d     %d",
+           "%s %s %2d %02d:%02d:%02d %04d\n" :
+           "%s %s %2d %02d:%02d:%02d     %d\n",
            joe_days[tm.tm_wday], joe_months[tm.tm_mon],
-           tm.tm_mday, tm.tm_sec, tm.tm_min, tm.tm_hour, year);
+           tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec, year);
        return (joe_ctime_buf);
 }
 
index bb2f224..f8a4345 100644 (file)
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.61-MirPorts-1 for joe 3.1jupp19.
+# Generated by GNU Autoconf 2.61-MirPorts-1 for joe 3.1jupp20.
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
 # 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
@@ -572,8 +572,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
 # Identity of this package.
 PACKAGE_NAME='joe'
 PACKAGE_TARNAME='joe'
-PACKAGE_VERSION='3.1jupp19'
-PACKAGE_STRING='joe 3.1jupp19'
+PACKAGE_VERSION='3.1jupp20'
+PACKAGE_STRING='joe 3.1jupp20'
 PACKAGE_BUGREPORT=''
 
 ac_unique_file="b.c"
@@ -1223,7 +1223,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures joe 3.1jupp19 to adapt to many kinds of systems.
+\`configure' configures joe 3.1jupp20 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1294,7 +1294,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of joe 3.1jupp19:";;
+     short | recursive ) echo "Configuration of joe 3.1jupp20:";;
    esac
   cat <<\_ACEOF
 
@@ -1310,6 +1310,7 @@ Optional Features:
   --disable-search-libs   do not search in any external libraries
   --disable-getpwnam      disable use of getpwnam function
   --disable-termidx       do not build the termidx binary
+  --disable-largefile     omit support for large files
 
 Some influential environment variables:
   CC          C compiler command
@@ -1384,7 +1385,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-joe configure 3.1jupp19
+joe configure 3.1jupp20
 generated by GNU Autoconf 2.61-MirPorts-1
 
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1398,7 +1399,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by joe $as_me 3.1jupp19, which was
+It was created by joe $as_me 3.1jupp20, which was
 generated by GNU Autoconf 2.61-MirPorts-1.  Invocation command line was
 
   $ $0 $@
@@ -2199,7 +2200,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='joe'
- VERSION='3.1jupp19'
+ VERSION='3.1jupp20'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -5488,6 +5489,356 @@ _ACEOF
 
 fi
 
+# Check whether --enable-largefile was given.
+if test "${enable_largefile+set}" = set; then
+  enableval=$enable_largefile;
+fi
+
+if test "$enable_largefile" != no; then
+
+  { echo "$as_me:$LINENO: checking for special C compiler options needed for large files" >&5
+echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6; }
+if test "${ac_cv_sys_largefile_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_sys_largefile_CC=no
+     if test "$GCC" != yes; then
+       ac_save_CC=$CC
+       while :; do
+        # IRIX 6.2 and later do not support large files by default,
+        # so use the C compiler's -n32 option if that helps.
+        cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+                      && LARGE_OFF_T % 2147483647 == 1)
+                     ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+        rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext
+        CC="$CC -n32"
+        rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_sys_largefile_CC=' -n32'; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext
+        break
+       done
+       CC=$ac_save_CC
+       rm -f conftest.$ac_ext
+    fi
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_CC" >&5
+echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6; }
+  if test "$ac_cv_sys_largefile_CC" != no; then
+    CC=$CC$ac_cv_sys_largefile_CC
+  fi
+
+  { echo "$as_me:$LINENO: checking for _FILE_OFFSET_BITS value needed for large files" >&5
+echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6; }
+if test "${ac_cv_sys_file_offset_bits+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  while :; do
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+                      && LARGE_OFF_T % 2147483647 == 1)
+                     ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_sys_file_offset_bits=no; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#define _FILE_OFFSET_BITS 64
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+                      && LARGE_OFF_T % 2147483647 == 1)
+                     ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_sys_file_offset_bits=64; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  ac_cv_sys_file_offset_bits=unknown
+  break
+done
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_sys_file_offset_bits" >&5
+echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6; }
+case $ac_cv_sys_file_offset_bits in #(
+  no | unknown) ;;
+  *)
+cat >>confdefs.h <<_ACEOF
+#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
+_ACEOF
+;;
+esac
+rm -f conftest*
+  if test $ac_cv_sys_file_offset_bits = unknown; then
+    { echo "$as_me:$LINENO: checking for _LARGE_FILES value needed for large files" >&5
+echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6; }
+if test "${ac_cv_sys_large_files+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  while :; do
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+                      && LARGE_OFF_T % 2147483647 == 1)
+                     ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_sys_large_files=no; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#define _LARGE_FILES 1
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+                      && LARGE_OFF_T % 2147483647 == 1)
+                     ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_sys_large_files=1; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  ac_cv_sys_large_files=unknown
+  break
+done
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_sys_large_files" >&5
+echo "${ECHO_T}$ac_cv_sys_large_files" >&6; }
+case $ac_cv_sys_large_files in #(
+  no | unknown) ;;
+  *)
+cat >>confdefs.h <<_ACEOF
+#define _LARGE_FILES $ac_cv_sys_large_files
+_ACEOF
+;;
+esac
+rm -f conftest*
+  fi
+fi
+
 if test "$cross_compiling" = "yes" ; then
        { echo "$as_me:$LINENO: WARNING: cross compiling so assuming defaults for most 32 bit machines" >&5
 echo "$as_me: WARNING: cross compiling so assuming defaults for most 32 bit machines" >&2;}
@@ -8445,6 +8796,126 @@ echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6; }
   fi
 fi
 
+{ echo "$as_me:$LINENO: checking for _LARGEFILE_SOURCE value needed for large files" >&5
+echo $ECHO_N "checking for _LARGEFILE_SOURCE value needed for large files... $ECHO_C" >&6; }
+if test "${ac_cv_sys_largefile_source+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  while :; do
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdio.h>
+int
+main ()
+{
+return fseeko (stdin, 0, 0) && (fseeko) (stdin, 0, 0);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 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); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_sys_largefile_source=no; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#define _LARGEFILE_SOURCE 1
+#include <stdio.h>
+int
+main ()
+{
+return fseeko (stdin, 0, 0) && (fseeko) (stdin, 0, 0);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 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); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_sys_largefile_source=1; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+  ac_cv_sys_largefile_source=unknown
+  break
+done
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_source" >&5
+echo "${ECHO_T}$ac_cv_sys_largefile_source" >&6; }
+case $ac_cv_sys_largefile_source in #(
+  no | unknown) ;;
+  *)
+cat >>confdefs.h <<_ACEOF
+#define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source
+_ACEOF
+;;
+esac
+rm -f conftest*
+
+# We used to try defining _XOPEN_SOURCE=500 too, to work around a bug
+# in glibc 2.1.3, but that breaks too many other things.
+# If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
+if test $ac_cv_sys_largefile_source != unknown; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_FSEEKO 1
+_ACEOF
+
+fi
+
 { echo "$as_me:$LINENO: checking whether lstat dereferences a symlink specified with a trailing slash" >&5
 echo $ECHO_N "checking whether lstat dereferences a symlink specified with a trailing slash... $ECHO_C" >&6; }
 if test "${ac_cv_func_lstat_dereferences_slashed_symlink+set}" = set; then
@@ -9712,9 +10183,9 @@ _ACEOF
 
 
 fi
-{ echo "$as_me:$LINENO: checking whether ctime is declared" >&5
-echo $ECHO_N "checking whether ctime is declared... $ECHO_C" >&6; }
-if test "${ac_cv_have_decl_ctime+set}" = set; then
+{ echo "$as_me:$LINENO: checking whether popen is declared" >&5
+echo $ECHO_N "checking whether popen is declared... $ECHO_C" >&6; }
+if test "${ac_cv_have_decl_popen+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
@@ -9727,8 +10198,8 @@ $ac_includes_default
 int
 main ()
 {
-#ifndef ctime
-  (void) ctime;
+#ifndef popen
+  (void) popen;
 #endif
 
   ;
@@ -9752,35 +10223,37 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
         test -z "$ac_c_werror_flag" ||
         test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_ctime=yes
+  ac_cv_have_decl_popen=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_cv_have_decl_ctime=no
+       ac_cv_have_decl_popen=no
 fi
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_ctime" >&5
-echo "${ECHO_T}$ac_cv_have_decl_ctime" >&6; }
-if test $ac_cv_have_decl_ctime = yes; then
+{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_popen" >&5
+echo "${ECHO_T}$ac_cv_have_decl_popen" >&6; }
+if test $ac_cv_have_decl_popen = yes; then
 
 cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_CTIME 1
+#define HAVE_DECL_POPEN 1
 _ACEOF
 
 
 else
   cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_CTIME 0
+#define HAVE_DECL_POPEN 0
 _ACEOF
 
 
 fi
-{ echo "$as_me:$LINENO: checking whether popen is declared" >&5
-echo $ECHO_N "checking whether popen is declared... $ECHO_C" >&6; }
-if test "${ac_cv_have_decl_popen+set}" = set; then
+
+
+{ echo "$as_me:$LINENO: checking whether ctime is declared" >&5
+echo $ECHO_N "checking whether ctime is declared... $ECHO_C" >&6; }
+if test "${ac_cv_have_decl_ctime+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
@@ -9790,11 +10263,23 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 $ac_includes_default
+#ifdef TIME_WITH_SYS_TIME
+# include <sys/time.h>
+# include <time.h>
+#else
+# ifdef HAVE_SYS_TIME_H
+#  include <sys/time.h>
+# else
+#  include <time.h>
+# endif
+#endif
+
+
 int
 main ()
 {
-#ifndef popen
-  (void) popen;
+#ifndef ctime
+  (void) ctime;
 #endif
 
   ;
@@ -9818,28 +10303,28 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
         test -z "$ac_c_werror_flag" ||
         test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_popen=yes
+  ac_cv_have_decl_ctime=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_cv_have_decl_popen=no
+       ac_cv_have_decl_ctime=no
 fi
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_popen" >&5
-echo "${ECHO_T}$ac_cv_have_decl_popen" >&6; }
-if test $ac_cv_have_decl_popen = yes; then
+{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_ctime" >&5
+echo "${ECHO_T}$ac_cv_have_decl_ctime" >&6; }
+if test $ac_cv_have_decl_ctime = yes; then
 
 cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_POPEN 1
+#define HAVE_DECL_CTIME 1
 _ACEOF
 
 
 else
   cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_POPEN 0
+#define HAVE_DECL_CTIME 0
 _ACEOF
 
 
@@ -10423,7 +10908,7 @@ exec 6>&1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by joe $as_me 3.1jupp19, which was
+This file was extended by joe $as_me 3.1jupp20, which was
 generated by GNU Autoconf 2.61-MirPorts-1.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -10476,7 +10961,7 @@ Report bugs to <bug-autoconf@gnu.org>."
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
-joe config.status 3.1jupp19
+joe config.status 3.1jupp20
 configured by $0, generated by GNU Autoconf 2.61-MirPorts-1,
   with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
index d3a5832..a10ae01 100644 (file)
@@ -1,4 +1,4 @@
-# $MirOS: contrib/code/jupp/configure.ac,v 1.35 2012/06/07 22:39:53 tg Exp $
+# $MirOS: contrib/code/jupp/configure.ac,v 1.38 2012/06/08 17:07:22 tg Exp $
 #-
 # Process this file with autoconf to produce a configure script.
 
@@ -6,7 +6,7 @@
 AC_PREREQ(2.54)
 
 #### Here's the only place where to change version number ####
-AC_INIT(joe, 3.1jupp19)
+AC_INIT(joe, 3.1jupp20)
 #### But see main.c for the Copyright (c) owner and year! ####
 AC_CONFIG_SRCDIR([b.c])
 
@@ -127,6 +127,7 @@ fi
 
 AC_C_PROTOTYPES
 AC_C_CONST
+AC_SYS_LARGEFILE
 if test "$cross_compiling" = "yes" ; then
        AC_MSG_WARN(cross compiling so assuming defaults for most 32 bit machines)
 fi
@@ -148,6 +149,7 @@ AC_CHECK_TYPE([sighandler_t],
 # Checks for library functions.
 
 AC_PROG_GCC_TRADITIONAL
+AC_FUNC_FSEEKO
 AC_FUNC_LSTAT
 joe_SETPGRP
 AC_TYPE_PID_T
@@ -171,7 +173,19 @@ AC_CHECK_FUNCS([alarm mkdir mkstemp putenv setlocale strchr strdup utime setpgid
 AC_CHECK_FUNCS([setitimer sigaction sigvec siginterrupt sigprocmask])
 AC_CHECK_FUNCS([strlcpy strlcat nl_langinfo get_current_dir_name ctime popen])
 
-AC_CHECK_DECLS([strlcpy, strlcat, ctime, popen])
+AC_CHECK_DECLS([strlcpy, strlcat, popen])
+AC_CHECK_DECLS([ctime], [], [], [AC_INCLUDES_DEFAULT
+#ifdef TIME_WITH_SYS_TIME
+# include <sys/time.h>
+# include <time.h>
+#else
+# ifdef HAVE_SYS_TIME_H
+#  include <sys/time.h>
+# else
+#  include <time.h>
+# endif
+#endif
+])
 
 joe_REINSTALL_SIGHANDLERS
 
diff --git a/rc.c b/rc.c
index 9be1f7f..dee66ac 100644 (file)
--- a/rc.c
+++ b/rc.c
@@ -1,4 +1,4 @@
-/* $MirOS: contrib/code/jupp/rc.c,v 1.16 2012/06/07 23:38:17 tg Exp $ */
+/* $MirOS: contrib/code/jupp/rc.c,v 1.18 2012/06/08 16:45:00 tg Exp $ */
 /*
  *     *rc file parser
  *     Copyright
@@ -734,11 +734,14 @@ static int doopt(MENU *m, int x, void *object, int flg)
                msgnw(bw->parent, *(int *) ((unsigned char *) &bw->o + glopts[x].ofst) ? glopts[x].yes : glopts[x].no);
                if (glopts[x].ofst == (unsigned char *) &fdefault.readonly - (unsigned char *) &fdefault)
                        bw->b->rdonly = bw->o.readonly;
-               /* Kill UTF-8 mode if we switch to hex display */
-               if (glopts[x].ofst == (unsigned char *) &fdefault.hex - (unsigned char *) &fdefault &&
-                   bw->o.hex &&
-                   bw->b->o.charmap->type) {
-                       doencoding(bw, vsncpy(NULL, 0, sc("C")), NULL, NULL);
+               /* Kill UTF-8 and CR-LF mode if we switch to hex display */
+               if (glopts[x].ofst == (unsigned char *)&fdefault.hex - (unsigned char *)&fdefault &&
+                   bw->o.hex) {
+                       if (bw->b->o.charmap->type) {
+                               doencoding(bw, vsncpy(NULL, 0, sc("C")),
+                                   NULL, NULL);
+                       }
+                       bw->o.crlf = 0;
                }
                break;
        case 1:
index 9664e9c..a2a934e 100644 (file)
--- a/termcap.c
+++ b/termcap.c
@@ -1,4 +1,4 @@
-/* $MirOS: contrib/code/jupp/termcap.c,v 1.4 2011/07/16 21:57:57 tg Exp $ */
+/* $MirOS: contrib/code/jupp/termcap.c,v 1.6 2012/06/08 17:05:12 tg Exp $ */
 /*
  *     TERMCAP/TERMINFO database interface
  *     Copyright
@@ -121,10 +121,10 @@ static unsigned char *lfind(unsigned char *s, int pos, FILE *fd, unsigned char *
 
 /* Lookup termcap entry in index */
 
-static long findidx(FILE *file, unsigned char *name)
+static off_t findidx(FILE *file, unsigned char *name)
 {
        unsigned char buf[80];
-       long addr = 0;
+       off_t addr = 0;
 
        while (fgets((char *)buf, 80, file)) {
                int x = 0, flg = 0, c, y, z;
@@ -153,7 +153,7 @@ CAP *getcap(unsigned char *name, unsigned int baud, void (*out) (unsigned char *
 {
        CAP *cap;
        FILE *f, *f1;
-       long idx;
+       off_t idx;
        int x, y, c, z, ti;
        unsigned char *tp, *pp, *qq, *namebuf, **npbuf, *idxname;
        int sortsiz;
@@ -248,7 +248,7 @@ CAP *getcap(unsigned char *name, unsigned int baud, void (*out) (unsigned char *
                fclose(f);
        }
        vsrm(idxname);
-       fseek(f1, idx, 0);
+       fseeko(f1, idx, 0);
        cap->tbuf = lfind(cap->tbuf, ti, f1, name);
        fclose(f1);
        if (sLEN(cap->tbuf) == ti)
@@ -713,69 +713,3 @@ unsigned char *tcompile(CAP *cap, unsigned char *s, int a0, int a1, int a2, int
        cap->div = divider;
        return ssp;
 }
-
-/* Old termcap compatibility (not to be used when TERMINFO is set) */
-#ifdef junk
-short ospeed;                  /* Output speed */
-unsigned char PC, *UP, *BC;            /* Unused */
-static CAP *latest;            /* CAP entry to use */
-
-static void stupid(ptr, c)
-void (*ptr) ();
-unsigned char c;
-{
-       ptr(c);
-}
-
-int tgetent(buf, name)
-unsigned char *buf, *name;
-{
-       latest = getcap(name, 9600, stupid, NULL);
-       if (latest)
-               return 1;
-       else
-               return -1;
-}
-
-int tgetflag(name)
-unsigned char *name;
-{
-       return getflag(latest, name);
-}
-
-int tgetnum(name)
-unsigned char *name;
-{
-       return getnum(latest, name);
-}
-
-unsigned char *tgetstr(name)
-unsigned char *name;
-{
-       return jgetstr(latest, name);
-}
-
-static int latestx, latesty;
-
-unsigned char *tgoto(str, x, y)
-unsigned char *str;
-int x, y;
-{
-       latestx = x;
-       latesty = y;
-       return str;
-}
-
-void tputs(str, l, out)
-unsigned char *str;
-int l;
-void (*out) ();
-{
-       latest->outptr = (void *) out;
-       if (latest->baud != ospeed) {
-               latest->baud = ospeed;
-               latest->div = 100000 / ospeed;
-       }
-       texec(latest, str, l, latesty, latestx);
-}
-#endif
index a68c454..0c4ecb0 100644 (file)
--- a/termidx.c
+++ b/termidx.c
@@ -1,4 +1,4 @@
-/* $MirOS: contrib/code/jupp/termidx.c,v 1.3 2009/10/18 16:06:30 tg Exp $ */
+/* $MirOS: contrib/code/jupp/termidx.c,v 1.4 2012/06/08 17:05:12 tg Exp $ */
 /*
  *     Program to generate termcap index file
  *     Copyright
@@ -15,7 +15,7 @@
 static void gen(unsigned char *s, FILE *fd)
 {
        int c, x;
-       long addr = 0, oaddr;
+       off_t addr = 0, oaddr;
 
       loop:
        while (c = getc(fd), c == ' ' || c == '\t' || c == '#')
@@ -27,7 +27,7 @@ static void gen(unsigned char *s, FILE *fd)
        if (c == '\n')
                goto loop;
        oaddr = addr;
-       addr = ftell(fd) - 1;
+       addr = ftello(fd) - 1;
        ungetc(c, fd);
        s[x = 0] = 0;
        while (1) {
@@ -55,7 +55,8 @@ static void gen(unsigned char *s, FILE *fd)
                                        z = y + 1;
                                } while (c && c != ':');
                                if (flg)
-                                       printf(" %lX\n", addr - oaddr);
+                                       printf(" %lX\n",
+                                           (unsigned long)(addr - oaddr));
                        }
                        goto loop;
                } else if (c == '\r')
diff --git a/tty.c b/tty.c
index 579084e..52b8e1e 100644 (file)
--- a/tty.c
+++ b/tty.c
@@ -1,4 +1,4 @@
-/* $MirOS: contrib/code/jupp/tty.c,v 1.16 2012/06/07 22:14:17 tg Exp $ */
+/* $MirOS: contrib/code/jupp/tty.c,v 1.17 2012/06/08 16:55:28 tg Exp $ */
 /*
  *     UNIX Tty and Process interface
  *     Copyright
@@ -796,11 +796,6 @@ void ttsusp(void)
        ttclsn();
        fprintf(stderr, "You have suspended the program.  Type 'fg' to return\n");
        kill(0, SIGTSTP);
-#ifdef junk
-       /* Hmmm... this should not have been necessary */
-       if (ackkbd != -1)
-               kill(kbdpid, SIGCONT);
-#endif
        if (omode)
                ttopnn();
        if (ackkbd!= -1)
diff --git a/types.h b/types.h
index accb8e4..13b484a 100644 (file)
--- a/types.h
+++ b/types.h
@@ -1,4 +1,4 @@
-/* $MirOS: contrib/code/jupp/types.h,v 1.7 2012/06/07 23:38:17 tg Exp $ */
+/* $MirOS: contrib/code/jupp/types.h,v 1.8 2012/06/08 16:55:28 tg Exp $ */
 
 #ifndef _JOE_TYPES_H
 #define _JOE_TYPES_H
 #define TYPEMENU       0x0800
 #define TYPEQW         0x1000
 
-#ifdef junk                                    /* These are now defined in config.h */
-
-/* Minimum page size for MS-DOS is 128 (for 32K vheaders table) or 256 (for
- * 64K vheaders table) */
-#define PGSIZE 512             /* Page size in bytes (Must be power of 2) */
-#define LPGSIZE 9              /* LOG base 2 of PGSIZE */
-#define ILIMIT (PGSIZE*128L)   /* Max amount to buffer */
-#define HTSIZE 128             /* Entries in hash table.  Must be pwr of 2 */
-#endif
-
 
 typedef struct header H;
 typedef struct buffer B;
diff --git a/utf8.c b/utf8.c
index 05429db..d4b597d 100644 (file)
--- a/utf8.c
+++ b/utf8.c
@@ -1,4 +1,4 @@
-/* $MirOS: contrib/code/jupp/utf8.c,v 1.8 2011/07/02 22:50:52 tg Exp $ */
+/* $MirOS: contrib/code/jupp/utf8.c,v 1.9 2012/06/08 16:55:29 tg Exp $ */
 /*
  *     UTF-8 Utilities
  *     Copyright
@@ -215,18 +215,13 @@ int utf8_decode_fwrd(unsigned char **p,int *plen)
 
 unsigned char *codeset;        /* Codeset of terminal */
 
-#ifdef junk
-unsigned char *non_utf8_codeset;
-                       /* Codeset of local language non-UTF-8 */
-#endif
-
 struct charmap *locale_map;
                        /* Character map of terminal */
 
 void
 joe_locale(void)
 {
-#if !defined(USE_LOCALE) || defined(junk)
+#if !defined(USE_LOCALE)
        unsigned char *s, *t;
 
 
@@ -240,19 +235,6 @@ joe_locale(void)
 #endif
 
 #ifdef USE_LOCALE
-#ifdef junk
-       if (s)
-               s=(unsigned char *)strdup((char *)s);
-       else
-               s=US "ascii";
-
-       if (t=(unsigned char *)strrchr((char *)s,'.'))
-               *t = 0;
-
-       setlocale(LC_ALL,(char *)s);
-       non_utf8_codeset = (unsigned char *)strdup(nl_langinfo(CODESET));
-#endif
-
        setlocale(LC_ALL,"");
        codeset = (unsigned char *)strdup(nl_langinfo(CODESET));
 
@@ -276,20 +258,6 @@ joe_locale(void)
        fdefault.charmap = locale_map;
 #endif
        pdefault.charmap = locale_map;
-
-/*
-       printf("Character set is %s\n",locale_map->name);
-
-       for(int x=0;x!=128;++x)
-               printf("%x      space=%d blank=%d alpha=%d alnum=%d punct=%d print=%d\n",
-                      x,joe_isspace(locale_map,x), joe_isblank(locale_map,x), joe_isalpha_(locale_map,x),
-                      joe_isalnum_(locale_map,x), joe_ispunct(locale_map,x), joe_isprint(locale_map,x));
-*/
-
-#ifdef junk
-       to_utf = iconv_open("UTF-8", (char *)non_utf8_codeset);
-       from_utf = iconv_open((char *)non_utf8_codeset, "UTF-8");
-#endif
 }
 
 void to_utf8(struct charmap *map,unsigned char *s,int c)
@@ -300,24 +268,6 @@ void to_utf8(struct charmap *map,unsigned char *s,int c)
                utf8_encode(s,'?');
        else
                utf8_encode(s,d);
-#ifdef junk
-       /* Iconv() way */
-       unsigned char buf[10];
-       unsigned char *ibufp = buf;
-       unsigned char *obufp = s;
-       int ibuf_sz=1;
-       int obuf_sz= 10;
-       buf[0]=c;
-       buf[1]=0;
-
-       if (to_utf==(iconv_t)-1 ||
-           iconv(to_utf,(char **)&ibufp,&ibuf_sz,(char **)&obufp,&obuf_sz)==(size_t)-1) {
-               s[0]='?';
-               s[1]=0;
-       } else {
-               *obufp = 0;
-       }
-#endif
 }
 
 int from_utf8(struct charmap *map,unsigned char *s)
@@ -328,20 +278,4 @@ int from_utf8(struct charmap *map,unsigned char *s)
                return '?';
        else
                return c;
-
-#ifdef junk
-       /* Iconv() way */
-       int ibuf_sz=strlen((char *)s);
-       unsigned char *ibufp=s;
-       int obuf_sz=10;
-       unsigned char obuf[10];
-       unsigned char *obufp = obuf;
-
-
-       if (from_utf==(iconv_t)-1 ||
-           iconv(from_utf,(char **)&ibufp,&ibuf_sz,(char **)&obufp,&obuf_sz)==((size_t)-1))
-               return '?';
-       else
-               return obuf[0];
-#endif
 }
diff --git a/va.c b/va.c
index 5d412e7..5ff003c 100644 (file)
--- a/va.c
+++ b/va.c
@@ -1,4 +1,4 @@
-/* $MirOS: contrib/code/jupp/va.c,v 1.2 2008/05/13 13:08:32 tg Exp $ */
+/* $MirOS: contrib/code/jupp/va.c,v 1.3 2012/06/08 16:55:29 tg Exp $ */
 /*
  *     Variable length array of strings
  *     Copyright
@@ -106,24 +106,6 @@ aELEMENT *vafill(aELEMENT *vary, int pos, aELEMENT el, int len)
        return vary;
 }
 
-#ifdef junk
-aELEMENT *vancpy(aELEMENT *vary, int pos, aELEMENT *array, int len)
-{
-       int olen = aLEN(vary);
-
-       if (!vary || pos + len > aSIZ(vary))
-               vary = vaensure(vary, pos + len);
-       if (pos + len > olen) {
-               vary[pos + len] = vary[olen];
-               aLen(vary) = pos + len;
-       }
-       if (pos > olen)
-               vary = vafill(vary, olen, ablank, pos - olen);
-       mfwrd(vary + pos, array, len * sizeof(aELEMENT));
-       return vary;
-}
-#endif
-
 aELEMENT *vandup(aELEMENT *vary, int pos, aELEMENT *array, int len)
 {
        int olen = aLEN(vary), x;
diff --git a/va.h b/va.h
index 070afc0..3027b62 100644 (file)
--- a/va.h
+++ b/va.h
@@ -1,4 +1,4 @@
-/* $MirOS: contrib/code/jupp/va.h,v 1.2 2008/05/13 13:08:32 tg Exp $ */
+/* $MirOS: contrib/code/jupp/va.h,v 1.3 2012/06/08 16:55:29 tg Exp $ */
 /*
  *     Variable length arrays of strings
  *     Copyright
@@ -14,7 +14,7 @@
 #include "vs.h"
 
 /* Functions and global variable you have to define.  Replace these with
- * macros or defines here if they are not to be actual functions 
+ * macros or defines here if they are not to be actual functions
  */
 
 typedef unsigned char *aELEMENT;
@@ -119,16 +119,6 @@ aELEMENT *vatrunc PARAMS((aELEMENT *vary, int len));
  */
 aELEMENT *vafill PARAMS((aELEMENT *vary, int pos, aELEMENT el, int len));
 
-#ifdef junk
-/* aELEMENT *vancpy(aELEMENT *vary, int pos, aELEMENT *array, int len);
- * Copy 'len' elements from 'array' onto 'vary' beginning at position 'pos'.
- * 'array' can be a normal char array since the length is passed seperately.  The
- * elements are copied, not duplicated.  A new array is created if 'vary' is
- * 0.  This does not zap previous elements.
- */
-aELEMENT *vancpy PARAMS((aELEMENT *vary, int pos, aELEMENT *array, int len));
-#endif
-
 /* aELEMENT *vandup(aELEMENT *vary, int pos, aELEMENT *array, int len);
  * Duplicate 'len' elements from 'array' onto 'vary' beginning at position
  * 'pos'.  'array' can be a char array since its length is passed seperately.  A
diff --git a/vfile.h b/vfile.h
index 4c714b9..5e3efab 100644 (file)
--- a/vfile.h
+++ b/vfile.h
@@ -1,4 +1,4 @@
-/* $MirOS: contrib/code/jupp/vfile.h,v 1.2 2008/05/13 13:08:32 tg Exp $ */
+/* $MirOS: contrib/code/jupp/vfile.h,v 1.3 2012/06/08 16:55:29 tg Exp $ */
 /*
  *     Software virtual memory system
  *     Copyright
@@ -41,15 +41,6 @@ extern VPAGE **vheaders;     /* Array of headers */
  */
 VFILE *vtmp PARAMS((void));
 
-#ifdef junk
-/* VFILE *vopen(char *name);
- *
- * Open a file for reading and if possible, writing.  If the file could not
- * be opened, NULL is returned.
- */
-VFILE *vopen PARAMS(());
-#endif
-
 /* long vsize(VFILE *);
  *
  * Return size of file
@@ -69,21 +60,7 @@ VFILE *vopen PARAMS(());
  */
 void vclose PARAMS((VFILE *vfile));
 
-#ifdef junk
-/* void vlimit(long amount);
- *
- * Set limit (in bytes) on amount of memory the virtual file system may
- * use.  This limit can be exceeded if all existing vpages are being referenced
- * and a new vpage is requested.
- *
- * When vlimit is called, the limit is immediatly enforced by elimiting
- * non-referenced vpages.
- */
-
-void vlimit PARAMS(());
-#endif
-
-/* void vflsh(void); 
+/* void vflsh(void);
  *
  * Write all changed pages to the disk
  */
@@ -154,201 +131,4 @@ unsigned char *vlock PARAMS((VFILE *vfile, unsigned long addr));
  */
 
 long my_valloc PARAMS((VFILE *vfile, long int size));
-
-#ifdef junk
-/******************************************************************************
- * The folloing functions implement stream I/O on top of the above software   *
- * virtual memory system                                                      *
- ******************************************************************************/
-
-/* void vseek(VFILE *vfile,long addr);
- *
- * Seek to a file address.  Allocates space to the file if you seek past the
- * end.
- */
-void vseek PARAMS(());
-
-/* int vrgetc(VFILE *);
- * int vgetc(VFILE *);
- *
- * Get next character / Get previous character functions.
- * They return NO_MORE_DATA for end of file / beginning of file.
- */
-
-int _vgetc PARAMS(());
-int _vrgetc PARAMS(());
-
-#define vrgetc(v) \
-        ( (v)->left!=PGSIZE ? ( ++(v)->left, (int)(unsigned)*(--(v)->bufp) ) : _vrgetc(v) )
-
-#define vgetc(v) \
-       ( (v)->left>(v)->lv ? ( --(v)->left, (int)(unsigned)*((v)->bufp++) ) : _vgetc(v) )
-
-/* int vputc(VFILE *,I);
- *
- * Put character.  Returns character which is written.
- */
-
-int _vputc PARAMS(());
-
-#define vputc(v,c) \
-       ( \
-         (v)->left ? \
-          ( \
-          --(v)->left, \
-          vchanged((v)->vpage), \
-          (int)(unsigned)(*((v)->bufp++)=(c)) \
-          ) \
-         : \
-          _vputc((v),(c)) \
-       )
-
-/* long vtell(VFILE *);
- *
- * Return current file position
- */
-
-#define vtell(v) \
-       ( \
-        (v)->vpage ? \
-         ( vheader((v)->vpage)->addr+(v)->bufp-(v)->vpage ) \
-        : \
-         0L \
-       )
-
-/* long vgetl(VFILE *);
- *
- * Get long.  No alignment requirements.  Returns -1 if goes past end of file.
- */
-
-long vgetl PARAMS(());
-
-/* short vgetw(VFILE *);
- *
- * Get short.  No alignment requirements.  Returns -1 if goes past end of file.
- */
-
-short vgetw PARAMS(());
-
-/* long vputl(VFILE *,long);
- *
- * Put long.  No alignment requirements.
- * Returns value written.
- */
-
-long vputl PARAMS(());
-
-/* short vputw(VFILE *,short);
- *
- * Put long.  No alignement requirements.
- * Returns value written.
- */
-
-short vputw PARAMS(());
-
-/* char *vgets(VFILE *v,char *s);
- *
- * Read up to next '\n' or end of file into a variable length string.  If 's'
- * is 0, a new string is created.  The \n is not copied into the string.
- *
- * Eliminates the variable length string and returns NULL if
- * vgets is called on the end of the file.
- *
- * This requires that you use the 'vs.h' / 'vs.c' library.
- */
-
-unsigned char *vgets PARAMS(());
-
-/* void vputs(VFILE *v,char *s);
- *
- * Write zero terminated string. \n is not appended */
-
-void vputs PARAMS(());
-
-/* void vread(VFILE *,char *,int size);
- *
- * Read bytes from a virtual file into a local data block
- */
-
-void vread PARAMS(());
-
-/* void vwrite(VFILE *,char *,int size);
- *
- * Write bytes from a local data block into a virtual file
- */
-
-void vwrite PARAMS(());
-
-/*************************************************************************** 
- * The following functions implement array I/O on top of the above virtual *
- * memory system (cheap memory mapped files)                               *
- ***************************************************************************/
-
-/* int rc(VFILE *vfile,long addr);
- *
- * Read character.  Returns NO_MORE_DATA if past end of file.
- */
-
-int _rc();
-
-#define rc(v,a) \
-       ( \
-         (a)>=vsize(v) ? NO_MORE_DATA : \
-           ( \
-             (v)->addr==((a)&~(PGSIZE-1)) ? \
-              (v)->vpage1[(a)&(PGSIZE-1)] \
-             : \
-              _rc((v),(a)) \
-           ) \
-       )
-
-/* int wc(VFILE *vfile,long addr,char c);
- *
- * Write character.  Return character written.  This automatically allocates
- * space to the file.
- */
-
-int _wc();
-
-#define wc(v,a,c) \
-       ( \
-         (v)->addr==((a)&~(PGSIZE-1)) ? \
-          ( \
-          vheader((v)->vpage1)->dirty=1, \
-          ((a)+1>vsize(v) && my_valloc(v,(a)+1-vsize(v))), \
-          (v)->vpage1[(a)&(PGSIZE-1)]=(c) \
-          ) \
-         : \
-          _wc((v),(a),(c)) \
-       )
-
-/* long rl(VFILE *vfile,long addr);
- * Read big-endian long.  No alignment requirements.  Returns -1 if goes past
- * end of file.
- */
-
-long rl PARAMS(());
-
-/* long wl(VFILE *vfile,long addr,long c);
- * Write big-endian long.  No alignment requirements.  Automatically expands
- * file if necessary.
- */
-
-long wl PARAMS(());
-
-/* short rw(VFILE *vfile,long addr);
- * Read big-endian short.  No alignment requirements.  Returns -1 if goes past
- * end of file.
- */
-
-short rw PARAMS(());
-
-/* short ww(VFILE *vfile,long addr,short c);
- * Write big-endian short.  No alignment requirements.  Automatically expands
- * file if necessary.
- */
-
-short ww PARAMS(());
-
-#endif
 #endif
diff --git a/vs.c b/vs.c
index b3ccb1c..c60a03f 100644 (file)
--- a/vs.c
+++ b/vs.c
@@ -1,4 +1,4 @@
-/* $MirOS: contrib/code/jupp/vs.c,v 1.3 2010/01/03 18:22:04 tg Exp $ */
+/* $MirOS: contrib/code/jupp/vs.c,v 1.4 2012/06/08 16:55:29 tg Exp $ */
 /*
  *     Variable length strings
  *     Copyright
@@ -150,47 +150,6 @@ sELEMENT *_vsset(sELEMENT *vary, int pos, sELEMENT el)
        return vary;
 }
 
-#ifdef junk
-
-sELEMENT *vsins(sELEMENT *vary, int pos, int n)
-{
-       if (!vary || sLEN(vary) + n > sSIZ(vary))
-               vary = vsensure(vary, sLEN(vary) + n);
-       if (pos >= sLen(vary))
-               vary = vstrunc(vary, pos + n);
-       else {
-               mmove(vary + pos + n, vary + pos, sLen(vary) - (pos + n) + 1);
-               sLen(vary) += n;
-       }
-       return vary;
-}
-
-sELEMENT *vsdel(sELEMENT *vary, int pos, int n)
-{
-       if (pos >= sLEN(vary))
-               return vary;
-       if (pos + n >= sLen(vary))
-               return vstrunc(vary, pos);
-       mmove(vary + pos, vary + pos + n, sLen(vary) - (pos + n) + 1);
-       sLen(vary) -= n;
-       return vary;
-}
-
-int _scmp(sELEMENT a, sELEMENT b)
-{
-       return scmp(a, b);
-}
-
-sELEMENT *vssort(sELEMENT *ary, int len)
-{
-       if (!ary || !len)
-               return ary;
-       qsort(ary, len, sizeof(sELEMENT), _scmp);
-       return ary;
-}
-
-#endif
-
 int vsbsearch(sELEMENT *ary, int len, sELEMENT el)
 {
        int x, y, z;
@@ -216,36 +175,6 @@ int vsbsearch(sELEMENT *ary, int len, sELEMENT el)
        return y;
 }
 
-#ifdef junk
-
-int vsfirst(sELEMENT *ary, int len, sELEMENT el)
-{
-       int x;
-
-       if (!ary || !len)
-               return ~0;
-       for (x = 0; x != len; ++x)
-               if (!scmp(ary[x], el))
-                       return x;
-       return ~0;
-}
-
-int vslast(sELEMENT *ary, int len, sELEMENT el)
-{
-       int x = len;
-
-       if (!ary || !len)
-               return ~0;
-       do {
-               --x;
-               if (!scmp(ary[x], el))
-                       return x;
-       } while (x);
-       return ~0;
-}
-
-#endif
-
 int vscmpn(sELEMENT *a, int alen, sELEMENT *b, int blen)
 {
        int x, l;
@@ -275,51 +204,6 @@ int vscmp(sELEMENT *a, sELEMENT *b)
 {
        return vscmpn(sv(a), sv(b));
 }
-#ifdef junk
-int vsicmpn(sELEMENT *a, int alen, sELEMENT *b, int blen)
-{
-       int x, l;
-       int t;
-
-       if (!a && !b)
-               return 0;
-       if (!a)
-               return -1;
-       if (!b)
-               return 1;
-       if (alen > blen)
-               l = sLen(a);
-       else
-               l = blen;
-       for (x = 0; x != l; ++x)
-               if (t = sicmp(a[x], b[x]))
-                       return t;
-       if (alen > blen)
-               return 1;
-       if (alen < blen)
-               return -1;
-       return 0;
-}
-
-int vss(sELEMENT *a, int alen, sELEMENT *b, int blen)
-{
-       int x;
-
-       if (!a && !b)
-               return 0;
-       if (!a || !b)
-               return ~0;
-       if (alen < blen)
-               return ~0;
-       if (!blen)
-               return 0;
-       for (x = 0; x != alen - blen; ++x)
-               if (!vscmpn(a, blen, b, blen))
-                       return x;
-       return ~0;
-}
-
-#endif
 
 int vsscan(sELEMENT *a, int alen, sELEMENT *b, int blen)
 {
@@ -346,46 +230,3 @@ int vsspan(sELEMENT *a, int alen, sELEMENT *b, int blen)
        }
        return x;
 }
-
-#ifdef junk
-
-sELEMENT *vsread(sELEMENT d, int p, int (*getC)(), void *ptr)
-{
-       int c;
-
-       if (!d)
-               d = vsmk(10);
-       c = getC(ptr);
-       if (c == NO_MORE_DATA) {
-               vsrm(d);
-               return NULL;
-       } else if (c == '\n')
-               return d;
-       else {
-               d = vsset(d, p, c);
-               p++;
-       }
-       while (c = getC(ptr), c != NO_MORE_DATA && c != '\n') {
-               d = vsset(d, p, c);
-               p++;
-       }
-       return d;
-}
-
-sELEMENT *vwords(sELEMENT *s, sELEMENT **a, int len, sELEMENT t)
-{
-       int x;
-
-       if (!s)
-               s = vsmk(32);
-       else
-               s = vstrunc(s, 0);
-       for (x = 0; x != len; ++x) {
-               s = vsncpy(s, sLEN(s), sz(a[x]));
-               if (a[1])
-                       s = vsadd(s, t);
-       }
-       return s;
-}
-
-#endif
diff --git a/vs.h b/vs.h
index ef49d4b..72617fe 100644 (file)
--- a/vs.h
+++ b/vs.h
@@ -1,4 +1,4 @@
-/* $MirOS: contrib/code/jupp/vs.h,v 1.3 2010/01/03 18:22:05 tg Exp $ */
+/* $MirOS: contrib/code/jupp/vs.h,v 1.4 2012/06/08 16:55:29 tg Exp $ */
 /*
  *     Dynamic string library
  *     Copyright
  */
 
 /* Functions and global variable you have to define.  Replace these with
- * macros or defines here if they are not to be actual functions 
+ * macros or defines here if they are not to be actual functions
  */
 
 /* An element with name 'a' */
@@ -318,33 +318,10 @@ sELEMENT *_vsset PARAMS((sELEMENT *vary, int pos, sELEMENT el));
  */
 #define vsget(a, p) ((p) >= sLEN(a) ? sterm : (a)[p])
 
-/**********************/
-/* Insertion/Deletion */
-/**********************/
-#ifdef junk
-/* sELEMENT *vsins(sELEMENT *vary, int pos, int n));
- * Insert n empty slots into the array.  If 'pos' >= the length of the array,
- * the array is simply extended.  The new slots are not set to anything.
- * This does not set the elements in the created hole to any particular
- * value: use vsfill if you need that to occur.
- */
-sELEMENT *vsins PARAMS((sELEMENT *vary, int pos, int n));
-
-/* sELEMENT *vsdel(sELEMENT *vary, int pos, int n));
- * Delete n slots from the array.  This does not zap the elements first; call
- * vszap first if you need this to happen.
- */
-sELEMENT *vsdel PARAMS((SELEMENT *vary, int pos, int n));
-
 /*************************/
 /* Searching and Sorting */
 /*************************/
 
-/* sELEMENT *vssort(sELEMENT *ary, int len))
- * Sort the elements of an array (char or variable length) using qsort().
- */
-sELEMENT *vssort PARAMS((sELEMENT *ary, int len));
-#endif
 /* int vsbsearch(sELEMENT *ary, int len, sELEMENT element);
  * Do a binary search on a sorted variable length or char array.  Returns position
  * of matching element or the position where the element should be if it was
@@ -354,23 +331,6 @@ sELEMENT *vssort PARAMS((sELEMENT *ary, int len));
  */
 int vsbsearch PARAMS((sELEMENT *ary, int len, sELEMENT el));
 
-#ifdef junk
-/* int vsfirst(sELEMENT *ary, int len, sELEMENT element);
- * Find offset to first matching element in 'vary' or return ~0 if not found.
- */
-int vsfirst PARAMS((sELEMENT *ary, int len, sELEMENT element));
-
-/* int vslast(sELEMENT *ary, int len, sELEMENT element);
- * Find offset to last matching element in 'vary' or return ~0 if none found.
- */
-int vslast PARAMS((sELEMENT *ary, int len, sELEMENT element));
-
-/* int vss(sELEMENT *a, int alen, sELEMENT *b, int blen);
- * Do a substring search on 'a'.  Return offset from 'a' to first matching
- * occurance of 'b' in 'a' or return ~0 if none found.
- */
-int vss PARAMS((sELEMENT *a, int alen, sELEMENT *b, int blen));
-#endif
 /* int vscmpn(sELEMENT *a, int alen, sELEMENT *b, int blen);
  *
  * Compare two arrays using scmp.  If 'a' > 'b', return 1.  If 'a' == 'b',
@@ -385,23 +345,6 @@ int vscmpn PARAMS((sELEMENT *a, int alen, sELEMENT *b, int blen));
  */
 int vscmp PARAMS((sELEMENT *a, sELEMENT *b));
 
-#ifdef junk
-/* int vsicmpn(sELEMENT *a, int alen, sELEMENT *b, int blen);
- *
- * Compare two arrays using sicmp.  If 'a' > 'b', return 1.  If 'a' == 'b',
- * return 0.  If 'a' < 'b', return -1.  Longer strings are > shorter ones if
- * their beginning match.
- *
- * This is same as vscmpn except that it is case insensitive.
- */
-int vsicmpn PARAMS((sELEMENT *a, int alen, sELEMENT *b, int blen));
-
-/* int vsicmp(sELEMENT *a, sELEMENT *b);
- *
- * Functionalized version of: vsicmpn(sv(a), sv(b));
- */
-int vsicmp PARAMS((sELEMENT *a, sELEMENT *b));
-#endif
 /* int vsscan(sELEMENT *a, int alen, sELEMENT *b, int blen);
  * Find offset of first matching element in 'a' which matches any
  * of the elements passed in 'b'.  Array 'b' must be sorted.
@@ -415,33 +358,4 @@ int vsscan PARAMS((sELEMENT *a, int alen, sELEMENT *b, int blen));
  * of the elements passed in 'b'.  Array 'b' must be sorted.
  */
 int vsspan PARAMS((sELEMENT *a, int alen, sELEMENT *b, int blen));
-
-/***************/
-/* Other stuff */
-/***************/
-#ifdef junk
-/* char *vsread(char *d, int p, int (*getC)(void *ptr), void *ptr);
- * Replace 'd' with next line read from read-character function 'getC'.  If 
- * 'd' is 0, a new string is allocated.  If there is no more input, the string
- * is freed and 0 is returned.  The \n is deleted from the entered line.
- *
- * 'ptr' is passed as the first arg to 'getC'.  'getC' should return -1 if
- * there is no more input.
- */
-unsigned char *vsread PARAMS(());
-
-/* char *vwords(char *s, char **a, int len, char t);
- *
- * Generate a 't'-seperated word list from the words in the zero-terminated
- * array of zero-terminated strings 'a'.  For example a simple 'echo.c':
- *
- * main(argc, argv)
- * char *argv[];
- * {
- * printf("%s\n",vwords(NULL,argv,argc,' ')):
- * }
- *
- */
-unsigned char *vwords PARAMS(());
-#endif
 #endif