From owner-svn-src-vendor@FreeBSD.ORG Mon Feb 20 00:54:01 2012 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9698D106564A; Mon, 20 Feb 2012 00:54:01 +0000 (UTC) (envelope-from mp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7F0928FC0A; Mon, 20 Feb 2012 00:54:01 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q1K0s1DX023470; Mon, 20 Feb 2012 00:54:01 GMT (envelope-from mp@svn.freebsd.org) Received: (from mp@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1K0s1Od023464; Mon, 20 Feb 2012 00:54:01 GMT (envelope-from mp@svn.freebsd.org) Message-Id: <201202200054.q1K0s1Od023464@svn.freebsd.org> From: Mark Peek Date: Mon, 20 Feb 2012 00:54:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r231921 - in vendor/tcsh/dist: . config cygwin nls nls/C nls/et nls/finnish nls/french nls/german nls/greek nls/italian nls/ja nls/pl nls/russian nls/spanish nls/ukrainian tests win32 w... X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 20 Feb 2012 00:54:01 -0000 Author: mp Date: Mon Feb 20 00:53:59 2012 New Revision: 231921 URL: http://svn.freebsd.org/changeset/base/231921 Log: Import of tcsh-6.18.01 Added: vendor/tcsh/dist/BUGS vendor/tcsh/dist/config/aix vendor/tcsh/dist/config/alliant vendor/tcsh/dist/config/amdahl vendor/tcsh/dist/config/amiga vendor/tcsh/dist/config/android vendor/tcsh/dist/config/apollo vendor/tcsh/dist/config/bs2000 vendor/tcsh/dist/config/bsd vendor/tcsh/dist/config/bsdreno vendor/tcsh/dist/config/clipper vendor/tcsh/dist/config/coh3 vendor/tcsh/dist/config/convex vendor/tcsh/dist/config/cray vendor/tcsh/dist/config/csos vendor/tcsh/dist/config/cygwin vendor/tcsh/dist/config/decosf1 vendor/tcsh/dist/config/dgux vendor/tcsh/dist/config/dgux5.4 vendor/tcsh/dist/config/dnix5.3 vendor/tcsh/dist/config/emx vendor/tcsh/dist/config/eta10 vendor/tcsh/dist/config/ews vendor/tcsh/dist/config/fortune vendor/tcsh/dist/config/fps500 vendor/tcsh/dist/config/hcx vendor/tcsh/dist/config/hk68 vendor/tcsh/dist/config/hp-3.2 vendor/tcsh/dist/config/hp-5.2 vendor/tcsh/dist/config/hpbsd2 vendor/tcsh/dist/config/hposf1 vendor/tcsh/dist/config/hpux11 vendor/tcsh/dist/config/hpux7 vendor/tcsh/dist/config/hpux8 vendor/tcsh/dist/config/iconuxv vendor/tcsh/dist/config/intel vendor/tcsh/dist/config/irix vendor/tcsh/dist/config/irix62 vendor/tcsh/dist/config/isc202 vendor/tcsh/dist/config/isc3.0 vendor/tcsh/dist/config/isc4.0 vendor/tcsh/dist/config/linux vendor/tcsh/dist/config/lynx2.1 vendor/tcsh/dist/config/mac2 vendor/tcsh/dist/config/mach vendor/tcsh/dist/config/machten vendor/tcsh/dist/config/masscomp vendor/tcsh/dist/config/minix vendor/tcsh/dist/config/mips vendor/tcsh/dist/config/mtXinu vendor/tcsh/dist/config/opus vendor/tcsh/dist/config/os390 vendor/tcsh/dist/config/osf1 vendor/tcsh/dist/config/parosf1 vendor/tcsh/dist/config/powermaxos vendor/tcsh/dist/config/pyr vendor/tcsh/dist/config/pyratt vendor/tcsh/dist/config/qnx6 vendor/tcsh/dist/config/sco+odt vendor/tcsh/dist/config/sco32v2 vendor/tcsh/dist/config/sco32v4 vendor/tcsh/dist/config/sco32v5 vendor/tcsh/dist/config/sequent vendor/tcsh/dist/config/sinix vendor/tcsh/dist/config/sol2 vendor/tcsh/dist/config/sol22 vendor/tcsh/dist/config/sol23 vendor/tcsh/dist/config/sol24 vendor/tcsh/dist/config/sol26 vendor/tcsh/dist/config/sol29 vendor/tcsh/dist/config/stellar vendor/tcsh/dist/config/sunos35 vendor/tcsh/dist/config/sunos40 vendor/tcsh/dist/config/sunos41 vendor/tcsh/dist/config/sunos413 vendor/tcsh/dist/config/supermax vendor/tcsh/dist/config/superux8 vendor/tcsh/dist/config/sxa vendor/tcsh/dist/config/sysV68 vendor/tcsh/dist/config/sysV88 vendor/tcsh/dist/config/sysv vendor/tcsh/dist/config/sysv2 vendor/tcsh/dist/config/sysv3 vendor/tcsh/dist/config/sysv4 vendor/tcsh/dist/config/tc2000 vendor/tcsh/dist/config/tekXD88 vendor/tcsh/dist/config/ultrix vendor/tcsh/dist/config/unixpc vendor/tcsh/dist/config/uwin vendor/tcsh/dist/config/vms vendor/tcsh/dist/config/win32 vendor/tcsh/dist/config/xenix vendor/tcsh/dist/cygwin/ vendor/tcsh/dist/cygwin/bindkey.tcsh vendor/tcsh/dist/cygwin/csh.cshrc vendor/tcsh/dist/cygwin/csh.login vendor/tcsh/dist/cygwin/postinstall.sh (contents, props changed) vendor/tcsh/dist/cygwin/preremove.sh (contents, props changed) vendor/tcsh/dist/nls/Makefile.in vendor/tcsh/dist/nls/catgen (contents, props changed) vendor/tcsh/dist/svn vendor/tcsh/dist/tcsh.vcproj (contents, props changed) vendor/tcsh/dist/tests/ vendor/tcsh/dist/tests/aliases.at vendor/tcsh/dist/tests/arguments.at vendor/tcsh/dist/tests/commands.at vendor/tcsh/dist/tests/expr.at vendor/tcsh/dist/tests/history.at vendor/tcsh/dist/tests/lexical.at vendor/tcsh/dist/tests/mb-eucjp.at (contents, props changed) vendor/tcsh/dist/tests/mb-utf8.at (contents, props changed) vendor/tcsh/dist/tests/noexec.at vendor/tcsh/dist/tests/sh.dol.at vendor/tcsh/dist/tests/subst.at vendor/tcsh/dist/tests/syntax.at vendor/tcsh/dist/tests/testsuite.at vendor/tcsh/dist/tests/variables.at vendor/tcsh/dist/win32/ vendor/tcsh/dist/win32/BSDLOGO.BMP (contents, props changed) vendor/tcsh/dist/win32/BSDLOGO.ICO (contents, props changed) vendor/tcsh/dist/win32/BSDLOGO.RC vendor/tcsh/dist/win32/CODING vendor/tcsh/dist/win32/ChangeLog vendor/tcsh/dist/win32/Contributors vendor/tcsh/dist/win32/Makefile.win32 vendor/tcsh/dist/win32/README.NT vendor/tcsh/dist/win32/WindowsReadme.1st vendor/tcsh/dist/win32/bogus.c vendor/tcsh/dist/win32/clip.c vendor/tcsh/dist/win32/console.c vendor/tcsh/dist/win32/customstep.cmd vendor/tcsh/dist/win32/dirent.c vendor/tcsh/dist/win32/dirent.h vendor/tcsh/dist/win32/example.tcshrc vendor/tcsh/dist/win32/fork.c vendor/tcsh/dist/win32/forkdata.h vendor/tcsh/dist/win32/globals.c vendor/tcsh/dist/win32/io.c vendor/tcsh/dist/win32/msg/ vendor/tcsh/dist/win32/msg/Makefile vendor/tcsh/dist/win32/msg/makerc.pl vendor/tcsh/dist/win32/msg/makercjp.pl vendor/tcsh/dist/win32/msg/makercrc.pl vendor/tcsh/dist/win32/msg/stubdll.c vendor/tcsh/dist/win32/msg/test.c vendor/tcsh/dist/win32/nt.bind.c vendor/tcsh/dist/win32/nt.char.c vendor/tcsh/dist/win32/nt.const.c vendor/tcsh/dist/win32/nt.screen.c vendor/tcsh/dist/win32/nt.who.c vendor/tcsh/dist/win32/ntb1.c vendor/tcsh/dist/win32/ntb2.c vendor/tcsh/dist/win32/ntfunc.c vendor/tcsh/dist/win32/ntport.h vendor/tcsh/dist/win32/ps.c vendor/tcsh/dist/win32/signal.c vendor/tcsh/dist/win32/signal.h vendor/tcsh/dist/win32/stdio.c vendor/tcsh/dist/win32/support.c vendor/tcsh/dist/win32/tcshrc.rc vendor/tcsh/dist/win32/version.h Deleted: vendor/tcsh/dist/nls/Makefile Modified: vendor/tcsh/dist/Fixes vendor/tcsh/dist/Imakefile vendor/tcsh/dist/Makefile.in vendor/tcsh/dist/Ported vendor/tcsh/dist/README vendor/tcsh/dist/WishList vendor/tcsh/dist/complete.tcsh vendor/tcsh/dist/config.guess vendor/tcsh/dist/config.h.in vendor/tcsh/dist/config.sub vendor/tcsh/dist/config/bsd4.4 vendor/tcsh/dist/config_f.h vendor/tcsh/dist/configure vendor/tcsh/dist/configure.in vendor/tcsh/dist/ed.chared.c vendor/tcsh/dist/ed.inputl.c vendor/tcsh/dist/ed.refresh.c vendor/tcsh/dist/ed.screen.c vendor/tcsh/dist/ed.term.c vendor/tcsh/dist/gethost.c vendor/tcsh/dist/glob.c vendor/tcsh/dist/glob.h vendor/tcsh/dist/host.defs vendor/tcsh/dist/install-sh vendor/tcsh/dist/nls/C/charset vendor/tcsh/dist/nls/C/set19 vendor/tcsh/dist/nls/et/charset vendor/tcsh/dist/nls/et/set1 vendor/tcsh/dist/nls/et/set10 vendor/tcsh/dist/nls/et/set11 vendor/tcsh/dist/nls/et/set13 vendor/tcsh/dist/nls/et/set14 vendor/tcsh/dist/nls/et/set15 vendor/tcsh/dist/nls/et/set16 vendor/tcsh/dist/nls/et/set17 vendor/tcsh/dist/nls/et/set18 vendor/tcsh/dist/nls/et/set19 vendor/tcsh/dist/nls/et/set2 vendor/tcsh/dist/nls/et/set20 vendor/tcsh/dist/nls/et/set21 vendor/tcsh/dist/nls/et/set22 vendor/tcsh/dist/nls/et/set23 vendor/tcsh/dist/nls/et/set24 vendor/tcsh/dist/nls/et/set25 vendor/tcsh/dist/nls/et/set26 vendor/tcsh/dist/nls/et/set27 vendor/tcsh/dist/nls/et/set3 vendor/tcsh/dist/nls/et/set30 vendor/tcsh/dist/nls/et/set4 vendor/tcsh/dist/nls/et/set5 vendor/tcsh/dist/nls/et/set6 vendor/tcsh/dist/nls/et/set7 vendor/tcsh/dist/nls/et/set8 vendor/tcsh/dist/nls/et/set9 vendor/tcsh/dist/nls/finnish/charset vendor/tcsh/dist/nls/finnish/set1 vendor/tcsh/dist/nls/finnish/set10 vendor/tcsh/dist/nls/finnish/set11 vendor/tcsh/dist/nls/finnish/set12 vendor/tcsh/dist/nls/finnish/set13 vendor/tcsh/dist/nls/finnish/set14 vendor/tcsh/dist/nls/finnish/set16 vendor/tcsh/dist/nls/finnish/set17 vendor/tcsh/dist/nls/finnish/set18 vendor/tcsh/dist/nls/finnish/set19 vendor/tcsh/dist/nls/finnish/set2 vendor/tcsh/dist/nls/finnish/set20 vendor/tcsh/dist/nls/finnish/set22 vendor/tcsh/dist/nls/finnish/set23 vendor/tcsh/dist/nls/finnish/set25 vendor/tcsh/dist/nls/finnish/set26 vendor/tcsh/dist/nls/finnish/set27 vendor/tcsh/dist/nls/finnish/set29 vendor/tcsh/dist/nls/finnish/set3 vendor/tcsh/dist/nls/finnish/set6 vendor/tcsh/dist/nls/finnish/set7 vendor/tcsh/dist/nls/finnish/set9 vendor/tcsh/dist/nls/french/charset vendor/tcsh/dist/nls/french/set1 vendor/tcsh/dist/nls/french/set10 vendor/tcsh/dist/nls/french/set11 vendor/tcsh/dist/nls/french/set12 vendor/tcsh/dist/nls/french/set13 vendor/tcsh/dist/nls/french/set15 vendor/tcsh/dist/nls/french/set16 vendor/tcsh/dist/nls/french/set17 vendor/tcsh/dist/nls/french/set18 vendor/tcsh/dist/nls/french/set19 vendor/tcsh/dist/nls/french/set2 vendor/tcsh/dist/nls/french/set20 vendor/tcsh/dist/nls/french/set21 vendor/tcsh/dist/nls/french/set22 vendor/tcsh/dist/nls/french/set23 vendor/tcsh/dist/nls/french/set25 vendor/tcsh/dist/nls/french/set26 vendor/tcsh/dist/nls/french/set27 vendor/tcsh/dist/nls/french/set3 vendor/tcsh/dist/nls/french/set30 vendor/tcsh/dist/nls/french/set31 vendor/tcsh/dist/nls/french/set4 vendor/tcsh/dist/nls/french/set6 vendor/tcsh/dist/nls/french/set7 vendor/tcsh/dist/nls/french/set8 vendor/tcsh/dist/nls/french/set9 vendor/tcsh/dist/nls/german/charset vendor/tcsh/dist/nls/german/set1 vendor/tcsh/dist/nls/german/set10 vendor/tcsh/dist/nls/german/set13 vendor/tcsh/dist/nls/german/set15 vendor/tcsh/dist/nls/german/set16 vendor/tcsh/dist/nls/german/set17 vendor/tcsh/dist/nls/german/set18 vendor/tcsh/dist/nls/german/set19 vendor/tcsh/dist/nls/german/set2 vendor/tcsh/dist/nls/german/set20 vendor/tcsh/dist/nls/german/set22 vendor/tcsh/dist/nls/german/set23 vendor/tcsh/dist/nls/german/set25 vendor/tcsh/dist/nls/german/set26 vendor/tcsh/dist/nls/german/set27 vendor/tcsh/dist/nls/german/set29 vendor/tcsh/dist/nls/german/set3 vendor/tcsh/dist/nls/german/set30 vendor/tcsh/dist/nls/german/set31 vendor/tcsh/dist/nls/german/set4 vendor/tcsh/dist/nls/german/set5 vendor/tcsh/dist/nls/german/set6 vendor/tcsh/dist/nls/german/set7 vendor/tcsh/dist/nls/german/set8 vendor/tcsh/dist/nls/german/set9 vendor/tcsh/dist/nls/greek/charset vendor/tcsh/dist/nls/greek/set1 (contents, props changed) vendor/tcsh/dist/nls/greek/set10 (contents, props changed) vendor/tcsh/dist/nls/greek/set11 (contents, props changed) vendor/tcsh/dist/nls/greek/set12 (contents, props changed) vendor/tcsh/dist/nls/greek/set13 (contents, props changed) vendor/tcsh/dist/nls/greek/set14 (contents, props changed) vendor/tcsh/dist/nls/greek/set15 (contents, props changed) vendor/tcsh/dist/nls/greek/set16 (contents, props changed) vendor/tcsh/dist/nls/greek/set17 (contents, props changed) vendor/tcsh/dist/nls/greek/set18 (contents, props changed) vendor/tcsh/dist/nls/greek/set19 (contents, props changed) vendor/tcsh/dist/nls/greek/set2 (contents, props changed) vendor/tcsh/dist/nls/greek/set20 (contents, props changed) vendor/tcsh/dist/nls/greek/set21 (contents, props changed) vendor/tcsh/dist/nls/greek/set22 (contents, props changed) vendor/tcsh/dist/nls/greek/set23 (contents, props changed) vendor/tcsh/dist/nls/greek/set25 (contents, props changed) vendor/tcsh/dist/nls/greek/set26 (contents, props changed) vendor/tcsh/dist/nls/greek/set27 (contents, props changed) vendor/tcsh/dist/nls/greek/set29 (contents, props changed) vendor/tcsh/dist/nls/greek/set3 (contents, props changed) vendor/tcsh/dist/nls/greek/set30 (contents, props changed) vendor/tcsh/dist/nls/greek/set31 (contents, props changed) vendor/tcsh/dist/nls/greek/set4 (contents, props changed) vendor/tcsh/dist/nls/greek/set5 (contents, props changed) vendor/tcsh/dist/nls/greek/set6 (contents, props changed) vendor/tcsh/dist/nls/greek/set7 (contents, props changed) vendor/tcsh/dist/nls/greek/set8 (contents, props changed) vendor/tcsh/dist/nls/greek/set9 (contents, props changed) vendor/tcsh/dist/nls/italian/charset vendor/tcsh/dist/nls/italian/set1 vendor/tcsh/dist/nls/italian/set11 vendor/tcsh/dist/nls/italian/set13 vendor/tcsh/dist/nls/italian/set15 vendor/tcsh/dist/nls/italian/set17 vendor/tcsh/dist/nls/italian/set19 vendor/tcsh/dist/nls/italian/set2 vendor/tcsh/dist/nls/italian/set20 vendor/tcsh/dist/nls/italian/set22 vendor/tcsh/dist/nls/italian/set23 vendor/tcsh/dist/nls/italian/set26 vendor/tcsh/dist/nls/italian/set3 vendor/tcsh/dist/nls/italian/set30 vendor/tcsh/dist/nls/italian/set4 vendor/tcsh/dist/nls/italian/set6 vendor/tcsh/dist/nls/italian/set7 vendor/tcsh/dist/nls/ja/charset vendor/tcsh/dist/nls/ja/set1 (contents, props changed) vendor/tcsh/dist/nls/ja/set10 (contents, props changed) vendor/tcsh/dist/nls/ja/set11 (contents, props changed) vendor/tcsh/dist/nls/ja/set12 (contents, props changed) vendor/tcsh/dist/nls/ja/set13 (contents, props changed) vendor/tcsh/dist/nls/ja/set15 (contents, props changed) vendor/tcsh/dist/nls/ja/set16 (contents, props changed) vendor/tcsh/dist/nls/ja/set17 (contents, props changed) vendor/tcsh/dist/nls/ja/set18 (contents, props changed) vendor/tcsh/dist/nls/ja/set2 (contents, props changed) vendor/tcsh/dist/nls/ja/set21 (contents, props changed) vendor/tcsh/dist/nls/ja/set29 (contents, props changed) vendor/tcsh/dist/nls/ja/set3 (contents, props changed) vendor/tcsh/dist/nls/ja/set30 (contents, props changed) vendor/tcsh/dist/nls/ja/set4 (contents, props changed) vendor/tcsh/dist/nls/ja/set5 (contents, props changed) vendor/tcsh/dist/nls/ja/set6 (contents, props changed) vendor/tcsh/dist/nls/ja/set7 (contents, props changed) vendor/tcsh/dist/nls/ja/set8 (contents, props changed) vendor/tcsh/dist/nls/pl/charset vendor/tcsh/dist/nls/pl/set1 vendor/tcsh/dist/nls/pl/set10 vendor/tcsh/dist/nls/pl/set11 vendor/tcsh/dist/nls/pl/set12 vendor/tcsh/dist/nls/pl/set13 vendor/tcsh/dist/nls/pl/set14 vendor/tcsh/dist/nls/pl/set15 vendor/tcsh/dist/nls/pl/set16 vendor/tcsh/dist/nls/pl/set17 vendor/tcsh/dist/nls/pl/set18 vendor/tcsh/dist/nls/pl/set19 vendor/tcsh/dist/nls/pl/set2 vendor/tcsh/dist/nls/pl/set23 vendor/tcsh/dist/nls/pl/set27 vendor/tcsh/dist/nls/pl/set3 vendor/tcsh/dist/nls/pl/set30 vendor/tcsh/dist/nls/pl/set31 vendor/tcsh/dist/nls/pl/set5 vendor/tcsh/dist/nls/pl/set6 vendor/tcsh/dist/nls/pl/set8 vendor/tcsh/dist/nls/russian/charset vendor/tcsh/dist/nls/russian/set1 (contents, props changed) vendor/tcsh/dist/nls/russian/set10 (contents, props changed) vendor/tcsh/dist/nls/russian/set11 (contents, props changed) vendor/tcsh/dist/nls/russian/set12 (contents, props changed) vendor/tcsh/dist/nls/russian/set13 (contents, props changed) vendor/tcsh/dist/nls/russian/set14 (contents, props changed) vendor/tcsh/dist/nls/russian/set15 (contents, props changed) vendor/tcsh/dist/nls/russian/set16 (contents, props changed) vendor/tcsh/dist/nls/russian/set17 (contents, props changed) vendor/tcsh/dist/nls/russian/set18 (contents, props changed) vendor/tcsh/dist/nls/russian/set19 (contents, props changed) vendor/tcsh/dist/nls/russian/set2 (contents, props changed) vendor/tcsh/dist/nls/russian/set20 (contents, props changed) vendor/tcsh/dist/nls/russian/set22 (contents, props changed) vendor/tcsh/dist/nls/russian/set23 (contents, props changed) vendor/tcsh/dist/nls/russian/set25 (contents, props changed) vendor/tcsh/dist/nls/russian/set26 (contents, props changed) vendor/tcsh/dist/nls/russian/set27 (contents, props changed) vendor/tcsh/dist/nls/russian/set29 (contents, props changed) vendor/tcsh/dist/nls/russian/set30 (contents, props changed) vendor/tcsh/dist/nls/russian/set31 (contents, props changed) vendor/tcsh/dist/nls/russian/set4 (contents, props changed) vendor/tcsh/dist/nls/russian/set5 (contents, props changed) vendor/tcsh/dist/nls/russian/set6 (contents, props changed) vendor/tcsh/dist/nls/russian/set7 (contents, props changed) vendor/tcsh/dist/nls/russian/set8 (contents, props changed) vendor/tcsh/dist/nls/russian/set9 (contents, props changed) vendor/tcsh/dist/nls/spanish/charset vendor/tcsh/dist/nls/spanish/set1 vendor/tcsh/dist/nls/spanish/set10 vendor/tcsh/dist/nls/spanish/set13 vendor/tcsh/dist/nls/spanish/set14 vendor/tcsh/dist/nls/spanish/set15 vendor/tcsh/dist/nls/spanish/set16 vendor/tcsh/dist/nls/spanish/set17 vendor/tcsh/dist/nls/spanish/set18 vendor/tcsh/dist/nls/spanish/set19 vendor/tcsh/dist/nls/spanish/set2 vendor/tcsh/dist/nls/spanish/set20 vendor/tcsh/dist/nls/spanish/set22 vendor/tcsh/dist/nls/spanish/set23 vendor/tcsh/dist/nls/spanish/set25 vendor/tcsh/dist/nls/spanish/set26 vendor/tcsh/dist/nls/spanish/set27 vendor/tcsh/dist/nls/spanish/set3 vendor/tcsh/dist/nls/spanish/set30 vendor/tcsh/dist/nls/spanish/set4 vendor/tcsh/dist/nls/spanish/set5 vendor/tcsh/dist/nls/spanish/set6 vendor/tcsh/dist/nls/spanish/set7 vendor/tcsh/dist/nls/spanish/set8 vendor/tcsh/dist/nls/spanish/set9 vendor/tcsh/dist/nls/ukrainian/charset vendor/tcsh/dist/nls/ukrainian/set1 (contents, props changed) vendor/tcsh/dist/nls/ukrainian/set10 (contents, props changed) vendor/tcsh/dist/nls/ukrainian/set11 (contents, props changed) vendor/tcsh/dist/nls/ukrainian/set12 (contents, props changed) vendor/tcsh/dist/nls/ukrainian/set13 (contents, props changed) vendor/tcsh/dist/nls/ukrainian/set14 (contents, props changed) vendor/tcsh/dist/nls/ukrainian/set15 (contents, props changed) vendor/tcsh/dist/nls/ukrainian/set16 (contents, props changed) vendor/tcsh/dist/nls/ukrainian/set17 (contents, props changed) vendor/tcsh/dist/nls/ukrainian/set18 (contents, props changed) vendor/tcsh/dist/nls/ukrainian/set19 (contents, props changed) vendor/tcsh/dist/nls/ukrainian/set2 (contents, props changed) vendor/tcsh/dist/nls/ukrainian/set20 (contents, props changed) vendor/tcsh/dist/nls/ukrainian/set22 (contents, props changed) vendor/tcsh/dist/nls/ukrainian/set23 (contents, props changed) vendor/tcsh/dist/nls/ukrainian/set25 (contents, props changed) vendor/tcsh/dist/nls/ukrainian/set26 (contents, props changed) vendor/tcsh/dist/nls/ukrainian/set27 (contents, props changed) vendor/tcsh/dist/nls/ukrainian/set29 (contents, props changed) vendor/tcsh/dist/nls/ukrainian/set30 (contents, props changed) vendor/tcsh/dist/nls/ukrainian/set31 (contents, props changed) vendor/tcsh/dist/nls/ukrainian/set5 (contents, props changed) vendor/tcsh/dist/nls/ukrainian/set6 (contents, props changed) vendor/tcsh/dist/nls/ukrainian/set7 (contents, props changed) vendor/tcsh/dist/nls/ukrainian/set8 (contents, props changed) vendor/tcsh/dist/nls/ukrainian/set9 (contents, props changed) vendor/tcsh/dist/patchlevel.h vendor/tcsh/dist/pathnames.h vendor/tcsh/dist/sh.c vendor/tcsh/dist/sh.char.c vendor/tcsh/dist/sh.char.h vendor/tcsh/dist/sh.decls.h vendor/tcsh/dist/sh.dir.c vendor/tcsh/dist/sh.dol.c vendor/tcsh/dist/sh.err.c vendor/tcsh/dist/sh.exec.c vendor/tcsh/dist/sh.exp.c vendor/tcsh/dist/sh.file.c vendor/tcsh/dist/sh.func.c vendor/tcsh/dist/sh.glob.c vendor/tcsh/dist/sh.h vendor/tcsh/dist/sh.hist.c vendor/tcsh/dist/sh.lex.c vendor/tcsh/dist/sh.misc.c vendor/tcsh/dist/sh.parse.c vendor/tcsh/dist/sh.print.c vendor/tcsh/dist/sh.proc.c vendor/tcsh/dist/sh.proc.h vendor/tcsh/dist/sh.sem.c vendor/tcsh/dist/sh.set.c vendor/tcsh/dist/sh.time.c vendor/tcsh/dist/tc.alloc.c vendor/tcsh/dist/tc.const.c vendor/tcsh/dist/tc.decls.h vendor/tcsh/dist/tc.disc.c vendor/tcsh/dist/tc.func.c vendor/tcsh/dist/tc.nls.c vendor/tcsh/dist/tc.nls.h vendor/tcsh/dist/tc.os.c vendor/tcsh/dist/tc.os.h vendor/tcsh/dist/tc.prompt.c vendor/tcsh/dist/tc.sig.c vendor/tcsh/dist/tc.sig.h vendor/tcsh/dist/tc.str.c vendor/tcsh/dist/tc.wait.h vendor/tcsh/dist/tc.who.c vendor/tcsh/dist/tcsh.man vendor/tcsh/dist/tcsh.man2html vendor/tcsh/dist/tw.color.c vendor/tcsh/dist/tw.init.c vendor/tcsh/dist/tw.parse.c vendor/tcsh/dist/vms.termcap.c Directory Properties: vendor/tcsh/dist/nls/greek/set24 (props changed) vendor/tcsh/dist/nls/ja/set24 (props changed) vendor/tcsh/dist/nls/russian/set21 (props changed) vendor/tcsh/dist/nls/russian/set24 (props changed) vendor/tcsh/dist/nls/russian/set3 (props changed) vendor/tcsh/dist/nls/ukrainian/set21 (props changed) vendor/tcsh/dist/nls/ukrainian/set24 (props changed) vendor/tcsh/dist/nls/ukrainian/set3 (props changed) vendor/tcsh/dist/nls/ukrainian/set4 (props changed) Added: vendor/tcsh/dist/BUGS ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/tcsh/dist/BUGS Mon Feb 20 00:53:59 2012 (r231921) @@ -0,0 +1,602 @@ +# $tcsh: BUGS,v 3.5 2006/03/02 18:46:44 christos Exp $ +============ +Bugs in TCSH +============ +-IAN! idallen@ncf.ca +April 2002 + +-------------------------------------------------------------------------------- +| *FIXED* +| From: idallen +| Subject: Can't redirect output of "source" +| % echo "date" >file +| % source file >output +| Thu Sep 3 17:47:19 EDT 1987 +-------------------------------------------------------------------------------- + +From: idallen +Subject: nice is not cumulative + % nice date + % nice nice date + + Both have a nice of 4; nice does not accumulate. + +From: idallen +Subject: no warning on integer overflow + % @ x=99999999999999999999999 + % echo $x + -159383553 + +From: idallen +Subject: goto seeks backwards in terminal input + % goto x + goto? ignored + goto? ignored + goto? ignored + goto? x: + % goto x + + The terminal is now hung - you have to break out. + +From: idallen +Subject: nice applied to too many commands + % nice +20 simple `long` + + The CSH shell applies the nice to both commands "simple" and "long". + +From: idallen +Subject: redirection always happens in single-line "if" + if ( 0 ) echo hi > date + + The file date is created empty. + +From: idallen +Subject: Expanding variable with newline generates syntax error + % set x="abc\ + def" + % echo "$x" + Unmatched ". + +From: idallen +Subject: Expanding variable with newline generates extra word + % set x="abc\ + def" + % echo $x + abc def + % set y=( $x ) ; echo $#y + 3 + +From: idallen +Subject: Modifier ":e" doesn't work on history + CSH is missing an entry in a case statement for it. + +From: idallen +Subject: Shell messages appear on stdout; get redirected + If a program in a shell script exits with a signal that the shell + reports (e.g. Terminated), the report appears on standard output + and if the output of the shell script is redirected the report + gets sent there and you never find out. + +From: Steve Hayman +Subject: No error message given for failure to NICE + % nice -10 date + Fri May 30 12:11:12 EDT 1986 + CSH never checks the error returns from nice(). + +From: Ray Butterworth +Subject: CSH history reading takes '#' as a comment + % echo a b # c d + a b # c d + % exit + % login + % history + ... + 99 echo a b + + '#' indicates a comment when reading from a shell script file, + and of course CSH thinks it is reading from a file when it reads + the history back in. + +From: idallen +Subject: csh: No current job, even if only one job + % somecommand ^Z + Suspended + % bg + [1] somecommand & + % fg + fg: No current job. + + The C shell always turns off the current job indicator for a job + that is put in the background with "bg" -- even if it is the only job. + +From: idallen (Ian! D. Allen) +Subject: Redirection ignored inside if ( { cmd >xxx } ) .... + % if ( { date >out } ) echo hi + Sun Apr 14 13:24:31 EDT 2002 + hi + + The shell does not set up its file descriptors for the forked + command. The redirection is completely ignored. + +>From idallen +Subject: Error in CSH script causes script exit + If a script has an error in a built-in command (e.g. redirection file not + found), the script exits instead of continuing. + +From: idallen (Ian! D. Allen) +Subject: Variables $$, $# don't accept :-modifiers + echo $$:q $#:q + 12345:q 0:q + +From: idallen (Ian! D. Allen) +Subject: Variable $* (a synonym for argv) doesn't accept subscripts. + % set argv=( a b c d ) + % echo $argv[2] + b + % echo $*[2] + echo: No match. + +>From idallen +Subject: Using WHICH from CSH + The WHICH command tells the wrong thing if you've created + a new file and haven't done a REHASH. WHICH thinks you + get the new file, but the CSH will give you the old one. + +From: idallen (Ian! D. Allen) +Subject: Redirected input to built-in functions misbehaves badly + % date | echo hi + hi + % % jobs + [1] + Running date | + + Note the duplicate prompt and spurious job entry. + + % % date | echo hi + hi + % % date | echo hi + hi + % % jobs + [1] + Running date | + [2] - Running date | + [3] Running date | + % fg + date | + % fg + date | + fg: No such job (badjob). + % fg + [tcsh shell hangs here in an infinite loop] + + Just a general mess of mishandled processes. + +From: idallen (Ian! D. Allen) +Subject: stopped pipes generate spurious job ID + % date | sleep 99 + ^Z + Suspended + [1] 123 456 + +>From idallen(idallen ) +Subject: NICE and NOHUP have no effect as last component of sub-shells. + % nice +10 ps -laxtd0 + UID PID PPID CP PRI NI RSS WCHAN STAT TT TIME COMMAND + 47 3559 1 0 15 0 33 ff000 S d0 0:16 -csh (csh) + 47 7606 3559125 76 10 23 R N d0 0:01 ps -laxtd0 + % (nice +10 ps -laxtd0) + UID PID PPID CP PRI NI RSS WCHAN STAT TT TIME COMMAND + 47 3559 1 3 15 0 33 ff000 S d0 0:16 -csh (csh) + 47 7605 3559 92 48 0 23 R d0 0:01 ps -laxtd0 + + % (nice ps lx) + ... Shows no nice. + % (nice ps lx;date) + ... Works. + % (nohup sleep 999)& + ... Doesn't ignore SIGHUP. + % (nohup sleep 999;date)& + ... Works. + % echo `nice ps lx >/dev/tty` + ... Shows no nice. + % echo `nice ps lx >/dev/tty;date` + ... Works. + % echo `nohup sleep 999` + ... Doesn't ignore SIGHUP. + % echo `nohup sleep 999;date` + ... Works. + +>From idallen +Subject: you can't nest back-quotes + % echo ` echo \`pwd\` ` + Unmatched `. + +From: idallen (Ian! D. Allen) +Subject: GLOB not applied to names in setenv or unsetenv + % setenv `echo abc` def + + It doesn't set abc, it sets the nasty variable: `echo abc` + + % unsetenv `echo abc def ghi` + + Doesn't unset abc or def or ghi + +>From idallen Thu Mar 15 09:48:35 1984 +Subject: Stopping jobs in list of command names throws away the rest. + % a ; b ; c + CSH documents that if you stop B, C will immediately start. + It doesn't. The rest of the list gets thrown away. + +From: idallen (Ian! D. Allen) +Subject: Stopping jobs in source'd file aborts the rest of the file. + With the file TEST containing: + + mail + echo Hi There you never see this + + and typing + + % source TEST + + and then using ^Z to stop MAIL, the rest of the TEST file is abandoned. + This is especially annoying in one's .login or .cshrc. + +>From idallen +Subject: CSH doesn't handle EXIT when it sees it. + % date; exit 99 ; date ; date + Wed Mar 14 19:21:51 EST 1984 + Wed Mar 14 19:21:52 EST 1984 + Wed Mar 14 19:21:53 EST 1984 + + The shell doesn't flush pending input when the EXIT is seen. + The shell then exits with status 0 instead of status 99. + +>From idallen +Subject: CSH mishandles suspend in subshells. + % ( date; suspend; date ) + Sun Mar 4 01:28:28 EST 1984 + + Suspended + % fg + ( date; suspend; date ) + + Suspended (tty input) + ...and you can never get it started again. + +>From idallenSun Mar 18 01:28:16 +Subject: ECHO mis-handles interrupts and errors in back-quotes + % echo `sleep 999` + + [1] 24244 + % jobs + [1] Interrupt ` ... ` + + Note the inability of CSH to tell you the command name used inside + the back-quotes. + +>From idallen +Subject: CSH botches $#X where X is environment var + % echo $#path + 4 + % echo $#PATH + /usr/ucb:/bin:/usr/bin:/usr/public + +>From idallen Wed Apr 18, 1984 +Subject: Inconsistent handling of variables + The manual says that "set x=word" assigns a single word to x. + To assign multiple words, one is supposed to use "set x=(words)". + But, CSH allows "set x=`date`", which sets x to the many words + resulting from `date`, and $x[1] prints "Mon". + + One observes that if x and y are single-word variables, the statements: + % set x=word2 + % set y[1]=word2 + are identical; both replace the contents of the variable with word2. + + But, you can't assign a word to y[1] if y doesn't exist, even though + you can (of course) assign a word to plain "y" if y doesn't exist. + +>From idallen(Ian! D. Allen) +Subject: extra next level when nested single-line IF line ends in THEN + Any IF line that ends in THEN is taken as another nesting level, and + requires a corresponding ENDIF: + + if ( 0 ) then + if ( 0 ) echo This line ends with then + endif + echo You do not see this. + endif # This shouldn't be needed; but it is. + echo Now you do. + +>From idallen +Subject: EXEC doesn't close the file descriptors + + /* This program will demonstrate that CSH leaves internal + * file descriptors open across an EXEC built-in command. + * + * % exec ./a.out + */ + main() + { + int i; + + for( i=0; i < 20; i++ ){ + printf("%d = %d\n", i, isatty(i) ); + } + } + + The output shows: + > exec ./a.out + 0 = 1 + 1 = 1 + 2 = 1 + 3 = 1 + 4 = 1 + 5 = 1 + 6 = 0 + 7 = 0 + 8 = 0 + 9 = 0 + ... + +From: idallen +Subject: can't test success of CD, CHDIR, etc. + cd nosuchdir || echo CD failed + cd nosuchdir && echo CD failed + cd nosuchdir ; echo CD failed + + None of the above work in CSH. + +>From idallen Mon Dec 16 21:40:32 1985 +Subject: GLOB loses memory on directories + echo /*/*/* + + If you interrupt the above GLOB, CSH loses memory. + +From: idallen +Subject: C Shells don't parse when looking for labels. + The shells just look at the first word on each line. You can + cause the shell to branch in to the middle of a HERE document: + + #!/bin/csh -f + onintr quit + sleep 999 + cat << EOF + quit: + echo Amazing how this prints. + exit 88 # this exit is taken when break is hit + EOF + quit: + echo You never get here. + +>From arwhite Thu Aug 26 13:53:58 1982 +Subject: CSH/Bourne shell inconsistent newlines + "`command`" deletes newlines from the command in the cshell, not in the + Bourne shell. + +>From idallen (Ian! D. Allen) +Subject: aliases aren't seen after redirection + % date >x + % >x date + + % alias foo date + % foo >x + % >x foo + foo: Command not found. + +>From idallen (Ian! D. Allen) +Subject: $< misbehaves in pipes + + % date | /bin/echo aaa $< bbb + abcdef + aaa a bbb + % bcdef + bcdef: Command not found. + +>From chris@pixutl.UUCP (chris) Fri Oct 5 14:01:13 1984 +Subject: bug in CSH (history) + There are a couple of bugs in the 'history' command of /bin/csh (and + offspring, such as newcsh): + + 1) The maximum number of arguments to the history command is set to 2. + % history -h -r 2 # fails + +>From idallen +Subject: C Shell expression operators explained + + Some odd CSH context-sensitive features. There is ambiguity on how + !~ != and !( should be interpreted: + + 1 - % ~idallen/study # a valid command line + 2 - % !~ # doesn't work + 3 - % echo " !~ " # no history + 4 - % if ( abc !~ def ) echo hi + + 1 - % =xxx # a valid command line + 2 - % != # doesn't work + 3 - % echo " != " # no history + 4 - % if ( 1 != 2 ) echo hi + + 1 - % ( date ) # a valid command line + 2 - % !( # doesn't work + 3 - % echo " !( " # no history + 4 - % if ( !( 1 + 1 ) ) echo hi + + The C Shell parser isn't clever enough to distinguish any of cases 2, + 3, or 4, so it always behaves as if the character pair was part of an + expression, not a history substitution. + +-------------------------------------------------------------------------------- +| *NOT A BUG* +| >From idallenThu Jun 27 08:20:08 1985 +| Subject: Re: Using > vs. | on shell built-in commands. +| +| CSH cannot put the output of the JOBS command into a pipe. In fact, +| the output is going into the pipe, but the output is empty. You +| couldn't know this, but these shells implement piped built-in commands +| by forking the shell to create an independent process for which the +| main shell can wait. But the internal process table is cleaned +| out after a fork(), since a forked shell is just like a subshell +| and must have its own clean process table in which to enter its own +| running jobs. So by the time the JOBS command executes, it's in a +| child shell that has no jobs running. Hence, the output is empty. +| "echo `jobs`" and "( jobs )" are both empty, for the same reason. +-------------------------------------------------------------------------------- + +From: jjg@security.UUCP (Jeff Glass) +Subject: csh and I/O redirection + + put these four lines in a file, say cshtest : + + #! /bin/csh -f + cat << END | ( sh & ) + echo hi there + END + + ( the intent is to send some commands to sh to be executed in the + background, without csh printing the job number of the sh. ) + + now, from csh, enter the command + + source cshtest + + and note that you see the message "hi there". + now enter the commands + + chmod +x cshtest + ./cshtest + + and you get no output. + + removing either the parentheses or the ampersand causes the message + to appear, but not quietly in the background. I don't understand why + it works when source'd but not when exec'd, either. + +-------------------------------------------------------------------------------- +| *FIXED* +| From: matt@prism.UUCP +| Subject: Pointless csh puzzle +| +| Here's a pointless little csh puzzle: In the c-shell, it is +| possible to set and environment variable whose name consist of +| more than one word, in the obvious way: +| +| % setenv "FOO BAR" quux +| +| The printenv builtin will show it residing happily in the +| environment. Now for the puzzle: can anyone find a way to GET +| TO the value of this variable, using only csh builtins? In +| other words, is there an such that +| +| % echo +| +| will print "quux" on the screen, where is formed +| only from csh commands? +-------------------------------------------------------------------------------- + +-------------------------------------------------------------------------------- +| *FIXED* +| >From tim@ISM780B.UUCP Wed Nov 20 18:00:00 1985 +| Subject: Re: C-shell puzzles +| +| Here's another good C shell quirk: +| +| $ echo foo +| foo +| $ repeat 3 echo foo +| foo +| foo +| foo +| $ repeat 3 repeat 3 echo foo +| foo +| foo +| foo +| foo +| foo +| $ repeat $N repeat $M echo foo # $N and $M are integers +| [ $N + $M - 1 foo's ] +| $ repeat $N1 repeat $N2 ... repeat $Nk echo foo +| [ $N1 + $N2 + ... + $Nk - k + 1 foo's ] +| $ +-------------------------------------------------------------------------------- + +>From pur-ee!uiucdcsb!liberte Mon Dec 30 23:20:31 EST 1985 +Subject: Csh null strings + + There are at least two different-sized null strings in csh. + But sometimes they are equal anyway. + + % set x = "" + % set y = "`echo`" + % echo $#x $#y + 1 0 + + % set x = + % set y = `echo` + % echo $#x $#y + 1 0 + + % set x = ("") + % set y = ("`echo`") + % echo $#x $#y + 1 0 + + % set x = () + % set y = (`echo`) + % echo $#x $#y + 0 0 + + % if (() == "`echo`") echo huh + % if (() == ("`echo`")) echo huh + huh + % if ("" == ("`echo`")) echo huh + % if ("" == "`echo`") echo "huh?" + huh? + + +>On Jul 18, 8:15am, mark@peek.org (Mark Peek) wrote: +>-- Subject: Updated tcsh-6.12.0 release date? +> +>| Hi Christos, +>| I know I've been (part of) the cause of slipping the release date out +>| for tcsh-6.12.0. :-) Do you have an updated date for releasing it? +>| I'm trying to determine whether it will fit in the time frame for +>| shipment with the next FreeBSD 5.0-DP release. +> +>I hope to release it sometime next week. There are only minor changes in it. +>Is that convenient, or would you like me to push it more? + +I sent a note to the FreeBSD release engineers and they're inclined +to hold off on including the new version in the release which they're +branching later today. If DP2 slips out a bit they might consider +including it. I'd say go ahead with your current schedule and I'll +import it whenever it is available. I definitely will be including it +into the next -stable FreeBSD 4.7 release. + +BTW, one of the release engineers pointed out a bug with using +jobcmd. If you use the example in the book to update an xterm and +then run something like + grep bar `cat file.list` +It screws up the xterm title bar containing "Faulty alias 'jobcmd' +removed" plus the list of files from the cat command. + +The good news is that I was able to reproduce this at home last +night. The bad news is that it is working fine right now here at +work. Oh wait, let me log in remotely and look at the alias I was +using...got it! The command fails if you use: + + alias jobcmd 'echo -n "^[]2;\!#^G"' + +but works fine if you use: (note the switch of ' and " quotes) + + alias jobcmd "echo -n '^[]2;\!#^G'" + +Note: I used the above by vi'ing a file and sourcing it from the shell. + +If you can confirm, I think this just needs to be updated in the man page. + +>Thanks for all the help BTW... + +No problem. I like fixing bugs and contributing code...especially for +a great piece of software like tcsh that I use *all* the time. Thank +you for keeping it going! + +Mark Modified: vendor/tcsh/dist/Fixes ============================================================================== --- vendor/tcsh/dist/Fixes Mon Feb 20 00:30:20 2012 (r231920) +++ vendor/tcsh/dist/Fixes Mon Feb 20 00:53:59 2012 (r231921) @@ -1,3 +1,147 @@ + 6. V6.18.01 - 20120214 + 5. fix interruptible wait again + 4. ignore bogus compiler overflow message + 3. cleanup ifdefs in utmp code, and provide default array entries + 2. Ignore #machine entries in host.defs + 1. Detect missing ) in gethost.c (Corinna Vinschen) + +104. V6.18.00 - 20120114 +103. remove unused variables. +102. Make gethost use definitions for x __x__ and __x automatically. +101. More utmp fixes +100. V6.17.10 - 20120105 + 99. Add more FreeBSD/NetBSD machines + 98. Add portability wrapper for gencat + 97. Fix warning for write in SYSMALLOC systems. + 96. V6.17.09 - 20120102 + 95. revert gencat handling to pre-cygwin fixes (without the env settings) + 94. remove stray endutent() + 93. V6.17.08 - 20111230 + 92. Remove - from gencat + 91. Provide support for malloc_usable_size() so that linux works again + without SYSMALLOC + 90. Add support for FreeBSD's utmpx. + 89. V6.17.07 - 20111227 + 88. Fix debian bug #645238: tcsh segfaults when prompt includes %j and + there are more than 10 jobs. + 87. PR/155: Default $anyerror to set for backward compatibility + 86. PR/149: Don't print -1 in %j (Vojtech Vitek) + 85. handle -- on chdir commands as the end of options processing so that + they can process a directory like -x without resorting to ./-x + (Andrew Stevenson) + 84. Handle write(2) returning ENOENT from SoFS, thanks ++HAL (Robert Byrnes) + 83. PR/38: Null check for jobs (Kurt Miller) + 82. Fix spelling correction correcting ./foo -> ../foo2 (jean-luc leger) + 81. PR/120: string0 in filetest does not have enough space. + 80. V6.17.06 - 20110415 + 79. PR/110: Add $anyerror to select behavior. Default to the new one. + 78. Don't try to spell commands that are correct (Rouben Rostamian) + [./tcsh -f; set path=($path 2); mkdir foo2; cd foo2; touch foo; + chmod +x foo; set correct=cmd; ./foo -> ../foo] + 77. Don't push the syntax struct on the cleanup stack, because on foo;bar + if foo fails, we will free bar prematurely (Ben Miller) + 76. Avoid infinite loop while trying to print the pid of a dying process + to a closed file (Bob Arendt) + 75. Handle completion of ${ variables (Anthony Mallet) + 74. Add --disable-nls-catalogs (Corinna Vinschen) + 73. convert message catalogs to UTF-8 (Werner Fink) + 72. check that the NLS path works before setting $NLSPATH. + 71. use SYSMALLOC for GLIBC (Werner Fink) + 70. use mallinfo for SYSMALLOC (Corinna Vinschen) + 69. V6.17.05 - 20110201 + 68. Use mkstemp() if there for here docs (Werner Fink) + 67. Fix handling of errors and exit values in builtins (Werner Fink) + 66. Better pty name detection (Werner Fink) + 65. Enable NLS catalogs on Cygwin (Corinna Vinschen) + 64. NLSPATH handling fixes (Corinna Vinschen) + 63. Avoid infrequent exit when tcsh cd's into a non-existent directory + https://bugzilla.novell.com/show_bug.cgi?id=293395 (Werner Fink) + 62. Don't try to spell check full path binaries that are correct because + they can cause hangs when other nfs partitions are hung. (Werner Fink) + 61. Avoid nested interrupts when exiting causing history writing to fail + https://bugzilla.novell.com/show_bug.cgi?id=331627 (Werner Fink) + 60. Instead of giving an error or ignoring lines with missing eol at eof, + process them. + 59. Avoid leaking fd's in mail check (Werner Fink) + 58. Add cygwin_xcrypt() (Corinna Vinschen) + 57. Recognize i686 (Corinna Vinschen) + 56. Rename cygwin32 to cygwin and bring it up-to-date with modern cygwin + settings (Corinna Vinschen) + 55. Avoid double slashes in cdpath (Corinna Vinschen) + 54. V6.17.04 - 20110118 + 53. Revert PR/110, breaks the test suite. + 52. V6.17.03 - 20110117 + 51. PR/102: Complain on input files with missing trailing \n + 50. PR/104: If atime == mtime we don't have new mail. + 49. PR/113: Don't allow illegal variable names to be set. + 48. PR/112: don't set $REMOTEHOST on the local machine. + 47. PR/110: exit status of the pipeline should be the status of the last + command. + 46. Android support (Corinna Vinschen) + 45. Add AUTOSET_KANJI which works around the Shift-JIS encoding that + translates unshifted 7 bit ASCII (Werner Fink) + 44. Handle mb{r,}towc() returning 0 by setting the return value to NUL + (Jean-Luc Leger) + 43. PR/109: make wait interruptible (Vojtech Vitek) + 42. resource limit fixes: signed vs. unsigned, megabyte issue, doc issues + (Robert Byrnes) + 41. remove .bat and .cmd handling for executables on cygwin (Corinna Vinschen) + 40. Don't echo history while history -L or history -M + 39. Check for EOS before ** from Greg Dionne + 38. Don't fork in backeval from Bryan Mason + 37. Better globstar support from Greg Dionne + 36. Error out when processing the last incomplete line instead of silently + ignoring it (Anders Kaseorg) + 35. Fix SEGV from echo `` + 34. Better fixes for histchars and promptchars (nargs) + 33. Fix win32 issue calling fmalloc/ffree from non-thread-safe context. + (Fabio Fabbri) + 32. V6.17.02 - 20100512 + 31. PR/79: nargs: Better handling for promptchars. + 30. PR/97: Add parseoctal to retain compatibility with previous versions (Jim + Zajkowski) + 29. PR/84: Performance fixes for large history merges (add + hashtable (Ted Anderson) + 28. Revert previous #23; people should use $histlit if they want this + feature. + 27. Don't kill "hup" background jobs when a child of the shell exits. + From Debian. + 26. Ignore \r\n in the command line options for OS's that don't strip + these from #!; from Debian + 25. Fix enhanced missing patch (Greg Dionne) + 24. Callers of rt_mbtowc don't grok -2 as a return. Return -1 for now. + (Corinna Vinschen) + 23. Turn HistLit on while recording history to avoid \!\! losing its \. + From Debian + 22. set autoexpand; set histchars="";\n crash. From Debian + 21. V6.17.01 - 20100506 + 20. unset verbose while we are reading the history file to avoid echoing + to the terminal. (Jeffrey Bastian) + 19. globstar addition, Enhance addition, euid, euser, gid variables + (Greg Dionne) + 18. Make 'e' in vi mode work like 'b' - use wordchars (Alistair Crooks) + 17. Handle UTF-16 surrogates (Corinna Vinschen) + 16. Make tcsh work on systems where sizeof(wchar_t) == 2 (Corinna Vinschen) + 15. Better support for Solaris >= 2.9 (Thomas Uhle) + 14. Change internal expression calculations to long long so that we can + deal with > 32 bit time, inodes, uids, file sizes etc. + 13. Add new linux resource limits. + 12. Don't print 'Exit X' when printexitvalue is set in `` expressions + (Jeff Bastian) + 11. Add more LS_COLORS vars (M.H. Anderson) + 10. Reduce whitespace in Makefile (Don Estabrook) + 9. Manual page fixes (Alan R. S. Bueno) + 8. Remove history in loops bug from the documentation (Holger Weiss) + 7. Add autorehash (Holger Weiss) + 6. Add history.at (Ted Anderson) + 5. Better NLSPATH handling (Norm Jacobs) + 4. Fix hostname building from utmp (Cyrus Rahman) + 3. Handle pending signals before flush so that the the history file does + not get truncated. (Ted Anderson) + 2. Fix AsciiOnly setting that broke 8 bit input. (Juergen Keil) + 1. remember to closedir in mailchk (from Werner Fink, reported by + David Binderman) + 21. V6.17.00 - 20090710 20. Fix dataroot autoconf issue. 19. Fix directory stuff for unit tests. Modified: vendor/tcsh/dist/Imakefile ============================================================================== --- vendor/tcsh/dist/Imakefile Mon Feb 20 00:30:20 2012 (r231920) +++ vendor/tcsh/dist/Imakefile Mon Feb 20 00:53:59 2012 (r231921) @@ -1,5 +1,5 @@ XCOMM -XCOMM $tcsh: Imakefile,v 1.86 2007/03/19 23:25:02 christos Exp $ +XCOMM $tcsh: Imakefile,v 1.87 2010/01/28 19:01:05 christos Exp $ XCOMM XCOMM Imakefile for tcsh 6.12 XCOMM Marc Horowitz, MIT SIPB @@ -93,7 +93,11 @@ ones. Please send in your fixes and add # if (OSMinorVersion < 6) # define ConfigH sol24 # else -# define ConfigH sol26 +# if (OSMinorVersion < 9) +# define ConfigH sol26 +# else +# define ConfigH sol29 +# endif # endif # endif # endif Modified: vendor/tcsh/dist/Makefile.in ============================================================================== --- vendor/tcsh/dist/Makefile.in Mon Feb 20 00:30:20 2012 (r231920) +++ vendor/tcsh/dist/Makefile.in Mon Feb 20 00:53:59 2012 (r231921) @@ -1,4 +1,4 @@ -# $tcsh: Makefile.in,v 3.40 2009/06/24 22:09:05 christos Exp $ +# $tcsh: Makefile.in,v 3.49 2011/02/05 17:35:31 christos Exp $ # Makefile.in 4.3 6/11/83 # # C Shell with process control; VM/UNIX VAX Makefile @@ -26,22 +26,27 @@ CF=-c CPPFLAGS=-I. -I$(srcdir) LFLAGS= -#LFLAGS= -Zn10000 # hpux lint +# hpux lint +#LFLAGS= -Zn10000 -CFLAGS = @CFLAGS@ # This is set by autoconf. -#CFLAGS= -g # debug -#CFLAGS= -O # production -#CFLAGS= # Broken optimizers.... +# This is set by autoconf: +CFLAGS = @CFLAGS@ +# debug: +#CFLAGS= -g +# production: +#CFLAGS= -O +# Broken optimizers.... +#CFLAGS= #CFLAGS= -g -pg -DPROF #CFLAGS= -O -pg -DPROF # gcc 1.00-1.37 -#CFLAGS= -O -finline-functions -fstrength-reduce +#CFLAGS= -O -finline-functions -fstrength-reduce # gcc 1.37-1.40 -#CFLAGS= -O -fcombine-regs -finline-functions -fstrength-reduce +#CFLAGS= -O -fcombine-regs -finline-functions -fstrength-reduce # add -msoft-float for 68881 machines. # gcc 2.0 @@ -67,8 +72,10 @@ CFLAGS = @CFLAGS@ # This is set by auto #CFLAGS= -O -Mnodebug -Mnoperfmon # DEC Alpha OSF/1 -#CFLAGS= -O2 -Olimit 2000 ## Normal Optimization -#CFLAGS= -O3 -Olimit 2000 ## Full Optimization - may not work +## Normal Optimization +#CFLAGS= -O2 -Olimit 2000 +## Full Optimization - may not work +#CFLAGS= -O3 -Olimit 2000 #CF=-j #SUF=u #.SUFFIXES: .u @@ -77,7 +84,8 @@ CFLAGS = @CFLAGS@ # This is set by auto # global optimizer! (-O3). # On SGI 4.0+ you need to add -D__STDC__ too. #CFLAGS= -O3 -#CFLAGS= -O3 -Olimit 2000 ## Ultrix 4.2a +## Ultrix 4.2a +#CFLAGS= -O3 -Olimit 2000 #CF=-j #SUF=u #.SUFFIXES: .u ## Ultrix and gnu-make need that @@ -110,14 +118,14 @@ CFLAGS = @CFLAGS@ # This is set by auto # CFLAGS= -O3 # SINIX RMx00 -#CFLAGS= -O # -D_POSIX_SOURCE # -kansi +#CFLAGS= -O# -D_POSIX_SOURCE# -kansi # Apollo's with cc [apollo builtins don't work with gcc] # and apollo should not define __STDC__ if it does not have # the standard header files. RT's (aos4.3) need that too; # you might want to skip the -O on the rt's... Not very wise. # AIX/ESA needs -D_IBMESA on command line (this may disappear by GA) -#DFLAGS=-U__STDC__ +#DFLAGS=-U__STDC__ #DFLAGS=-D_IBMESA # On aix2.2.1 we need more compiler space. #DFLAGS=-Nd4000 -Nn3000 @@ -142,17 +150,25 @@ DFLAGS = -D_PATH_TCSHELL='"${bindir}/tcs ################################################################ ## LDFLAGS. Define something here if you need to ################################################################ -LDFLAGS= @LDFLAGS@ ## This is set by autoconf. -#LDFLAGS= ## The simplest, suitable for all. -#LDFLAGS= -s ## Stripped. Takes less space on disk. -#LDFLAGS= -s -n ## Pure executable. Spares paging over -# ## the network for machines with local -# ## swap but external /usr/local/bin . -#LDFLAGS= -s -n -Bstatic ## Without dynamic linking. (SunOS/cc) -#LDFLAGS= -s -n -static ## Without dynamic linking. (SunOS/gcc) -#LDFLAGS= -Wl,-s,-n ## Stripped, shared text (Unicos) -#LDFLAGS= -s -static ## Link statically. (linux) -#LDFLAGS= -s -N ## Impure executable (linux) +## This is set by autoconf: +LDFLAGS= @LDFLAGS@ +## The simplest, suitable for all. +#LDFLAGS= +## Stripped. Takes less space on disk. +#LDFLAGS= -s +## Pure executable. Spares paging over the network for machines with +## local swap but external /usr/local/bin . +#LDFLAGS= -s -n +## Without dynamic linking. (SunOS/cc) +#LDFLAGS= -s -n -Bstatic +## Without dynamic linking. (SunOS/gcc) +#LDFLAGS= -s -n -static +## Stripped, shared text (Unicos) +#LDFLAGS= -Wl,-s,-n +## Link statically. (linux) +#LDFLAGS= -s -static +## Impure executable (linux) +#LDFLAGS= -s -N ################################################################ ## SBINLDFLAGS. Flags to build a tcsh suitable for installation in @@ -164,53 +180,100 @@ SBINLDFLAGS=-Wl,-R/etc/lib,-I/etc/lib/ld ################################################################ ## LIBES. Pick one, or roll your own. ################################################################ -LIBES= @LIBS@ ## This is set by autoconf. -#LIBES= -ltermcap ## BSD style things -#LIBES= -ltermcap ## SunOS, HP-UX, pyramid -#LIBES= -ltermcap ## Linux -#LIBES= -ltermcap -lshadow ## Linux with PW_SHADOW -#LIBES= -ltermcap -lsec ## Tek XD88/10 (UTekV) with PW_SHADOW -#LIBES= -ltermcap -lsec ## Motorola MPC (sysV88) with PW_SHADOW -#LIBES= -ltermcap -lcs ## Mach -#LIBES= -ltermcap -lbsd ## DEC osf1 on the alpha -#LIBES= -ltermcap -lbsd ## Intel paragon -#LIBES= -ltermcap -lbsd ## Clipper intergraph -#LIBES= -ltermcap -lseq ## Sequent's Dynix -#LIBES= -ltermcap -lauth ## Ultrix with Enhanced Security -#LIBES= -ltermcap -ldir -lx ## Xenix 386 style things -#LIBES= -ltermcap -lndir -lsocket -ljobs ## masscomp RTU6.0 -#LIBES= -lcurses ## AIX on the rt -#LIBES= -lcurses ## TitanOS on the stellar -#LIBES= -ltermlib -lsocket -lnsl ## SysV4 w/o BSDTIMES or Solaris 2 -#LIBES= -lcurses ## SysV3 w/o networking -#LIBES= -lcurses -lnet ## SysV3 with networking -#LIBES= -lcurses -ldir ## SysV2 w/o networking & dirlib -#LIBES= -lcurses -ldir -lnet ## SysV2 with networking & dirlib -#LIBES= -lcurses -lbsd ## AIX on the IBM 370 or rs6000 or ps2 -#LIBES= -lcurses -lbsd ## ETA10 -#LIBES= -lcurses -lbsd ## Irix3.1 on the SGI-IRIS4D -#LIBES= -lcurses -lbsd -lc_s ## Irix3.3 on the SGI-IRIS4D w/o yp -#LIBES= -lcurses -lsun -lbsd -lc_s ## Irix3.3 on the SGI-IRIS4D with yp -#LIBES= -lcurses -lsocket -lbsd ## Amdahl UTS 2.1 -#LIBES= -lcurses -lsocket ## Intel's hypercube. -#LIBES= -lcurses -lsocket ## ns32000 based Opus. -#LIBES= -lcurses -lcposix ## ISC 2.2 without networking -#LIBES= -lcposix -lc_s -lcurses -linet ## ISC 2.2 with networking -#LIBES= -lcurses -lsec -lc_s ## ISC 2.0.2 without networking -#LIBES= -lcurses -linet -lsec -lc_s ## ISC 2.0.2 with networking -#LIBES= -lcurses -lintl -lcrypt ## SCO SysVR3.2v2.0 -#LIBES= -lcurses -lintl -lsocket -lcrypt ## SCO+ODT1.1 -#LIBES= -lposix -ltermcap ## A/UX 2.0 -#LIBES= -lposix -ltermcap -lc_s ## A/UX 3.0 -#LIBES= -ldirent -lcurses ## att3b1 cc w/o shared lib & dirlib -#LIBES= -shlib -ldirent -lcurses ## att3b1 gcc with shared lib & dirlib -#LIBES= -ltermlib -lsocket -lnsl -lc /usr/ucblib/libucb.a ## SysV4 with BSDTIMES -#LIBES= -lcurses -lnsl -lsocket -lc /usr/ucblib/libucb.a ## Stardent Vistra -#LIBES= -ltermc ## emx under OS/2 -#LIBES= ## Minix, VMS_POSIX -#LIBES= -ltermcap -lcrypt ## Multiflow -#LIBES= -ltermcap -lcrypt ## NetBSD -#LIBES= -lcurses ## DDE Supermax +## This is set by autoconf. +LIBES= @LIBS@ +## BSD style things +#LIBES= -ltermcap +## SunOS, HP-UX, pyramid +#LIBES= -ltermcap +## Linux +#LIBES= -ltermcap +## Linux with PW_SHADOW +#LIBES= -ltermcap -lshadow +## Tek XD88/10 (UTekV) with PW_SHADOW +#LIBES= -ltermcap -lsec +## Motorola MPC (sysV88) with PW_SHADOW +#LIBES= -ltermcap -lsec +## Mach +#LIBES= -ltermcap -lcs +## DEC osf1 on the alpha +#LIBES= -ltermcap -lbsd +## Intel paragon +#LIBES= -ltermcap -lbsd +## Clipper intergraph +#LIBES= -ltermcap -lbsd +## Sequent's Dynix +#LIBES= -ltermcap -lseq +## Ultrix with Enhanced Security +#LIBES= -ltermcap -lauth +## Xenix 386 style things +#LIBES= -ltermcap -ldir -lx +## masscomp RTU6.0 +#LIBES= -ltermcap -lndir -lsocket -ljobs +## AIX on the rt +#LIBES= -lcurses +## TitanOS on the stellar +#LIBES= -lcurses +## SysV4 w/o BSDTIMES or Solaris 2 +#LIBES= -ltermlib -lsocket -lnsl +## SysV3 w/o networking +#LIBES= -lcurses +## SysV3 with networking +#LIBES= -lcurses -lnet +## SysV2 w/o networking & dirlib +#LIBES= -lcurses -ldir +## SysV2 with networking & dirlib +#LIBES= -lcurses -ldir -lnet +## AIX on the IBM 370 or rs6000 or ps2 +#LIBES= -lcurses -lbsd +## ETA10 +#LIBES= -lcurses -lbsd +## Irix3.1 on the SGI-IRIS4D +#LIBES= -lcurses -lbsd +## Irix3.3 on the SGI-IRIS4D w/o yp +#LIBES= -lcurses -lbsd -lc_s *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-vendor@FreeBSD.ORG Mon Feb 20 00:56:33 2012 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3EE7B1065670; Mon, 20 Feb 2012 00:56:33 +0000 (UTC) (envelope-from mp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 11F068FC18; Mon, 20 Feb 2012 00:56:33 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q1K0uWSn023663; Mon, 20 Feb 2012 00:56:32 GMT (envelope-from mp@svn.freebsd.org) Received: (from mp@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1K0uWGu023662; Mon, 20 Feb 2012 00:56:32 GMT (envelope-from mp@svn.freebsd.org) Message-Id: <201202200056.q1K0uWGu023662@svn.freebsd.org> From: Mark Peek Date: Mon, 20 Feb 2012 00:56:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r231922 - vendor/tcsh/6.18.01 X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 20 Feb 2012 00:56:33 -0000 Author: mp Date: Mon Feb 20 00:56:32 2012 New Revision: 231922 URL: http://svn.freebsd.org/changeset/base/231922 Log: Tag tcsh 6.18.01 release. Added: vendor/tcsh/6.18.01/ - copied from r231921, vendor/tcsh/dist/ From owner-svn-src-vendor@FreeBSD.ORG Sat Feb 25 00:16:01 2012 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6B9A6106564A; Sat, 25 Feb 2012 00:16:01 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 589D38FC08; Sat, 25 Feb 2012 00:16:01 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q1P0G1JH090163; Sat, 25 Feb 2012 00:16:01 GMT (envelope-from mm@svn.freebsd.org) Received: (from mm@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1P0G0l2090135; Sat, 25 Feb 2012 00:16:00 GMT (envelope-from mm@svn.freebsd.org) Message-Id: <201202250016.q1P0G0l2090135@svn.freebsd.org> From: Martin Matuska Date: Sat, 25 Feb 2012 00:16:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r232133 - in vendor/libarchive/dist: . cpio cpio/test libarchive libarchive/test tar tar/test X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 25 Feb 2012 00:16:01 -0000 Author: mm Date: Sat Feb 25 00:16:00 2012 New Revision: 232133 URL: http://svn.freebsd.org/changeset/base/232133 Log: Update libarchive's vendor dist to latest changes in release branch. Git branch: release Git commit: e2cc36190d7d733b3ac6744ec860d09776c9da02 Obtained from: https://github.com/libarchive/libarchive.git Modified: vendor/libarchive/dist/CMakeLists.txt vendor/libarchive/dist/configure.ac vendor/libarchive/dist/cpio/cpio.c vendor/libarchive/dist/cpio/test/main.c vendor/libarchive/dist/libarchive/archive_options.c vendor/libarchive/dist/libarchive/archive_read.c vendor/libarchive/dist/libarchive/archive_read_data_into_fd.c vendor/libarchive/dist/libarchive/archive_read_disk_posix.c vendor/libarchive/dist/libarchive/archive_read_set_options.c vendor/libarchive/dist/libarchive/archive_read_support_format_cab.c vendor/libarchive/dist/libarchive/archive_read_support_format_cpio.c vendor/libarchive/dist/libarchive/archive_read_support_format_lha.c vendor/libarchive/dist/libarchive/archive_read_support_format_rar.c vendor/libarchive/dist/libarchive/archive_read_support_format_tar.c vendor/libarchive/dist/libarchive/archive_read_support_format_zip.c vendor/libarchive/dist/libarchive/archive_string.c vendor/libarchive/dist/libarchive/archive_windows.c vendor/libarchive/dist/libarchive/archive_windows.h vendor/libarchive/dist/libarchive/archive_write_add_filter_bzip2.c vendor/libarchive/dist/libarchive/archive_write_add_filter_gzip.c vendor/libarchive/dist/libarchive/archive_write_add_filter_xz.c vendor/libarchive/dist/libarchive/archive_write_disk_windows.c vendor/libarchive/dist/libarchive/archive_write_set_format_7zip.c vendor/libarchive/dist/libarchive/archive_write_set_format_cpio.c vendor/libarchive/dist/libarchive/archive_write_set_format_cpio_newc.c vendor/libarchive/dist/libarchive/archive_write_set_format_gnutar.c vendor/libarchive/dist/libarchive/archive_write_set_format_iso9660.c vendor/libarchive/dist/libarchive/archive_write_set_format_mtree.c vendor/libarchive/dist/libarchive/archive_write_set_format_pax.c vendor/libarchive/dist/libarchive/archive_write_set_format_ustar.c vendor/libarchive/dist/libarchive/archive_write_set_format_xar.c vendor/libarchive/dist/libarchive/archive_write_set_format_zip.c vendor/libarchive/dist/libarchive/archive_write_set_options.c vendor/libarchive/dist/libarchive/test/main.c vendor/libarchive/dist/libarchive/test/test_archive_read_set_options.c vendor/libarchive/dist/libarchive/test/test_archive_write_set_options.c vendor/libarchive/dist/libarchive/test/test_write_compress_program.c vendor/libarchive/dist/tar/bsdtar.c vendor/libarchive/dist/tar/test/main.c vendor/libarchive/dist/tar/test/test_option_s.c Modified: vendor/libarchive/dist/CMakeLists.txt ============================================================================== --- vendor/libarchive/dist/CMakeLists.txt Fri Feb 24 23:15:21 2012 (r232132) +++ vendor/libarchive/dist/CMakeLists.txt Sat Feb 25 00:16:00 2012 (r232133) @@ -607,6 +607,37 @@ ELSE(LIBXML2_FOUND) ENDIF(LIBXML2_FOUND) # +# Find Libregex +# +FIND_PATH(REGEX_INCLUDE_DIR regex.h) +IF(REGEX_INCLUDE_DIR) + CHECK_FUNCTION_EXISTS_GLIBC(regcomp HAVE_REGCOMP_LIBC) + # + # If libc does not provide regex, find libregex. + # + IF(NOT HAVE_REGCOMP_LIBC) + FIND_LIBRARY(REGEX_LIBRARY regex) + IF(REGEX_LIBRARY) + SET(CMAKE_REQUIRED_LIBRARIES ${REGEX_LIBRARY}) + CHECK_FUNCTION_EXISTS_GLIBC(regcomp HAVE_REGCOMP_LIBREGEX) + IF(HAVE_REGCOMP_LIBREGEX) + LIST(APPEND ADDITIONAL_LIBS ${REGEX_LIBRARY}) + # + # If regex.h is not found, retry looking for regex.h at + # REGEX_INCLUDE_DIR + # + IF(NOT HAVE_REGEX_H) + UNSET(HAVE_REGEX_H CACHE) + INCLUDE_DIRECTORIES(${REGEX_INCLUDE_DIR}) + SET(CMAKE_REQUIRED_INCLUDES ${REGEX_INCLUDE_DIR}) + LA_CHECK_INCLUDE_FILE("regex.h" HAVE_REGEX_H) + ENDIF(NOT HAVE_REGEX_H) + ENDIF(HAVE_REGCOMP_LIBREGEX) + ENDIF(REGEX_LIBRARY) + ENDIF(NOT HAVE_REGCOMP_LIBC) +ENDIF(REGEX_INCLUDE_DIR) + +# # Check functions # IF ("CMAKE_C_COMPILER_ID" MATCHES "^GNU$") Modified: vendor/libarchive/dist/configure.ac ============================================================================== --- vendor/libarchive/dist/configure.ac Fri Feb 24 23:15:21 2012 (r232132) +++ vendor/libarchive/dist/configure.ac Sat Feb 25 00:16:00 2012 (r232133) @@ -322,6 +322,15 @@ if test "x$ac_cv_header_libxml_xmlreader fi fi +AC_ARG_WITH([libregex], + AS_HELP_STRING([--without-libregex], [Don't build support for regex through libregex])) + +if test "x$with_libregex" != "xno"; then + if test "x$ac_cv_header_regex_h" != "xno"; then + AC_CHECK_FUNC(regcomp, , [AC_CHECK_LIB(regex,regcomp)]) + fi +fi + # TODO: Give the user the option of using a pre-existing system # libarchive. This will define HAVE_LIBARCHIVE which will cause # bsdtar_platform.h to use #include <...> for the libarchive headers. Modified: vendor/libarchive/dist/cpio/cpio.c ============================================================================== --- vendor/libarchive/dist/cpio/cpio.c Fri Feb 24 23:15:21 2012 (r232132) +++ vendor/libarchive/dist/cpio/cpio.c Sat Feb 25 00:16:00 2012 (r232133) @@ -119,6 +119,7 @@ static void mode_in(struct cpio *); static void mode_list(struct cpio *); static void mode_out(struct cpio *); static void mode_pass(struct cpio *, const char *); +static const char *remove_leading_slash(const char *); static int restore_time(struct cpio *, struct archive_entry *, const char *, int fd); static void usage(void); @@ -155,9 +156,9 @@ main(int argc, char *argv[]) else { #if defined(_WIN32) && !defined(__CYGWIN__) lafe_progname = strrchr(*argv, '\\'); -#else - lafe_progname = strrchr(*argv, '/'); + if (strrchr(*argv, '/') > lafe_progname) #endif + lafe_progname = strrchr(*argv, '/'); if (lafe_progname != NULL) lafe_progname++; else @@ -574,6 +575,49 @@ mode_out(struct cpio *cpio) archive_write_free(cpio->archive); } +static const char * +remove_leading_slash(const char *p) +{ + const char *rp; + + /* Remove leading "//./" or "//?/" or "//?/UNC/" + * (absolute path prefixes used by Windows API) */ + if ((p[0] == '/' || p[0] == '\\') && + (p[1] == '/' || p[1] == '\\') && + (p[2] == '.' || p[2] == '?') && + (p[3] == '/' || p[3] == '\\')) + { + if (p[2] == '?' && + (p[4] == 'U' || p[4] == 'u') && + (p[5] == 'N' || p[5] == 'n') && + (p[6] == 'C' || p[6] == 'c') && + (p[7] == '/' || p[7] == '\\')) + p += 8; + else + p += 4; + } + do { + rp = p; + /* Remove leading drive letter from archives created + * on Windows. */ + if (((p[0] >= 'a' && p[0] <= 'z') || + (p[0] >= 'A' && p[0] <= 'Z')) && + p[1] == ':') { + p += 2; + } + /* Remove leading "/../", "//", etc. */ + while (p[0] == '/' || p[0] == '\\') { + if (p[1] == '.' && p[2] == '.' && + (p[3] == '/' || p[3] == '\\')) { + p += 3; /* Remove "/..", leave "/" + * for next pass. */ + } else + p += 1; /* Remove "/". */ + } + } while (rp != p); + return (p); +} + /* * This is used by both out mode (to copy objects from disk into * an archive) and pass mode (to copy objects from disk to @@ -585,7 +629,6 @@ file_to_archive(struct cpio *cpio, const const char *destpath; struct archive_entry *entry, *spare; size_t len; - const char *p; int r; /* @@ -639,10 +682,7 @@ file_to_archive(struct cpio *cpio, const "Can't allocate path buffer"); } strcpy(cpio->pass_destpath, cpio->destdir); - p = srcpath; - while (p[0] == '/') - ++p; - strcat(cpio->pass_destpath, p); + strcat(cpio->pass_destpath, remove_leading_slash(srcpath)); destpath = cpio->pass_destpath; } if (cpio->option_rename) @@ -1139,12 +1179,24 @@ cpio_rename(const char *name) static char buff[1024]; FILE *t; char *p, *ret; +#if defined(_WIN32) && !defined(__CYGWIN__) + FILE *to; + t = fopen("CONIN$", "r"); + if (t == NULL) + return (name); + to = fopen("CONOUT$", "w"); + if (to == NULL) + return (name); + fprintf(to, "%s (Enter/./(new name))? ", name); + fclose(to); +#else t = fopen("/dev/tty", "r+"); if (t == NULL) return (name); fprintf(t, "%s (Enter/./(new name))? ", name); fflush(t); +#endif p = fgets(buff, sizeof(buff), t); fclose(t); Modified: vendor/libarchive/dist/cpio/test/main.c ============================================================================== --- vendor/libarchive/dist/cpio/test/main.c Fri Feb 24 23:15:21 2012 (r232132) +++ vendor/libarchive/dist/cpio/test/main.c Sat Feb 25 00:16:00 2012 (r232133) @@ -2289,7 +2289,15 @@ main(int argc, char **argv) j++; } testprogdir[i] = '\0'; +#if defined(_WIN32) && !defined(__CYGWIN__) + if (testprogdir[0] != '/' && testprogdir[0] != '\\' && + !(((testprogdir[0] >= 'a' && testprogdir[0] <= 'z') || + (testprogdir[0] >= 'A' && testprogdir[0] <= 'Z')) && + testprogdir[1] == ':' && + (testprogdir[2] == '/' || testprogdir[2] == '\\'))) +#else if (testprogdir[0] != '/') +#endif { /* Fixup path for relative directories. */ if ((testprogdir = (char *)realloc(testprogdir, @@ -2298,8 +2306,9 @@ main(int argc, char **argv) fprintf(stderr, "ERROR: Out of memory."); exit(1); } - strcpy(testprogdir + strlen(pwd) + 1, testprogdir); - strcpy(testprogdir, pwd); + memmove(testprogdir + strlen(pwd) + 1, testprogdir, + strlen(testprogdir)); + memcpy(testprogdir, pwd, strlen(pwd)); testprogdir[strlen(pwd)] = '/'; } Modified: vendor/libarchive/dist/libarchive/archive_options.c ============================================================================== --- vendor/libarchive/dist/libarchive/archive_options.c Fri Feb 24 23:15:21 2012 (r232132) +++ vendor/libarchive/dist/libarchive/archive_options.c Sat Feb 25 00:16:00 2012 (r232133) @@ -38,6 +38,7 @@ _archive_set_option(struct archive *a, int magic, const char *fn, option_handler use_option) { const char *mp, *op, *vp; + int r; archive_check_magic(a, magic, ARCHIVE_STATE_NEW, fn); @@ -47,10 +48,24 @@ _archive_set_option(struct archive *a, if (op == NULL && vp == NULL) return (ARCHIVE_OK); - if (op == NULL) + if (op == NULL) { + archive_set_error(a, ARCHIVE_ERRNO_MISC, "Empty option"); return (ARCHIVE_FAILED); + } - return use_option(a, mp, op, vp); + r = use_option(a, mp, op, vp); + if (r == ARCHIVE_WARN - 1) { + archive_set_error(a, ARCHIVE_ERRNO_MISC, + "Unknown module name: `%s'", mp); + return (ARCHIVE_FAILED); + } + if (r == ARCHIVE_WARN) { + archive_set_error(a, ARCHIVE_ERRNO_MISC, + "Undefined option: `%s%s%s%s%s%s'", + vp?"":"!", mp?mp:"", mp?":":"", op, vp?"=":"", vp?vp:""); + return (ARCHIVE_FAILED); + } + return (r); } int @@ -102,6 +117,25 @@ _archive_set_options(struct archive *a, free(data); return (ARCHIVE_FATAL); } + if (r == ARCHIVE_FAILED && mod != NULL) { + free(data); + return (ARCHIVE_FAILED); + } + if (r == ARCHIVE_WARN - 1) { + /* The module name is wrong. */ + archive_set_error(a, ARCHIVE_ERRNO_MISC, + "Unknown module name: `%s'", mod); + free(data); + return (ARCHIVE_FAILED); + } + if (r == ARCHIVE_WARN) { + /* The option name is wrong. No-one used this. */ + archive_set_error(a, ARCHIVE_ERRNO_MISC, + "Undefined option: `%s%s%s'", + mod?mod:"", mod?":":"", opt); + free(data); + return (ARCHIVE_FAILED); + } if (r == ARCHIVE_OK) anyok = 1; else Modified: vendor/libarchive/dist/libarchive/archive_read.c ============================================================================== --- vendor/libarchive/dist/libarchive/archive_read.c Fri Feb 24 23:15:21 2012 (r232132) +++ vendor/libarchive/dist/libarchive/archive_read.c Sat Feb 25 00:16:00 2012 (r232133) @@ -633,7 +633,7 @@ archive_read_data(struct archive *_a, vo } /* Compute the amount of zero padding needed. */ - if (a->read_data_output_offset + s < + if (a->read_data_output_offset + (int64_t)s < a->read_data_offset) { len = s; } else if (a->read_data_output_offset < Modified: vendor/libarchive/dist/libarchive/archive_read_data_into_fd.c ============================================================================== --- vendor/libarchive/dist/libarchive/archive_read_data_into_fd.c Fri Feb 24 23:15:21 2012 (r232132) +++ vendor/libarchive/dist/libarchive/archive_read_data_into_fd.c Sat Feb 25 00:16:00 2012 (r232133) @@ -64,7 +64,7 @@ pad_to(struct archive *a, int fd, int ca } while (target_offset > actual_offset) { to_write = nulls_size; - if (target_offset < actual_offset + nulls_size) + if (target_offset < actual_offset + (int64_t)nulls_size) to_write = (size_t)(target_offset - actual_offset); bytes_written = write(fd, nulls, to_write); if (bytes_written < 0) { Modified: vendor/libarchive/dist/libarchive/archive_read_disk_posix.c ============================================================================== --- vendor/libarchive/dist/libarchive/archive_read_disk_posix.c Fri Feb 24 23:15:21 2012 (r232132) +++ vendor/libarchive/dist/libarchive/archive_read_disk_posix.c Sat Feb 25 00:16:00 2012 (r232133) @@ -733,7 +733,7 @@ _archive_read_data_block(struct archive t->entry_buff_size = t->current_filesystem->buff_size; buffbytes = t->entry_buff_size; - if (buffbytes > t->current_sparse->length) + if ((int64_t)buffbytes > t->current_sparse->length) buffbytes = t->current_sparse->length; /* Modified: vendor/libarchive/dist/libarchive/archive_read_set_options.c ============================================================================== --- vendor/libarchive/dist/libarchive/archive_read_set_options.c Fri Feb 24 23:15:21 2012 (r232132) +++ vendor/libarchive/dist/libarchive/archive_read_set_options.c Sat Feb 25 00:16:00 2012 (r232133) @@ -78,7 +78,7 @@ archive_set_format_option(struct archive struct archive_read *a = (struct archive_read *)_a; struct archive_format_descriptor *format; size_t i; - int r, rv = ARCHIVE_FAILED; + int r, rv = ARCHIVE_WARN; for (i = 0; i < sizeof(a->formats)/sizeof(a->formats[0]); i++) { format = &a->formats[i]; @@ -102,6 +102,10 @@ archive_set_format_option(struct archive if (r == ARCHIVE_OK) rv = ARCHIVE_OK; } + /* If the format name didn't match, return a special code for + * _archive_set_option[s]. */ + if (rv == ARCHIVE_WARN && m != NULL) + rv = ARCHIVE_WARN - 1; return (rv); } @@ -112,7 +116,7 @@ archive_set_filter_option(struct archive struct archive_read *a = (struct archive_read *)_a; struct archive_read_filter *filter; struct archive_read_filter_bidder *bidder; - int r, rv = ARCHIVE_FAILED; + int r, rv = ARCHIVE_WARN; for (filter = a->filter; filter != NULL; filter = filter->upstream) { bidder = filter->bidder; @@ -135,6 +139,10 @@ archive_set_filter_option(struct archive if (r == ARCHIVE_OK) rv = ARCHIVE_OK; } + /* If the filter name didn't match, return a special code for + * _archive_set_option[s]. */ + if (rv == ARCHIVE_WARN && m != NULL) + rv = ARCHIVE_WARN - 1; return (rv); } Modified: vendor/libarchive/dist/libarchive/archive_read_support_format_cab.c ============================================================================== --- vendor/libarchive/dist/libarchive/archive_read_support_format_cab.c Fri Feb 24 23:15:21 2012 (r232132) +++ vendor/libarchive/dist/libarchive/archive_read_support_format_cab.c Sat Feb 25 00:16:00 2012 (r232133) @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2010-2011 Michihiro NAKAJIMA + * Copyright (c) 2010-2012 Michihiro NAKAJIMA * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -478,11 +478,13 @@ archive_read_format_cab_options(struct a else ret = ARCHIVE_FATAL; } - } else - archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, - "cab: unknown keyword ``%s''", key); + return (ret); + } - return (ret); + /* Note: The "warn" return is just to inform the options + * supervisor that we didn't handle it. It will generate + * a suitable error if no one used this option. */ + return (ARCHIVE_WARN); } static int @@ -2066,6 +2068,7 @@ lzx_decode_init(struct lzx_stream *strm, struct lzx_dec *ds; int slot, w_size, w_slot; int base, footer; + int base_inc[18]; if (strm->ds == NULL) { strm->ds = calloc(1, sizeof(*strm->ds)); @@ -2100,13 +2103,15 @@ lzx_decode_init(struct lzx_stream *strm, lzx_huffman_free(&(ds->mt)); } + for (footer = 0; footer < 18; footer++) + base_inc[footer] = 1 << footer; base = footer = 0; for (slot = 0; slot < w_slot; slot++) { int n; if (footer == 0) base = slot; else - base += 1 << footer; + base += base_inc[footer]; if (footer < 17) { footer = -2; for (n = base; n; n >>= 1) @@ -2180,11 +2185,11 @@ lzx_translation(struct lzx_stream *strm, end = b + size - 10; while (b < end && (b = memchr(b, 0xE8, end - b)) != NULL) { size_t i = b - (unsigned char *)p; - long cp, displacement, value; + int32_t cp, displacement, value; cp = offset + i; value = archive_le32dec(&b[1]); - if (value >= -cp && value < (long)ds->translation_size) { + if (value >= -cp && value < (int32_t)ds->translation_size) { if (value >= 0) displacement = value - cp; else @@ -2475,7 +2480,10 @@ lzx_read_blocks(struct lzx_stream *strm, */ /* Skip padding to align following field on * 16-bit boundary. */ - lzx_br_consume_unalined_bits(br); + if (br->cache_avail == 32 || br->cache_avail == 16) + lzx_br_consume(br, 16); + else + lzx_br_consume_unalined_bits(br); /* Preparation to read repeated offsets R0,R1 and R2. */ ds->rbytes_avail = 0; ds->state = ST_RD_R0; Modified: vendor/libarchive/dist/libarchive/archive_read_support_format_cpio.c ============================================================================== --- vendor/libarchive/dist/libarchive/archive_read_support_format_cpio.c Fri Feb 24 23:15:21 2012 (r232132) +++ vendor/libarchive/dist/libarchive/archive_read_support_format_cpio.c Sat Feb 25 00:16:00 2012 (r232133) @@ -1,6 +1,6 @@ /*- * Copyright (c) 2003-2007 Tim Kientzle - * Copyright (c) 2010-2011 Michihiro NAKAJIMA + * Copyright (c) 2010-2012 Michihiro NAKAJIMA * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -325,7 +325,7 @@ archive_read_format_cpio_options(struct if (strcmp(key, "compat-2x") == 0) { /* Handle filnames as libarchive 2.x */ cpio->init_default_conversion = (val != NULL)?1:0; - ret = ARCHIVE_OK; + return (ARCHIVE_OK); } else if (strcmp(key, "hdrcharset") == 0) { if (val == NULL || val[0] == 0) archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, @@ -339,11 +339,13 @@ archive_read_format_cpio_options(struct else ret = ARCHIVE_FATAL; } - } else - archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, - "cpio: unknown keyword ``%s''", key); + return (ret); + } - return (ret); + /* Note: The "warn" return is just to inform the options + * supervisor that we didn't handle it. It will generate + * a suitable error if no one used this option. */ + return (ARCHIVE_WARN); } static int Modified: vendor/libarchive/dist/libarchive/archive_read_support_format_lha.c ============================================================================== --- vendor/libarchive/dist/libarchive/archive_read_support_format_lha.c Fri Feb 24 23:15:21 2012 (r232132) +++ vendor/libarchive/dist/libarchive/archive_read_support_format_lha.c Sat Feb 25 00:16:00 2012 (r232133) @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2008-2011 Michihiro NAKAJIMA + * Copyright (c) 2008-2012 Michihiro NAKAJIMA * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -445,11 +445,13 @@ archive_read_format_lha_options(struct a else ret = ARCHIVE_FATAL; } - } else - archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, - "lha: unknown keyword ``%s''", key); + return (ret); + } - return (ret); + /* Note: The "warn" return is just to inform the options + * supervisor that we didn't handle it. It will generate + * a suitable error if no one used this option. */ + return (ARCHIVE_WARN); } static int Modified: vendor/libarchive/dist/libarchive/archive_read_support_format_rar.c ============================================================================== --- vendor/libarchive/dist/libarchive/archive_read_support_format_rar.c Fri Feb 24 23:15:21 2012 (r232132) +++ vendor/libarchive/dist/libarchive/archive_read_support_format_rar.c Sat Feb 25 00:16:00 2012 (r232133) @@ -757,11 +757,13 @@ archive_read_format_rar_options(struct a else ret = ARCHIVE_FATAL; } - } else - archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, - "rar: unknown keyword ``%s''", key); - - return (ret); + return (ret); + } + + /* Note: The "warn" return is just to inform the options + * supervisor that we didn't handle it. It will generate + * a suitable error if no one used this option. */ + return (ARCHIVE_WARN); } static int Modified: vendor/libarchive/dist/libarchive/archive_read_support_format_tar.c ============================================================================== --- vendor/libarchive/dist/libarchive/archive_read_support_format_tar.c Fri Feb 24 23:15:21 2012 (r232132) +++ vendor/libarchive/dist/libarchive/archive_read_support_format_tar.c Sat Feb 25 00:16:00 2012 (r232133) @@ -1,6 +1,6 @@ /*- * Copyright (c) 2003-2007 Tim Kientzle - * Copyright (c) 2011 Michihiro NAKAJIMA + * Copyright (c) 2011-2012 Michihiro NAKAJIMA * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -369,7 +369,7 @@ archive_read_format_tar_options(struct a /* Handle UTF-8 filnames as libarchive 2.x */ tar->compat_2x = (val != NULL)?1:0; tar->init_default_conversion = tar->compat_2x; - ret = ARCHIVE_OK; + return (ARCHIVE_OK); } else if (strcmp(key, "hdrcharset") == 0) { if (val == NULL || val[0] == 0) archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, @@ -383,11 +383,13 @@ archive_read_format_tar_options(struct a else ret = ARCHIVE_FATAL; } - } else - archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, - "tar: unknown keyword ``%s''", key); + return (ret); + } - return (ret); + /* Note: The "warn" return is just to inform the options + * supervisor that we didn't handle it. It will generate + * a suitable error if no one used this option. */ + return (ARCHIVE_WARN); } /* utility function- this exists to centralize the logic of tracking Modified: vendor/libarchive/dist/libarchive/archive_read_support_format_zip.c ============================================================================== --- vendor/libarchive/dist/libarchive/archive_read_support_format_zip.c Fri Feb 24 23:15:21 2012 (r232132) +++ vendor/libarchive/dist/libarchive/archive_read_support_format_zip.c Sat Feb 25 00:16:00 2012 (r232133) @@ -1,6 +1,6 @@ /*- * Copyright (c) 2004 Tim Kientzle - * Copyright (c) 2011 Michihiro NAKAJIMA + * Copyright (c) 2011-2012 Michihiro NAKAJIMA * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -441,7 +441,7 @@ archive_read_format_zip_options(struct a if (strcmp(key, "compat-2x") == 0) { /* Handle filnames as libarchive 2.x */ zip->init_default_conversion = (val != NULL) ? 1 : 0; - ret = ARCHIVE_OK; + return (ARCHIVE_OK); } else if (strcmp(key, "hdrcharset") == 0) { if (val == NULL || val[0] == 0) archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, @@ -456,11 +456,13 @@ archive_read_format_zip_options(struct a } else ret = ARCHIVE_FATAL; } - } else - archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, - "zip: unknown keyword ``%s''", key); + return (ret); + } - return (ret); + /* Note: The "warn" return is just to inform the options + * supervisor that we didn't handle it. It will generate + * a suitable error if no one used this option. */ + return (ARCHIVE_WARN); } static int Modified: vendor/libarchive/dist/libarchive/archive_string.c ============================================================================== --- vendor/libarchive/dist/libarchive/archive_string.c Fri Feb 24 23:15:21 2012 (r232132) +++ vendor/libarchive/dist/libarchive/archive_string.c Sat Feb 25 00:16:00 2012 (r232133) @@ -1,6 +1,6 @@ /*- * Copyright (c) 2003-2011 Tim Kientzle - * Copyright (c) 2011 Michihiro NAKAJIMA + * Copyright (c) 2011-2012 Michihiro NAKAJIMA * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -849,7 +849,7 @@ archive_string_append_from_wcs(struct ar } } as->length += r; - if (wp == NULL || (wp - wpp) >= nwc) + if (wp == NULL || (wp - wpp) >= (int64_t)nwc) break; /* Get a remaining WCS lenth. */ nwc -= wp - wpp; @@ -2333,7 +2333,7 @@ best_effort_strncat_in_locale(struct arc { size_t remaining; char *outp; - const char *inp; + const uint8_t *inp; size_t avail; int return_value = 0; /* success */ @@ -2357,11 +2357,11 @@ best_effort_strncat_in_locale(struct arc return (-1); remaining = length; - inp = (const char *)_p; + inp = (const uint8_t *)_p; outp = as->s + as->length; avail = as->buffer_length - as->length -1; while (*inp && remaining > 0) { - if (*inp < 0 && (sc->flag & SCONV_TO_UTF8)) { + if (*inp > 127 && (sc->flag & SCONV_TO_UTF8)) { if (avail < UTF8_R_CHAR_SIZE) { as->length = outp - as->s; if (NULL == archive_string_ensure(as, @@ -2381,13 +2381,13 @@ best_effort_strncat_in_locale(struct arc inp++; remaining--; return_value = -1; - } else if (*inp < 0) { + } else if (*inp > 127) { *outp++ = '?'; inp++; remaining--; return_value = -1; } else { - *outp++ = *inp++; + *outp++ = (char)*inp++; remaining--; } } Modified: vendor/libarchive/dist/libarchive/archive_windows.c ============================================================================== --- vendor/libarchive/dist/libarchive/archive_windows.c Fri Feb 24 23:15:21 2012 (r232132) +++ vendor/libarchive/dist/libarchive/archive_windows.c Sat Feb 25 00:16:00 2012 (r232133) @@ -48,6 +48,7 @@ #include "archive_platform.h" #include "archive_private.h" +#include "archive_entry.h" #include #include #include @@ -640,6 +641,113 @@ __la_write(int fd, const void *buf, size } /* + * Replace the Windows path separator '\' with '/'. + */ +static int +replace_pathseparator(struct archive_wstring *ws, const wchar_t *wp) +{ + wchar_t *w; + size_t path_length; + + if (wp == NULL) + return(0); + if (wcschr(wp, L'\\') == NULL) + return(0); + path_length = wcslen(wp); + if (archive_wstring_ensure(ws, path_length) == NULL) + return(-1); + archive_wstrncpy(ws, wp, path_length); + for (w = ws->s; *w; w++) { + if (*w == L'\\') + *w = L'/'; + } + return(1); +} + +static int +fix_pathseparator(struct archive_entry *entry) +{ + struct archive_wstring ws; + const wchar_t *wp; + int ret = ARCHIVE_OK; + + archive_string_init(&ws); + wp = archive_entry_pathname_w(entry); + switch (replace_pathseparator(&ws, wp)) { + case 0: /* Not replaced. */ + break; + case 1: /* Replaced. */ + archive_entry_copy_pathname_w(entry, ws.s); + break; + default: + ret = ARCHIVE_FAILED; + } + wp = archive_entry_hardlink_w(entry); + switch (replace_pathseparator(&ws, wp)) { + case 0: /* Not replaced. */ + break; + case 1: /* Replaced. */ + archive_entry_copy_hardlink_w(entry, ws.s); + break; + default: + ret = ARCHIVE_FAILED; + } + wp = archive_entry_symlink_w(entry); + switch (replace_pathseparator(&ws, wp)) { + case 0: /* Not replaced. */ + break; + case 1: /* Replaced. */ + archive_entry_copy_symlink_w(entry, ws.s); + break; + default: + ret = ARCHIVE_FAILED; + } + archive_wstring_free(&ws); + return(ret); +} + +struct archive_entry * +__la_win_entry_in_posix_pathseparator(struct archive_entry *entry) +{ + struct archive_entry *entry_main; + const wchar_t *wp; + int has_backslash = 0; + int ret; + + wp = archive_entry_pathname_w(entry); + if (wp != NULL && wcschr(wp, L'\\') != NULL) + has_backslash = 1; + if (!has_backslash) { + wp = archive_entry_hardlink_w(entry); + if (wp != NULL && wcschr(wp, L'\\') != NULL) + has_backslash = 1; + } + if (!has_backslash) { + wp = archive_entry_symlink_w(entry); + if (wp != NULL && wcschr(wp, L'\\') != NULL) + has_backslash = 1; + } + /* + * If there is no backslach chars, return the original. + */ + if (!has_backslash) + return (entry); + + /* Copy entry so we can modify it as needed. */ + entry_main = archive_entry_clone(entry); + if (entry_main == NULL) + return (NULL); + /* Replace the Windows path-separator '\' with '/'. */ + ret = fix_pathseparator(entry_main); + if (ret < ARCHIVE_WARN) { + archive_entry_free(entry_main); + return (NULL); + } + return (entry_main); +} + + +/* * The following function was modified from PostgreSQL sources and is * subject to the copyright below. */ Modified: vendor/libarchive/dist/libarchive/archive_windows.h ============================================================================== --- vendor/libarchive/dist/libarchive/archive_windows.h Fri Feb 24 23:15:21 2012 (r232132) +++ vendor/libarchive/dist/libarchive/archive_windows.h Sat Feb 25 00:16:00 2012 (r232133) @@ -261,6 +261,8 @@ extern wchar_t *__la_win_permissive_name extern wchar_t *__la_win_permissive_name_w(const wchar_t *wname); extern void __la_dosmaperr(unsigned long e); #define la_dosmaperr(e) __la_dosmaperr(e) +extern struct archive_entry *__la_win_entry_in_posix_pathseparator( + struct archive_entry *); #endif /* LIBARCHIVE_ARCHIVE_WINDOWS_H_INCLUDED */ Modified: vendor/libarchive/dist/libarchive/archive_write_add_filter_bzip2.c ============================================================================== --- vendor/libarchive/dist/libarchive/archive_write_add_filter_bzip2.c Fri Feb 24 23:15:21 2012 (r232132) +++ vendor/libarchive/dist/libarchive/archive_write_add_filter_bzip2.c Sat Feb 25 00:16:00 2012 (r232133) @@ -208,6 +208,9 @@ archive_compressor_bzip2_options(struct return (ARCHIVE_OK); } + /* Note: The "warn" return is just to inform the options + * supervisor that we didn't handle it. It will generate + * a suitable error if no one used this option. */ return (ARCHIVE_WARN); } Modified: vendor/libarchive/dist/libarchive/archive_write_add_filter_gzip.c ============================================================================== --- vendor/libarchive/dist/libarchive/archive_write_add_filter_gzip.c Fri Feb 24 23:15:21 2012 (r232132) +++ vendor/libarchive/dist/libarchive/archive_write_add_filter_gzip.c Sat Feb 25 00:16:00 2012 (r232133) @@ -220,6 +220,10 @@ archive_compressor_gzip_options(struct a data->compression_level = value[0] - '0'; return (ARCHIVE_OK); } + + /* Note: The "warn" return is just to inform the options + * supervisor that we didn't handle it. It will generate + * a suitable error if no one used this option. */ return (ARCHIVE_WARN); } Modified: vendor/libarchive/dist/libarchive/archive_write_add_filter_xz.c ============================================================================== --- vendor/libarchive/dist/libarchive/archive_write_add_filter_xz.c Fri Feb 24 23:15:21 2012 (r232132) +++ vendor/libarchive/dist/libarchive/archive_write_add_filter_xz.c Sat Feb 25 00:16:00 2012 (r232133) @@ -1,6 +1,6 @@ /*- - * Copyright (c) 2009,2010 Michihiro NAKAJIMA * Copyright (c) 2003-2010 Tim Kientzle + * Copyright (c) 2009-2012 Michihiro NAKAJIMA * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -365,6 +365,9 @@ archive_compressor_xz_options(struct arc return (ARCHIVE_OK); } + /* Note: The "warn" return is just to inform the options + * supervisor that we didn't handle it. It will generate + * a suitable error if no one used this option. */ return (ARCHIVE_WARN); } Modified: vendor/libarchive/dist/libarchive/archive_write_disk_windows.c ============================================================================== --- vendor/libarchive/dist/libarchive/archive_write_disk_windows.c Fri Feb 24 23:15:21 2012 (r232132) +++ vendor/libarchive/dist/libarchive/archive_write_disk_windows.c Sat Feb 25 00:16:00 2012 (r232133) @@ -1434,7 +1434,7 @@ restore_entry(struct archive_write_disk if (en) { /* Everything failed; give up here. */ - archive_set_error(&a->archive, en, "Can't create '%s'", + archive_set_error(&a->archive, en, "Can't create '%ls'", a->name); return (ARCHIVE_FAILED); } @@ -1844,7 +1844,7 @@ check_symlinks(struct archive_write_disk */ if (disk_unlink(a->name)) { archive_set_error(&a->archive, errno, - "Could not remove symlink %s", + "Could not remove symlink %ls", a->name); pn[0] = c; return (ARCHIVE_FAILED); @@ -1858,7 +1858,7 @@ check_symlinks(struct archive_write_disk */ if (!S_ISLNK(a->mode)) { archive_set_error(&a->archive, 0, - "Removing symlink %s", + "Removing symlink %ls", a->name); } /* Symlink gone. No more problem! */ @@ -1868,15 +1868,15 @@ check_symlinks(struct archive_write_disk /* User asked us to remove problems. */ if (disk_unlink(a->name) != 0) { archive_set_error(&a->archive, 0, - "Cannot remove intervening symlink %s", - a->name); + "Cannot remove intervening " + "symlink %ls", a->name); pn[0] = c; return (ARCHIVE_FAILED); } a->pst = NULL; } else { archive_set_error(&a->archive, 0, - "Cannot extract through symlink %s", + "Cannot extract through symlink %ls", a->name); pn[0] = c; return (ARCHIVE_FAILED); @@ -2147,19 +2147,20 @@ create_dir(struct archive_write_disk *a, return (ARCHIVE_OK); if ((a->flags & ARCHIVE_EXTRACT_NO_OVERWRITE)) { archive_set_error(&a->archive, EEXIST, - "Can't create directory '%s'", path); + "Can't create directory '%ls'", path); return (ARCHIVE_FAILED); } if (disk_unlink(path) != 0) { archive_set_error(&a->archive, errno, - "Can't create directory '%s': " + "Can't create directory '%ls': " "Conflicting file cannot be removed", path); return (ARCHIVE_FAILED); } } else if (errno != ENOENT && errno != ENOTDIR) { /* Stat failed? */ - archive_set_error(&a->archive, errno, "Can't test directory '%s'", path); + archive_set_error(&a->archive, errno, + "Can't test directory '%ls'", path); return (ARCHIVE_FAILED); } else if (slash != NULL) { *slash = '\0'; @@ -2211,7 +2212,7 @@ create_dir(struct archive_write_disk *a, if (file_information(a, path, &st, &st_mode, 0) == 0 && S_ISDIR(st_mode)) return (ARCHIVE_OK); - archive_set_error(&a->archive, errno, "Failed to create dir '%s'", + archive_set_error(&a->archive, errno, "Failed to create dir '%ls'", path); return (ARCHIVE_FAILED); } @@ -2240,7 +2241,7 @@ set_ownership(struct archive_write_disk } archive_set_error(&a->archive, errno, - "Can't set user=%jd/group=%jd for %s", + "Can't set user=%jd/group=%jd for %ls", (intmax_t)a->uid, (intmax_t)a->gid, a->name); return (ARCHIVE_WARN); } Modified: vendor/libarchive/dist/libarchive/archive_write_set_format_7zip.c ============================================================================== --- vendor/libarchive/dist/libarchive/archive_write_set_format_7zip.c Fri Feb 24 23:15:21 2012 (r232132) +++ vendor/libarchive/dist/libarchive/archive_write_set_format_7zip.c Sat Feb 25 00:16:00 2012 (r232133) @@ -413,7 +413,10 @@ _7z_options(struct archive_write *a, con return (ARCHIVE_OK); } - return (ARCHIVE_FAILED); + /* Note: The "warn" return is just to inform the options + * supervisor that we didn't handle it. It will generate + * a suitable error if no one used this option. */ + return (ARCHIVE_WARN); } static int @@ -1587,7 +1590,8 @@ file_init_register_empty(struct _7zip *z zip->empty_list.last = &(zip->empty_list.first); } -#if !defined(HAVE_BZLIB_H) || !defined(BZ_CONFIG_ERROR) || !defined(HAVE_LZMA_H) +#if !defined(HAVE_ZLIB_H) || !defined(HAVE_BZLIB_H) ||\ + !defined(BZ_CONFIG_ERROR) || !defined(HAVE_LZMA_H) static int compression_unsupported_encoder(struct archive *a, struct la_zstream *lastrm, const char *name) Modified: vendor/libarchive/dist/libarchive/archive_write_set_format_cpio.c ============================================================================== --- vendor/libarchive/dist/libarchive/archive_write_set_format_cpio.c Fri Feb 24 23:15:21 2012 (r232132) +++ vendor/libarchive/dist/libarchive/archive_write_set_format_cpio.c Sat Feb 25 00:16:00 2012 (r232133) @@ -1,5 +1,6 @@ /*- * Copyright (c) 2003-2007 Tim Kientzle + * Copyright (c) 2011-2012 Michihiro NAKAJIMA * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -147,11 +148,13 @@ archive_write_cpio_options(struct archiv else ret = ARCHIVE_FATAL; } - } else - archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, - "%s: unknown keyword ``%s''", a->format_name, key); + return (ret); + } - return (ret); + /* Note: The "warn" return is just to inform the options + * supervisor that we didn't handle it. It will generate + * a suitable error if no one used this option. */ + return (ARCHIVE_WARN); } /* @@ -278,18 +281,37 @@ write_header(struct archive_write *a, st int64_t ino; char h[76]; struct archive_string_conv *sconv; + struct archive_entry *entry_main; size_t len; cpio = (struct cpio *)a->format_data; ret_final = ARCHIVE_OK; sconv = get_sconv(a); +#if defined(_WIN32) && !defined(__CYGWIN__) + /* Make sure the path separators in pahtname, hardlink and symlink + * are all slash '/', not the Windows path separator '\'. */ + entry_main = __la_win_entry_in_posix_pathseparator(entry); + if (entry_main == NULL) { + archive_set_error(&a->archive, ENOMEM, + "Can't allocate ustar data"); + return(ARCHIVE_FATAL); + } + if (entry != entry_main) + entry = entry_main; + else + entry_main = NULL; +#else + entry_main = NULL; +#endif + ret = archive_entry_pathname_l(entry, &path, &len, sconv); if (ret != 0) { if (errno == ENOMEM) { archive_set_error(&a->archive, ENOMEM, "Can't allocate memory for Pathname"); - return (ARCHIVE_FATAL); + ret_final = ARCHIVE_FATAL; + goto exit_write_header; } archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, "Can't translate pathname '%s' to %s", @@ -308,11 +330,13 @@ write_header(struct archive_write *a, st if (ino < 0) { *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***