diff options
author | Peter Breitenlohner <peb@mppmu.mpg.de> | 2011-04-11 10:01:47 +0000 |
---|---|---|
committer | Peter Breitenlohner <peb@mppmu.mpg.de> | 2011-04-11 10:01:47 +0000 |
commit | 83862d353cdf1a3d0d97c35fb2e5031ca31b3b22 (patch) | |
tree | 03756786c02b0167b4f49dc36af9abe597732d90 | |
parent | 717d1f8e302106991da10e5e68a9fe0e8d5e7087 (diff) |
Avoid using strcpy() for overlapping strings
TEXEDIT: use texworks instead of vi for Windows
git-svn-id: svn://tug.org/texlive/trunk@22043 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r-- | Build/source/README.config | 7 | ||||
-rwxr-xr-x | Build/source/configure | 13 | ||||
-rwxr-xr-x | Build/source/libs/configure | 5 | ||||
-rwxr-xr-x | Build/source/texk/configure | 5 | ||||
-rw-r--r-- | Build/source/texk/kpathsea/ChangeLog | 7 | ||||
-rw-r--r-- | Build/source/texk/kpathsea/tex-file.c | 19 | ||||
-rw-r--r-- | Build/source/texk/kpathsea/texmf.cnf | 3 | ||||
-rw-r--r-- | Build/source/texk/web2c/ac/web2c.ac | 5 | ||||
-rw-r--r-- | Build/source/texk/web2c/aclocal.m4 | 107 | ||||
-rwxr-xr-x | Build/source/texk/web2c/configure | 125 | ||||
-rw-r--r-- | Build/source/texk/web2c/configure.ac | 6 | ||||
-rwxr-xr-x | Build/source/utils/configure | 5 |
12 files changed, 210 insertions, 97 deletions
diff --git a/Build/source/README.config b/Build/source/README.config index 5e2993a90d7..dc1d00c7837 100644 --- a/Build/source/README.config +++ b/Build/source/README.config @@ -1,4 +1,4 @@ -Copyright (C) 2009, 2010 Peter Breitenlohner <tex-live@tug.org> +Copyright (C) 2009 - 2011 Peter Breitenlohner <tex-live@tug.org> You may freely use, modify and/or distribute this file. Configure options for the TeX Live (TL) build system @@ -120,7 +120,7 @@ use this option, but distro builds should specify this as, e.g., 2.3.1. --with-editor=CMD Specify the command CMD to invoke from the `e' option, replacing the default -`vi +%d %s'. +`vi +%d '%s'' for Unix or `texworks --position=%d "%s"' for Windows.. 2.3.3. --enable-auto-core This option causes TeX & MF to produce a core dump when a particular @@ -134,7 +134,8 @@ on little-endian architectures). If enabled (by default) allow TeX's '--ipc' option. 2.3.6. --disable-tex, --enable-etex, --disable-aleph, --disable-pdftex, - --disable-luatex, --disable-xetex, --disable-mf, --disable-mp + --disable-luatex, --disable-xetex, --disable-ptex, --disable-eptex, + --disable-mf, --disable-mp Do or do not build the various TeX, METAFONT, and MetaPost engines. 2.3.7. --with-mf-x-toolkit diff --git a/Build/source/configure b/Build/source/configure index e7d96c2e8e7..396f805d1e8 100755 --- a/Build/source/configure +++ b/Build/source/configure @@ -836,8 +836,6 @@ enable_t1rawafm enable_t1reencode enable_t1testpage enable_ttftotype42 -enable_cfftot1 -enable_ttftotype42 enable_updmap enable_makeindexk enable_makejvf @@ -901,7 +899,6 @@ enable_libtool_lock enable_largefile enable_compiler_warnings with_x -with_gnu_ld with_ln_s ' ac_precious_vars='build_alias @@ -913,16 +910,11 @@ LDFLAGS LIBS CPPFLAGS CPP -CPPFLAGS XMKMF CXX CXXFLAGS -LDFLAGS -LIBS -CPPFLAGS CCC -CXXCPP -CPPFLAGS' +CXXCPP' ac_subdirs_all='texk/ptexenc texk/kpathsea auxdir/auxsub libs utils texk' @@ -1681,7 +1673,8 @@ Optional Packages: --with-recode use `recode' instead of `iconv' to build xindy [default: no] --with-banner-add=STR add STR to version string appended to banner lines - --with-editor=CMD invoke CMD from the `e' option [vi +%d %s] + --with-editor=CMD invoke CMD from the `e' option [vi +%d '%s'] or + [texworks --position=%d "%s"] --without-mf-x-toolkit do not use X toolkit for METAFONT --with-gs=/PATH/TO/gs Hard-wire the location of GhostScript --with-system-libgs build dvisvgm with installed gs headers and library diff --git a/Build/source/libs/configure b/Build/source/libs/configure index 69aa26cd58d..09536f423cf 100755 --- a/Build/source/libs/configure +++ b/Build/source/libs/configure @@ -747,8 +747,6 @@ enable_t1rawafm enable_t1reencode enable_t1testpage enable_ttftotype42 -enable_cfftot1 -enable_ttftotype42 enable_updmap enable_makeindexk enable_makejvf @@ -1565,7 +1563,8 @@ Optional Packages: --with-recode use `recode' instead of `iconv' to build xindy [default: no] --with-banner-add=STR add STR to version string appended to banner lines - --with-editor=CMD invoke CMD from the `e' option [vi +%d %s] + --with-editor=CMD invoke CMD from the `e' option [vi +%d '%s'] or + [texworks --position=%d "%s"] --without-mf-x-toolkit do not use X toolkit for METAFONT --with-gs=/PATH/TO/gs Hard-wire the location of GhostScript --with-system-libgs build dvisvgm with installed gs headers and library diff --git a/Build/source/texk/configure b/Build/source/texk/configure index edebce70a9c..6940f5d27ac 100755 --- a/Build/source/texk/configure +++ b/Build/source/texk/configure @@ -747,8 +747,6 @@ enable_t1rawafm enable_t1reencode enable_t1testpage enable_ttftotype42 -enable_cfftot1 -enable_ttftotype42 enable_updmap enable_makeindexk enable_makejvf @@ -1586,7 +1584,8 @@ Optional Packages: --with-recode use `recode' instead of `iconv' to build xindy [default: no] --with-banner-add=STR add STR to version string appended to banner lines - --with-editor=CMD invoke CMD from the `e' option [vi +%d %s] + --with-editor=CMD invoke CMD from the `e' option [vi +%d '%s'] or + [texworks --position=%d "%s"] --without-mf-x-toolkit do not use X toolkit for METAFONT --with-gs=/PATH/TO/gs Hard-wire the location of GhostScript --with-system-libgs build dvisvgm with installed gs headers and library diff --git a/Build/source/texk/kpathsea/ChangeLog b/Build/source/texk/kpathsea/ChangeLog index 7611adf7a2e..6ae5734dbaa 100644 --- a/Build/source/texk/kpathsea/ChangeLog +++ b/Build/source/texk/kpathsea/ChangeLog @@ -1,3 +1,10 @@ +2011-04-11 Peter Breitenlohner <peb@mppmu.mpg.de> + + * texmf.cnf (TEXEDIT): Document Unix and Windows defaults. + + * tex-file.c (executable_filep): Avoid using strcpy() for + overlapping strings. + 2011-03-22 Karl Berry <karl@tug.org> * texmf.cnf (TEXINPUTS.eptex, TEXINPUTS.eplatex): define, diff --git a/Build/source/texk/kpathsea/tex-file.c b/Build/source/texk/kpathsea/tex-file.c index 0e069721f53..741ba2b0ada 100644 --- a/Build/source/texk/kpathsea/tex-file.c +++ b/Build/source/texk/kpathsea/tex-file.c @@ -1231,6 +1231,7 @@ Isspace (char c) static boolean executable_filep (kpathsea kpse, const_string fname, boolean silent) { + const_string fn; string p, q, base; string *pp; @@ -1241,17 +1242,15 @@ executable_filep (kpathsea kpse, const_string fname, boolean silent) /* get base name we cannot use xbasename() for abnormal names. */ - base = xstrdup (fname); p = strrchr (fname, '/'); - if (p) { - p++; - strcpy (base, p); - } - p = strrchr (base, '\\'); - if (p) { - p++; - strcpy (base, p); - } + if (p) + fn = p + 1; + else + fn = fname; + p = strrchr (fn, '\\'); + if (p) + fn = p + 1; + base = xstrdup (fn); #if defined(__CYGWIN__) for (p = base; *p; p++) *p = TOLOWER (*p); diff --git a/Build/source/texk/kpathsea/texmf.cnf b/Build/source/texk/kpathsea/texmf.cnf index f530952fe5f..1cb0ee9b369 100644 --- a/Build/source/texk/kpathsea/texmf.cnf +++ b/Build/source/texk/kpathsea/texmf.cnf @@ -580,7 +580,8 @@ TEX = etex % interactive `e' option. %d is replaced by the line number and %s by % the current filename. The default is specified at compile-time, and % we let that stay in place since different platforms like different values. -%TEXEDIT = vi +%d "%s" +%TEXEDIT = vi +%d '%s' % default for Unix +%TEXEDIT = texworks --position=+%d "%s" % default for Windows %MFEDIT = ${TEXEDIT} %MPEDIT = ${TEXEDIT} diff --git a/Build/source/texk/web2c/ac/web2c.ac b/Build/source/texk/web2c/ac/web2c.ac index caf088caa59..933d05a7ecf 100644 --- a/Build/source/texk/web2c/ac/web2c.ac +++ b/Build/source/texk/web2c/ac/web2c.ac @@ -1,6 +1,6 @@ ## texk/web2c/ac/web2c.ac: configure.ac fragment for the TeX Live subdirectory texk/web2c/ dnl -dnl Copyright (C) 2009, 2010 Peter Breitenlohner <tex-live@tug.org> +dnl Copyright (C) 2009 - 2011 Peter Breitenlohner <tex-live@tug.org> dnl You may freely use, modify and/or distribute this file. dnl ## configure options for TeX and MF @@ -10,7 +10,8 @@ AC_ARG_WITH([banner-add], [add STR to version string appended to banner lines]))[]dnl AC_ARG_WITH([editor], AS_HELP_STRING([--with-editor=CMD], - [invoke CMD from the `e' option @<:@vi +%d %s@:>@]))[]dnl + [invoke CMD from the `e' option @<:@vi +%d '%s'@:>@ + or @<:@texworks --position=%d "%s"@:>@]))[]dnl AC_ARG_ENABLE([auto-core], AS_HELP_STRING([--enable-auto-core], [cause TeX&MF to dump core, given a certain filename], diff --git a/Build/source/texk/web2c/aclocal.m4 b/Build/source/texk/web2c/aclocal.m4 index 09487015963..8d89b6d7a1a 100644 --- a/Build/source/texk/web2c/aclocal.m4 +++ b/Build/source/texk/web2c/aclocal.m4 @@ -19,6 +19,113 @@ You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) +# longlong.m4 serial 14 +dnl Copyright (C) 1999-2007, 2009-2010 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Paul Eggert. + +# Define HAVE_LONG_LONG_INT if 'long long int' works. +# This fixes a bug in Autoconf 2.61, but can be removed once we +# assume 2.62 everywhere. + +# Note: If the type 'long long int' exists but is only 32 bits large +# (as on some very old compilers), HAVE_LONG_LONG_INT will not be +# defined. In this case you can treat 'long long int' like 'long int'. + +AC_DEFUN([AC_TYPE_LONG_LONG_INT], +[ + AC_CACHE_CHECK([for long long int], [ac_cv_type_long_long_int], + [AC_LINK_IFELSE( + [_AC_TYPE_LONG_LONG_SNIPPET], + [dnl This catches a bug in Tandem NonStop Kernel (OSS) cc -O circa 2004. + dnl If cross compiling, assume the bug isn't important, since + dnl nobody cross compiles for this platform as far as we know. + AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[@%:@include <limits.h> + @%:@ifndef LLONG_MAX + @%:@ define HALF \ + (1LL << (sizeof (long long int) * CHAR_BIT - 2)) + @%:@ define LLONG_MAX (HALF - 1 + HALF) + @%:@endif]], + [[long long int n = 1; + int i; + for (i = 0; ; i++) + { + long long int m = n << i; + if (m >> i != n) + return 1; + if (LLONG_MAX / 2 < m) + break; + } + return 0;]])], + [ac_cv_type_long_long_int=yes], + [ac_cv_type_long_long_int=no], + [ac_cv_type_long_long_int=yes])], + [ac_cv_type_long_long_int=no])]) + if test $ac_cv_type_long_long_int = yes; then + AC_DEFINE([HAVE_LONG_LONG_INT], [1], + [Define to 1 if the system has the type `long long int'.]) + fi +]) + +# Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works. +# This fixes a bug in Autoconf 2.61, but can be removed once we +# assume 2.62 everywhere. + +# Note: If the type 'unsigned long long int' exists but is only 32 bits +# large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT +# will not be defined. In this case you can treat 'unsigned long long int' +# like 'unsigned long int'. + +AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT], +[ + AC_CACHE_CHECK([for unsigned long long int], + [ac_cv_type_unsigned_long_long_int], + [AC_LINK_IFELSE( + [_AC_TYPE_LONG_LONG_SNIPPET], + [ac_cv_type_unsigned_long_long_int=yes], + [ac_cv_type_unsigned_long_long_int=no])]) + if test $ac_cv_type_unsigned_long_long_int = yes; then + AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], [1], + [Define to 1 if the system has the type `unsigned long long int'.]) + fi +]) + +# Expands to a C program that can be used to test for simultaneous support +# of 'long long' and 'unsigned long long'. We don't want to say that +# 'long long' is available if 'unsigned long long' is not, or vice versa, +# because too many programs rely on the symmetry between signed and unsigned +# integer types (excluding 'bool'). +AC_DEFUN([_AC_TYPE_LONG_LONG_SNIPPET], +[ + AC_LANG_PROGRAM( + [[/* For now, do not test the preprocessor; as of 2007 there are too many + implementations with broken preprocessors. Perhaps this can + be revisited in 2012. In the meantime, code should not expect + #if to work with literals wider than 32 bits. */ + /* Test literals. */ + long long int ll = 9223372036854775807ll; + long long int nll = -9223372036854775807LL; + unsigned long long int ull = 18446744073709551615ULL; + /* Test constant expressions. */ + typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) + ? 1 : -1)]; + typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1 + ? 1 : -1)]; + int i = 63;]], + [[/* Test availability of runtime routines for shift and division. */ + long long int llmax = 9223372036854775807ll; + unsigned long long int ullmax = 18446744073709551615ull; + return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) + | (llmax / ll) | (llmax % ll) + | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) + | (ullmax / ull) | (ullmax % ull));]]) +]) + # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation diff --git a/Build/source/texk/web2c/configure b/Build/source/texk/web2c/configure index e8265523727..0ac3eee1d18 100755 --- a/Build/source/texk/web2c/configure +++ b/Build/source/texk/web2c/configure @@ -1629,7 +1629,8 @@ Optional Packages: --with-sysroot=DIR Search for dependent libraries within DIR (or the compiler's sysroot if not specified). --with-banner-add=STR add STR to version string appended to banner lines - --with-editor=CMD invoke CMD from the `e' option [vi +%d %s] + --with-editor=CMD invoke CMD from the `e' option [vi +%d '%s'] or + [texworks --position=%d "%s"] --without-mf-x-toolkit do not use X toolkit for METAFONT --with-fontconfig-includes=DIR fontconfig headers installed in DIR @@ -17529,38 +17530,6 @@ $as_echo "#define ASM_NEEDS_UNDERSCORE 1" >>confdefs.h fi - -case $with_editor in #( - ''|yes|no) : - with_editor='vi +%d %s' ;; #( - *) : - ;; -esac - -cat >>confdefs.h <<_ACEOF -#define EDITOR "$with_editor" -_ACEOF - - -if test "x$enable_auto_core" = xyes; then : - -$as_echo "#define FUNNY_CORE_DUMP 1" >>confdefs.h - -fi - -if test "x$enable_dump_share" = xno; then : - -$as_echo "#define NO_DUMP_SHARE 1" >>confdefs.h - -fi - -case $enable_ipc in #( - yes|no) : - ;; #( - *) : - enable_ipc=yes ;; -esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for native WIN32 or MINGW32" >&5 $as_echo_n "checking for native WIN32 or MINGW32... " >&6; } if ${kpse_cv_have_win32+:} false; then : @@ -17607,6 +17576,42 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_cv_have_win32" >&5 $as_echo "$kpse_cv_have_win32" >&6; } + +case $with_editor in #( + ''|yes|no) : + if test "x$kpse_cv_have_win32" = xno; then : + with_editor="vi +%d '%s'" +else + with_editor='texworks --position=%d \"%s\"' +fi ;; #( + *) : + ;; +esac + +cat >>confdefs.h <<_ACEOF +#define EDITOR "$with_editor" +_ACEOF + + +if test "x$enable_auto_core" = xyes; then : + +$as_echo "#define FUNNY_CORE_DUMP 1" >>confdefs.h + +fi + +if test "x$enable_dump_share" = xno; then : + +$as_echo "#define NO_DUMP_SHARE 1" >>confdefs.h + +fi + +case $enable_ipc in #( + yes|no) : + ;; #( + *) : + enable_ipc=yes ;; +esac + if test "x$kpse_cv_have_win32" != xno; then WIN32_TRUE= WIN32_FALSE='#' @@ -19752,18 +19757,18 @@ else /* end confdefs.h. */ /* For now, do not test the preprocessor; as of 2007 there are too many - implementations with broken preprocessors. Perhaps this can - be revisited in 2012. In the meantime, code should not expect - #if to work with literals wider than 32 bits. */ + implementations with broken preprocessors. Perhaps this can + be revisited in 2012. In the meantime, code should not expect + #if to work with literals wider than 32 bits. */ /* Test literals. */ long long int ll = 9223372036854775807ll; long long int nll = -9223372036854775807LL; unsigned long long int ull = 18446744073709551615ULL; /* Test constant expressions. */ typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) - ? 1 : -1)]; + ? 1 : -1)]; typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1 - ? 1 : -1)]; + ? 1 : -1)]; int i = 63; int main () @@ -19772,40 +19777,40 @@ main () long long int llmax = 9223372036854775807ll; unsigned long long int ullmax = 18446744073709551615ull; return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) - | (llmax / ll) | (llmax % ll) - | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) - | (ullmax / ull) | (ullmax % ull)); + | (llmax / ll) | (llmax % ll) + | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) + | (ullmax / ull) | (ullmax % ull)); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - if test "$cross_compiling" = yes; then : + if test "$cross_compiling" = yes; then : ac_cv_type_long_long_int=yes else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <limits.h> - #ifndef LLONG_MAX - # define HALF \ - (1LL << (sizeof (long long int) * CHAR_BIT - 2)) - # define LLONG_MAX (HALF - 1 + HALF) - #endif + #ifndef LLONG_MAX + # define HALF \ + (1LL << (sizeof (long long int) * CHAR_BIT - 2)) + # define LLONG_MAX (HALF - 1 + HALF) + #endif int main () { long long int n = 1; - int i; - for (i = 0; ; i++) - { - long long int m = n << i; - if (m >> i != n) - return 1; - if (LLONG_MAX / 2 < m) - break; - } - return 0; + int i; + for (i = 0; ; i++) + { + long long int m = n << i; + if (m >> i != n) + return 1; + if (LLONG_MAX / 2 < m) + break; + } + return 0; ; return 0; } @@ -23332,9 +23337,9 @@ esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. -config_files="`echo $ac_config_files`" -config_headers="`echo $ac_config_headers`" -config_commands="`echo $ac_config_commands`" +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" _ACEOF diff --git a/Build/source/texk/web2c/configure.ac b/Build/source/texk/web2c/configure.ac index 4c94ae25444..95d5df2ee3d 100644 --- a/Build/source/texk/web2c/configure.ac +++ b/Build/source/texk/web2c/configure.ac @@ -56,9 +56,12 @@ dnl For tests AC_CHECK_PROGS([KPSEWHICH], [kpsewhich], [false]) KPSE_ASM_UNDERSCORE +KPSE_CHECK_WIN32 AS_CASE([$with_editor], - [''|yes|no], [with_editor='vi +%d %s']) + [''|yes|no], [AS_IF([test "x$kpse_cv_have_win32" = xno], + [with_editor="vi +%d '%s'"], + [with_editor='texworks --position=%d \"%s\"'])]) AC_DEFINE_UNQUOTED([EDITOR], ["$with_editor"], [web2c: Default editor for interactive `e' option.]) @@ -75,7 +78,6 @@ AS_CASE([$enable_ipc], [yes|no], [], [enable_ipc=yes]) -KPSE_CHECK_WIN32 AM_CONDITIONAL([WIN32], [test "x$kpse_cv_have_win32" != xno]) AM_CONDITIONAL([MINGW32], [test "x$kpse_cv_have_win32" = xmingw32]) diff --git a/Build/source/utils/configure b/Build/source/utils/configure index 3bb5d3da237..24f4072a3b1 100755 --- a/Build/source/utils/configure +++ b/Build/source/utils/configure @@ -747,8 +747,6 @@ enable_t1rawafm enable_t1reencode enable_t1testpage enable_ttftotype42 -enable_cfftot1 -enable_ttftotype42 enable_updmap enable_makeindexk enable_makejvf @@ -1563,7 +1561,8 @@ Optional Packages: --with-recode use `recode' instead of `iconv' to build xindy [default: no] --with-banner-add=STR add STR to version string appended to banner lines - --with-editor=CMD invoke CMD from the `e' option [vi +%d %s] + --with-editor=CMD invoke CMD from the `e' option [vi +%d '%s'] or + [texworks --position=%d "%s"] --without-mf-x-toolkit do not use X toolkit for METAFONT --with-gs=/PATH/TO/gs Hard-wire the location of GhostScript --with-system-libgs build dvisvgm with installed gs headers and library |