Date: Sat, 17 Nov 2007 05:39:42 GMT From: John Birrell <jb@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 129156 for review Message-ID: <200711170539.lAH5dgmD021180@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=129156 Change 129156 by jb@jb_freebsd1 on 2007/11/17 05:39:39 IFC Affected files ... .. //depot/projects/dtrace/src/ObsoleteFiles.inc#28 integrate .. //depot/projects/dtrace/src/contrib/less/LICENSE#5 integrate .. //depot/projects/dtrace/src/contrib/less/Makefile.dsm#4 delete .. //depot/projects/dtrace/src/contrib/less/NEWS#8 integrate .. //depot/projects/dtrace/src/contrib/less/README#8 integrate .. //depot/projects/dtrace/src/contrib/less/ch.c#7 integrate .. //depot/projects/dtrace/src/contrib/less/command.c#6 integrate .. //depot/projects/dtrace/src/contrib/less/configure#7 integrate .. //depot/projects/dtrace/src/contrib/less/configure.ac#7 integrate .. //depot/projects/dtrace/src/contrib/less/decode.c#6 integrate .. //depot/projects/dtrace/src/contrib/less/defines.ds#6 integrate .. //depot/projects/dtrace/src/contrib/less/defines.h.in#6 integrate .. //depot/projects/dtrace/src/contrib/less/defines.o2#6 integrate .. //depot/projects/dtrace/src/contrib/less/defines.o9#6 integrate .. //depot/projects/dtrace/src/contrib/less/defines.wn#6 integrate .. //depot/projects/dtrace/src/contrib/less/edit.c#6 integrate .. //depot/projects/dtrace/src/contrib/less/filename.c#7 integrate .. //depot/projects/dtrace/src/contrib/less/funcs.h#7 integrate .. //depot/projects/dtrace/src/contrib/less/less.h#7 integrate .. //depot/projects/dtrace/src/contrib/less/less.man#8 integrate .. //depot/projects/dtrace/src/contrib/less/less.nro#8 integrate .. //depot/projects/dtrace/src/contrib/less/lessecho.man#6 integrate .. //depot/projects/dtrace/src/contrib/less/lessecho.nro#6 integrate .. //depot/projects/dtrace/src/contrib/less/lesskey.man#8 integrate .. //depot/projects/dtrace/src/contrib/less/lesskey.nro#8 integrate .. //depot/projects/dtrace/src/contrib/less/line.c#7 integrate .. //depot/projects/dtrace/src/contrib/less/optfunc.c#6 integrate .. //depot/projects/dtrace/src/contrib/less/opttbl.c#6 integrate .. //depot/projects/dtrace/src/contrib/less/screen.c#6 integrate .. //depot/projects/dtrace/src/contrib/less/search.c#7 integrate .. //depot/projects/dtrace/src/contrib/less/tags.c#6 integrate .. //depot/projects/dtrace/src/contrib/less/version.c#8 integrate .. //depot/projects/dtrace/src/gnu/usr.bin/gdb/kgdb/kgdb.h#5 integrate .. //depot/projects/dtrace/src/gnu/usr.bin/gdb/kgdb/kthr.c#7 integrate .. //depot/projects/dtrace/src/gnu/usr.bin/gdb/kgdb/trgt_i386.c#5 integrate .. //depot/projects/dtrace/src/lib/libc/net/Makefile.inc#9 integrate .. //depot/projects/dtrace/src/lib/libsdp/search.c#4 integrate .. //depot/projects/dtrace/src/release/Makefile#14 integrate .. //depot/projects/dtrace/src/release/doc/en_US.ISO8859-1/relnotes/article.sgml#13 integrate .. //depot/projects/dtrace/src/sbin/mdconfig/mdconfig.c#5 integrate .. //depot/projects/dtrace/src/sys/amd64/amd64/db_trace.c#8 integrate .. //depot/projects/dtrace/src/sys/amd64/amd64/exception.S#5 integrate .. //depot/projects/dtrace/src/sys/amd64/amd64/machdep.c#22 integrate .. //depot/projects/dtrace/src/sys/amd64/amd64/trap.c#16 integrate .. //depot/projects/dtrace/src/sys/dev/an/if_an.c#7 integrate .. //depot/projects/dtrace/src/sys/dev/an/if_anreg.h#4 integrate .. //depot/projects/dtrace/src/sys/dev/bge/if_bge.c#21 integrate .. //depot/projects/dtrace/src/sys/dev/dc/dcphy.c#5 integrate .. //depot/projects/dtrace/src/sys/dev/ichwd/ichwd.c#6 integrate .. //depot/projects/dtrace/src/sys/dev/ichwd/ichwd.h#5 integrate .. //depot/projects/dtrace/src/sys/dev/mii/amphy.c#7 integrate .. //depot/projects/dtrace/src/sys/dev/mii/e1000phy.c#7 integrate .. //depot/projects/dtrace/src/sys/dev/mii/nsphy.c#6 integrate .. //depot/projects/dtrace/src/sys/dev/mii/rlphy.c#7 integrate .. //depot/projects/dtrace/src/sys/dev/mii/tdkphy.c#7 integrate .. //depot/projects/dtrace/src/sys/dev/mii/ukphy_subr.c#5 integrate .. //depot/projects/dtrace/src/sys/dev/nfe/if_nfe.c#10 integrate .. //depot/projects/dtrace/src/sys/dev/pci/pci.c#19 integrate .. //depot/projects/dtrace/src/sys/dev/txp/if_txp.c#7 integrate .. //depot/projects/dtrace/src/sys/dev/usb/ehci_pci.c#6 integrate .. //depot/projects/dtrace/src/sys/dev/usb/uhci_pci.c#5 integrate .. //depot/projects/dtrace/src/sys/geom/label/g_label_reiserfs.c#4 integrate .. //depot/projects/dtrace/src/sys/kern/kern_kthread.c#7 integrate .. //depot/projects/dtrace/src/sys/netipsec/keysock.c#8 integrate .. //depot/projects/dtrace/src/tools/regression/priv/Makefile#5 integrate .. //depot/projects/dtrace/src/tools/regression/priv/main.c#5 integrate .. //depot/projects/dtrace/src/tools/regression/priv/main.h#5 integrate .. //depot/projects/dtrace/src/tools/regression/priv/priv_netinet_ipsec.c#2 integrate .. //depot/projects/dtrace/src/usr.bin/less/defines.h#6 integrate .. //depot/projects/dtrace/src/usr.sbin/freebsd-update/freebsd-update.sh#8 integrate Differences ... ==== //depot/projects/dtrace/src/ObsoleteFiles.inc#28 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.117 2007/11/08 17:43:13 imp Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.118 2007/11/16 04:03:08 marcel Exp $ # # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and # directories (OLD_DIRS) which should get removed at an update. Recently @@ -16,6 +16,12 @@ # 20071108: Removed very crunch OLDCARD support file OLD_FILES+=etc/defaults/pccard.conf +# 20071104: Removed bsdlabel, fdisk and gpt from rescue on ia64. +.if ${TARGET_ARCH} == "ia64" +OLD_FILES+=rescue/bsdlabel +OLD_FILES+=rescue/fdisk +OLD_FILES+=rescue/gpt +.endif # 20071025: rc.d/nfslocking superceeded by rc.d/lockd and rc.d/statd OLD_FILES+=etc/rc.d/nfslocking # 20070930: rename of cached to nscd ==== //depot/projects/dtrace/src/contrib/less/LICENSE#5 (text+ko) ==== @@ -2,7 +2,7 @@ ------------ Less -Copyright (C) 1984-2005 Mark Nudelman +Copyright (C) 1984-2007 Mark Nudelman Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions ==== //depot/projects/dtrace/src/contrib/less/NEWS#8 (text+ko) ==== @@ -13,6 +13,17 @@ ====================================================================== + Major changes between "less" versions 409 and 415 + +* New --follow-name option makes F command follow the name of a file + rather than the file descriptor if an open file is renamed. + +* Make searching with -i/-I work correctly with non-ASCII text. + +* Fix DJGPP build. + +====================================================================== + Major changes between "less" versions 406 and 409 * Support CSI escape sequences, like SGR escape sequences. @@ -698,3 +709,4 @@ + ==== //depot/projects/dtrace/src/contrib/less/README#8 (text+ko) ==== @@ -1,7 +1,7 @@ - Less, version 409 + Less, version 415 - This is the distribution of less, version 409, released 12 Oct 2007. + This is the distribution of less, version 415, released 15 Nov 2007. This program is part of the GNU project (http://www.gnu.org). This program is free software. You may redistribute it and/or ==== //depot/projects/dtrace/src/contrib/less/ch.c#7 (text+ko) ==== @@ -21,6 +21,12 @@ #include <windows.h> #endif +#if HAVE_STAT_INO +#include <sys/stat.h> +extern dev_t curr_dev; +extern ino_t curr_ino; +#endif + typedef POSITION BLOCKNUM; public int ignore_eoi; @@ -98,6 +104,8 @@ extern int autobuf; extern int sigs; extern int secure; +extern int screen_trashed; +extern int follow_mode; extern constant char helpdata[]; extern constant int size_helpdata; extern IFILE curr_ifile; @@ -195,7 +203,7 @@ */ if (!(ch_flags & CH_CANSEEK)) return ('?'); - if (lseek(ch_file, (off_t)pos, 0) == BAD_LSEEK) + if (lseek(ch_file, (off_t)pos, SEEK_SET) == BAD_LSEEK) { error("seek error", NULL_PARG); clear_eol(); @@ -276,6 +284,25 @@ #endif #endif slept = TRUE; + +#if HAVE_STAT_INO + if (follow_mode == FOLLOW_NAME) + { + /* See whether the file's i-number has changed. + * If so, force the file to be closed and + * reopened. */ + struct stat st; + int r = stat(get_filename(curr_ifile), &st); + if (r == 0 && (st.st_ino != curr_ino || + st.st_dev != curr_dev)) + { + /* screen_trashed=2 causes + * make_display to reopen the file. */ + screen_trashed = 2; + return (EOI); + } + } +#endif } if (sigs) return (EOI); @@ -648,7 +675,7 @@ } #endif - if (lseek(ch_file, (off_t)0, 0) == BAD_LSEEK) + if (lseek(ch_file, (off_t)0, SEEK_SET) == BAD_LSEEK) { /* * Warning only; even if the seek fails for some reason, @@ -711,7 +738,7 @@ while (ch_bufhead != END_OF_CHAIN) { bp = ch_bufhead; - bp->next->prev = bp->prev;; + bp->next->prev = bp->prev; bp->prev->next = bp->next; free(bp); } @@ -737,7 +764,7 @@ return (0); } #endif - return (lseek(f, (off_t)1, 0) != BAD_LSEEK); + return (lseek(f, (off_t)1, SEEK_SET) != BAD_LSEEK); } /* ==== //depot/projects/dtrace/src/contrib/less/command.c#6 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/contrib/less/command.c,v 1.8 2007/06/21 10:44:50 delphij Exp $ */ +/* $FreeBSD: src/contrib/less/command.c,v 1.9 2007/11/16 22:24:31 delphij Exp $ */ /* * Copyright (C) 1984-2007 Mark Nudelman * @@ -558,6 +558,21 @@ } /* + * Discard any buffered file data. + */ + static void +clear_buffers() +{ + if (!(ch_getflags() & CH_CANSEEK)) + return; + ch_flush(); + clr_linenum(); +#if HILITE_SEARCH + clr_hilite(); +#endif +} + +/* * Make sure the screen is displayed. */ static void @@ -580,11 +595,20 @@ jump_loc(initial_scrpos.pos, initial_scrpos.ln); } else if (screen_trashed) { - int save_top_scroll; - save_top_scroll = top_scroll; + int save_top_scroll = top_scroll; + int save_ignore_eoi = ignore_eoi; top_scroll = 1; + ignore_eoi = 0; + if (screen_trashed == 2) + { + /* Special case used by ignore_eoi: re-open the input file + * and jump to the end of the file. */ + reopen_curr_ifile(); + jump_forw(); + } repaint(); top_scroll = save_top_scroll; + ignore_eoi = save_ignore_eoi; } } @@ -1115,7 +1139,10 @@ ignore_eoi = 1; hit_eof = 0; while (!sigs) + { + make_display(); forward(1, 0, 0); + } ignore_eoi = 0; /* * This gets us back in "F mode" after processing @@ -1154,14 +1181,7 @@ * Flush buffers, then repaint screen. * Don't flush the buffers on a pipe! */ - if (ch_getflags() & CH_CANSEEK) - { - ch_flush(); - clr_linenum(); -#if HILITE_SEARCH - clr_hilite(); -#endif - } + clear_buffers(); /* FALLTHRU */ case A_REPAINT: /* @@ -1263,7 +1283,8 @@ /* * Define abbreviation for a commonly used sequence below. */ -#define DO_SEARCH() if (number <= 0) number = 1; \ +#define DO_SEARCH() \ + if (number <= 0) number = 1; \ mca_search(); \ cmd_exec(); \ multi_search((char *)NULL, (int) number); ==== //depot/projects/dtrace/src/contrib/less/configure#7 (text+ko) ==== @@ -3611,6 +3611,73 @@ # Checks for general libraries. +{ echo "$as_me:$LINENO: checking for tgoto in -ltinfo" >&5 +echo $ECHO_N "checking for tgoto in -ltinfo... $ECHO_C" >&6; } +if test "${ac_cv_lib_tinfo_tgoto+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ltinfo $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char tgoto (); +int +main () +{ +return tgoto (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_tinfo_tgoto=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_tinfo_tgoto=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_tinfo_tgoto" >&5 +echo "${ECHO_T}$ac_cv_lib_tinfo_tgoto" >&6; } +if test $ac_cv_lib_tinfo_tgoto = yes; then + have_tinfo=yes +else + have_tinfo=no +fi + { echo "$as_me:$LINENO: checking for initscr in -lxcurses" >&5 echo $ECHO_N "checking for initscr in -lxcurses... $ECHO_C" >&6; } if test "${ac_cv_lib_xcurses_initscr+set}" = set; then @@ -4246,6 +4313,61 @@ fi if test $curses_broken = 0; then + +# -- Try tinfo. +if test "x$TERMLIBS" = x; then + if test $have_tinfo = yes; then + TERMLIBS="-ltinfo" + SAVE_LIBS=$LIBS + LIBS="$LIBS $TERMLIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +tgetent(0,0); tgetflag(0); tgetnum(0); tgetstr(0,0); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + termok=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + termok=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + LIBS=$SAVE_LIBS + if test $termok = no; then TERMLIBS=""; fi + fi +fi + # -- Try xcurses. if test "x$TERMLIBS" = x; then if test $have_xcurses = yes; then @@ -4895,7 +5017,8 @@ -for ac_header in ctype.h errno.h fcntl.h limits.h stdio.h stdlib.h string.h termcap.h termio.h termios.h time.h unistd.h values.h sys/ioctl.h sys/stream.h + +for ac_header in ctype.h errno.h fcntl.h limits.h stdio.h stdlib.h string.h termcap.h termio.h termios.h time.h unistd.h values.h sys/ioctl.h sys/stream.h wctype.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then @@ -5448,6 +5571,10 @@ + + + + # Checks for identifiers. { echo "$as_me:$LINENO: checking for off_t" >&5 echo $ECHO_N "checking for off_t... $ECHO_C" >&6; } @@ -5656,7 +5783,56 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: checking for st_ino in struct stat" >&5 +echo $ECHO_N "checking for st_ino in struct stat... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <sys/types.h> +#include <sys/stat.h> +int +main () +{ +struct stat s; dev_t dev = s.st_dev; ino_t ino = s.st_ino; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; }; cat >>confdefs.h <<\_ACEOF +#define HAVE_STAT_INO 1 +_ACEOF +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + # Checks for library functions. { echo "$as_me:$LINENO: checking return type of signal handlers" >&5 echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6; } @@ -6515,6 +6691,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext + { echo "$as_me:$LINENO: checking for ctype functions" >&5 echo $ECHO_N "checking for ctype functions... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF @@ -6569,6 +6746,57 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext +{ echo "$as_me:$LINENO: checking for wctype functions" >&5 +echo $ECHO_N "checking for wctype functions... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <wctype.h> +int +main () +{ +iswlower(0); iswupper(0); towlower(0); towupper(0); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; }; cat >>confdefs.h <<\_ACEOF +#define HAVE_WCTYPE 1 +_ACEOF + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + # Checks for external variable ospeed in the termcap library. have_ospeed=no { echo "$as_me:$LINENO: checking termcap for ospeed" >&5 ==== //depot/projects/dtrace/src/contrib/less/configure.ac#7 (text+ko) ==== @@ -23,6 +23,7 @@ AC_SYS_LARGEFILE # Checks for general libraries. +AC_CHECK_LIB(tinfo, tgoto, [have_tinfo=yes], [have_tinfo=no]) AC_CHECK_LIB(xcurses, initscr, [have_xcurses=yes], [have_xcurses=no]) AC_CHECK_LIB(ncursesw, initscr, [have_ncursesw=yes], [have_ncursesw=no]) AC_CHECK_LIB(ncurses, initscr, [have_ncurses=yes], [have_ncurses=no]) @@ -51,6 +52,20 @@ fi if test $curses_broken = 0; then + +# -- Try tinfo. +if test "x$TERMLIBS" = x; then + if test $have_tinfo = yes; then + TERMLIBS="-ltinfo" + SAVE_LIBS=$LIBS + LIBS="$LIBS $TERMLIBS" + AC_TRY_LINK(, [tgetent(0,0); tgetflag(0); tgetnum(0); tgetstr(0,0);], + [termok=yes], [termok=no]) + LIBS=$SAVE_LIBS + if test $termok = no; then TERMLIBS=""; fi + fi +fi + # -- Try xcurses. if test "x$TERMLIBS" = x; then if test $have_xcurses = yes; then @@ -154,7 +169,7 @@ # Checks for header files. AC_HEADER_STDC -AC_CHECK_HEADERS([ctype.h errno.h fcntl.h limits.h stdio.h stdlib.h string.h termcap.h termio.h termios.h time.h unistd.h values.h sys/ioctl.h sys/stream.h]) +AC_CHECK_HEADERS([ctype.h errno.h fcntl.h limits.h stdio.h stdlib.h string.h termcap.h termio.h termios.h time.h unistd.h values.h sys/ioctl.h sys/stream.h wctype.h]) # Checks for typedefs, structures, and compiler characteristics. AC_HEADER_STAT @@ -182,6 +197,8 @@ [Define HAVE_VOID if your compiler supports the "void" type.]) AH_TEMPLATE([HAVE_CONST], [Define HAVE_CONST if your compiler supports the "const" modifier.]) +AH_TEMPLATE([HAVE_STAT_INO], + [Define HAVE_STAT_INO if your struct stat has st_ino and st_dev.]) AH_TEMPLATE([HAVE_TIME_T], [Define HAVE_TIME_T if your system supports the "time_t" type.]) AH_TEMPLATE([HAVE_STRERROR], @@ -204,6 +221,8 @@ [Define HAVE_TERMIOS_FUNCS if you have tcgetattr/tcsetattr.]) AH_TEMPLATE([HAVE_UPPER_LOWER], [Define HAVE_UPPER_LOWER if you have isupper, islower, toupper, tolower.]) +AH_TEMPLATE([HAVE_WCTYPE], + [Define HAVE_WCTYPE if you have iswupper, iswlower, towupper, towlower.]) AH_TEMPLATE([HAVE_SIGSET_T], [Define HAVE_SIGSET_T you have the sigset_t type.]) AH_TEMPLATE([HAVE_SIGEMPTYSET], @@ -224,6 +243,11 @@ AC_MSG_CHECKING(for time_t) AC_TRY_COMPILE([#include <time.h>], [time_t t = 0;], [AC_MSG_RESULT(yes); AC_DEFINE(HAVE_TIME_T)], [AC_MSG_RESULT(no)]) +AC_MSG_CHECKING(for st_ino in struct stat) +AC_TRY_COMPILE([#include <sys/types.h> +#include <sys/stat.h>], + [struct stat s; dev_t dev = s.st_dev; ino_t ino = s.st_ino;], + [AC_MSG_RESULT(yes); AC_DEFINE(HAVE_STAT_INO)], [AC_MSG_RESULT(no)]) # Checks for library functions. AC_TYPE_SIGNAL @@ -307,6 +331,7 @@ #include <ctype.h> #include <langinfo.h>], [setlocale(LC_CTYPE,""); isprint(0); iscntrl(0);], [AC_MSG_RESULT(yes); AC_DEFINE(HAVE_LOCALE)], [AC_MSG_RESULT(no)]) + AC_MSG_CHECKING(for ctype functions) AC_TRY_LINK([ #if HAVE_CTYPE_H @@ -314,6 +339,10 @@ #endif], [static int x; x = isupper(x); x = tolower(x); x = toupper(x);], [AC_MSG_RESULT(yes); AC_DEFINE(HAVE_UPPER_LOWER)], [AC_MSG_RESULT(no)]) +AC_MSG_CHECKING(for wctype functions) +AC_TRY_LINK([#include <wctype.h>], [iswlower(0); iswupper(0); towlower(0); towupper(0);], + [AC_MSG_RESULT(yes); AC_DEFINE(HAVE_WCTYPE)], [AC_MSG_RESULT(no)]) + # Checks for external variable ospeed in the termcap library. have_ospeed=no AC_MSG_CHECKING(termcap for ospeed) ==== //depot/projects/dtrace/src/contrib/less/decode.c#6 (text+ko) ==== @@ -682,7 +682,7 @@ close(f); return (-1); } - if (lseek(f, (off_t)0, 0) == BAD_LSEEK) + if (lseek(f, (off_t)0, SEEK_SET) == BAD_LSEEK) { free(buf); close(f); ==== //depot/projects/dtrace/src/contrib/less/defines.ds#6 (text+ko) ==== @@ -313,6 +313,9 @@ /* Define if you have the <ctype.h> header file. */ #define HAVE_CTYPE_H 1 +/* Define if you have the <wctype.h> header file. */ +#define HAVE_WCTYPE_H 0 + /* Define if you have the <errno.h> header file. */ #define HAVE_ERRNO_H 1 ==== //depot/projects/dtrace/src/contrib/less/defines.h.in#6 (text+ko) ==== @@ -282,6 +282,9 @@ /* Define to 1 if you have the `stat' function. */ #undef HAVE_STAT +/* Define HAVE_STAT_INO if your struct stat has st_ino and st_dev. */ +#undef HAVE_STAT_INO + /* Define to 1 if you have the <stdint.h> header file. */ #undef HAVE_STDINT_H @@ -351,6 +354,12 @@ /* Define HAVE_VOID if your compiler supports the "void" type. */ #undef HAVE_VOID +/* Define HAVE_WCTYPE if you have iswupper, iswlower, towupper, towlower. */ +#undef HAVE_WCTYPE + +/* Define to 1 if you have the <wctype.h> header file. */ +#undef HAVE_WCTYPE_H + /* Define to 1 if you have the `_setjmp' function. */ #undef HAVE__SETJMP ==== //depot/projects/dtrace/src/contrib/less/defines.o2#6 (text+ko) ==== @@ -279,6 +279,9 @@ /* Define if you have the <ctype.h> header file. */ #define HAVE_CTYPE_H 1 +/* Define if you have the <wctype.h> header file. */ +#define HAVE_WCTYPE_H 0 + /* Define if you have the <errno.h> header file. */ #define HAVE_ERRNO_H 1 ==== //depot/projects/dtrace/src/contrib/less/defines.o9#6 (text+ko) ==== @@ -287,6 +287,9 @@ /* Define if you have the <ctype.h> header file. */ #define HAVE_CTYPE_H 1 +/* Define if you have the <wctype.h> header file. */ +#define HAVE_WCTYPE_H 0 + /* Define if you have the <errno.h> header file. */ #define HAVE_ERRNO_H 1 ==== //depot/projects/dtrace/src/contrib/less/defines.wn#6 (text+ko) ==== @@ -277,6 +277,9 @@ /* Define if you have the <ctype.h> header file. */ #define HAVE_CTYPE_H 1 +/* Define if you have the <wctype.h> header file. */ +#define HAVE_WCTYPE_H 1 + /* Define if you have the <errno.h> header file. */ #define HAVE_ERRNO_H 1 ==== //depot/projects/dtrace/src/contrib/less/edit.c#6 (text+ko) ==== @@ -10,6 +10,9 @@ #include "less.h" +#if HAVE_STAT +#include <sys/stat.h> +#endif public int fd0 = 0; @@ -36,6 +39,11 @@ extern char *namelogfile; #endif +#if HAVE_STAT_INO +public dev_t curr_dev; +public ino_t curr_ino; +#endif + char *curr_altfilename = NULL; static void *curr_altpipe; @@ -178,6 +186,9 @@ curr_altfilename = NULL; } curr_ifile = NULL_IFILE; +#if HAVE_STAT_INO + curr_ino = curr_dev = 0; +#endif } /* @@ -360,7 +371,6 @@ } } } - free(qopen_filename); /* * Get the new ifile. @@ -385,10 +395,23 @@ if (namelogfile != NULL && is_tty) use_logfile(namelogfile); #endif +#if HAVE_STAT_INO + /* Remember the i-number and device of the opened file. */ + { + struct stat statbuf; + int r = stat(qopen_filename, &statbuf); + if (r == 0) + { + curr_ino = statbuf.st_ino; + curr_dev = statbuf.st_dev; + } + } +#endif if (every_first_cmd != NULL) ungetsc(every_first_cmd); } + free(qopen_filename); no_display = !any_display; flush(); any_display = TRUE; @@ -657,6 +680,14 @@ quit(QUIT_ERROR); } + public void +reopen_curr_ifile() +{ + IFILE save_ifile = save_curr_ifile(); + close_file(); + reedit_ifile(save_ifile); +} + /* * Edit standard input. */ @@ -747,7 +778,7 @@ * Append: open the file and seek to the end. */ logfile = open(filename, OPEN_APPEND); - if (lseek(logfile, (off_t)0, 2) == BAD_LSEEK) + if (lseek(logfile, (off_t)0, SEEK_END) == BAD_LSEEK) { close(logfile); logfile = -1; ==== //depot/projects/dtrace/src/contrib/less/filename.c#7 (text+ko) ==== @@ -476,7 +476,7 @@ if (!seekable(f)) return (0); - if (lseek(f, (off_t)0, 0) == BAD_LSEEK) + if (lseek(f, (off_t)0, SEEK_SET) == BAD_LSEEK) return (0); n = read(f, data, sizeof(data)); for (i = 0; i < n; i++) @@ -505,7 +505,7 @@ { off_t spos; - spos = lseek(f, (off_t)0, 2); + spos = lseek(f, (off_t)0, SEEK_END); if (spos == BAD_LSEEK) return (NULL_POSITION); return ((POSITION) spos); ==== //depot/projects/dtrace/src/contrib/less/funcs.h#7 (text+ko) ==== @@ -104,6 +104,7 @@ public IFILE save_curr_ifile (); public void unsave_ifile (); public void reedit_ifile (); + public void reopen_curr_ifile (); public int edit_stdin (); public void cat_file (); public void use_logfile (); ==== //depot/projects/dtrace/src/contrib/less/less.h#7 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/contrib/less/less.h,v 1.8 2007/10/08 16:17:42 delphij Exp $ */ +/* $FreeBSD: src/contrib/less/less.h,v 1.9 2007/11/16 22:24:31 delphij Exp $ */ /* * Copyright (C) 1984-2007 Mark Nudelman * @@ -72,6 +72,9 @@ #if HAVE_CTYPE_H #include <ctype.h> #endif +#if HAVE_WCTYPE_H +#include <wctype.h> +#endif #if HAVE_LIMITS_H #include <limits.h> #endif @@ -126,16 +129,23 @@ #undef IS_SPACE #undef IS_DIGIT -#if !HAVE_UPPER_LOWER -#define IS_UPPER(c) ASCII_IS_UPPER(c) -#define IS_LOWER(c) ASCII_IS_LOWER(c) -#define TO_UPPER(c) ASCII_TO_UPPER(c) -#define TO_LOWER(c) ASCII_TO_LOWER(c) +#if HAVE_WCTYPE +#define IS_UPPER(c) iswupper(c) +#define IS_LOWER(c) iswlower(c) +#define TO_UPPER(c) towupper(c) +#define TO_LOWER(c) towlower(c) #else +#if HAVE_UPPER_LOWER #define IS_UPPER(c) isupper((unsigned char) (c)) #define IS_LOWER(c) islower((unsigned char) (c)) #define TO_UPPER(c) toupper((unsigned char) (c)) #define TO_LOWER(c) tolower((unsigned char) (c)) +#else +#define IS_UPPER(c) ASCII_IS_UPPER(c) +#define IS_LOWER(c) ASCII_IS_LOWER(c) +#define TO_UPPER(c) ASCII_TO_UPPER(c) +#define TO_LOWER(c) ASCII_TO_LOWER(c) +#endif #endif #ifdef isspace @@ -188,6 +198,13 @@ #define BAD_LSEEK ((off_t)-1) +#ifndef SEEK_SET +#define SEEK_SET 0 +#endif +#ifndef SEEK_END +#define SEEK_END 2 +#endif + #ifndef CHAR_BIT #define CHAR_BIT 8 #endif @@ -458,6 +475,9 @@ #define QUIT_ERROR 1 #define QUIT_SAVED_STATUS (-1) +#define FOLLOW_DESC 0 +#define FOLLOW_NAME 1 + /* filestate flags */ #define CH_CANSEEK 001 #define CH_KEEPOPEN 002 ==== //depot/projects/dtrace/src/contrib/less/less.man#8 (text+ko) ==== @@ -750,40 +750,35 @@ deinitialization string does something unnecessary, like clear- ing the screen. - --no-keypad - Disables sending the keypad initialization and deinitialization - strings to the terminal. This is sometimes useful if the keypad - strings make the numeric keypad behave in an undesirable manner. - >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200711170539.lAH5dgmD021180>
