Using saved parent location: http://bzr.savannah.gnu.org/r/emacs/trunk/ Now on revision 100364. ------------------------------------------------------------ revno: 100364 committer: Stefan Monnier branch nick: trunk timestamp: Tue 2010-05-18 23:06:48 -0400 message: * indent.el (indent-region): Deactivate region (bug#6200). diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2010-05-19 03:01:24 +0000 +++ lisp/ChangeLog 2010-05-19 03:06:48 +0000 @@ -1,3 +1,7 @@ +2010-05-19 Stefan Monnier + + * indent.el (indent-region): Deactivate region (bug#6200). + 2010-05-19 Glenn Morris * vc-dir.el (vc-dir): Don't pop-up-windows. (Bug#6204) === modified file 'lisp/indent.el' --- lisp/indent.el 2010-03-22 17:28:27 +0000 +++ lisp/indent.el 2010-05-19 03:06:48 +0000 @@ -431,7 +431,11 @@ (or (eolp) (indent-to column 0)) (forward-line 1)) - (move-marker end nil)))) + (move-marker end nil))) + ;; In most cases, reindenting modifies the buffer, but it may also + ;; leave it unmodified, in which case we have to deactivate the mark + ;; by hand. + (deactivate-mark)) (defun indent-relative-maybe () "Indent a new line like previous nonblank line. ------------------------------------------------------------ revno: 100363 committer: Glenn Morris branch nick: trunk timestamp: Tue 2010-05-18 20:01:24 -0700 message: * vc-dir.el (vc-dir): Don't pop-up-windows. (Bug#6204) diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2010-05-19 01:16:01 +0000 +++ lisp/ChangeLog 2010-05-19 03:01:24 +0000 @@ -1,8 +1,11 @@ +2010-05-19 Glenn Morris + + * vc-dir.el (vc-dir): Don't pop-up-windows. (Bug#6204) + 2010-05-19 Kenichi Handa * composite.el: Register compose-gstring-for-graphic in - composition-function-table only for combining characters (Mn, Mc, - Me). + composition-function-table only for combining characters (Mn, Mc, Me). 2010-05-18 Jay Belanger === modified file 'lisp/vc-dir.el' --- lisp/vc-dir.el 2010-04-20 18:52:07 +0000 +++ lisp/vc-dir.el 2010-05-19 03:01:24 +0000 @@ -1169,7 +1169,8 @@ nil t nil nil))))) (unless backend (setq backend (vc-responsible-backend dir))) - (pop-to-buffer (vc-dir-prepare-status-buffer "*vc-dir*" dir backend)) + (let (pop-up-windows) ; based on cvs-examine; bug#6204 + (pop-to-buffer (vc-dir-prepare-status-buffer "*vc-dir*" dir backend))) (if (derived-mode-p 'vc-dir-mode) (vc-dir-refresh) ;; FIXME: find a better way to pass the backend to `vc-dir-mode'. ------------------------------------------------------------ revno: 100362 committer: Glenn Morris branch nick: trunk timestamp: Tue 2010-05-18 19:56:44 -0700 message: * etc/TODO: prog-mode updates. diff: === modified file 'etc/TODO' --- etc/TODO 2010-03-30 16:03:08 +0000 +++ etc/TODO 2010-05-19 02:56:44 +0000 @@ -40,9 +40,9 @@ fix_submap_inheritance hack and to more cleanly express the relationship between minibuffer-local-*-map): I've had this locally for a long time, but the details of the semantics is somewhat ... delicate. -*** prog-mode (a parent-mode, like text-mode). Could/should provide - a better fill-paragraph default that uses syntax-tables to recognize - string/comment boundaries. +*** Derive from prog-mode in more places, close bug#5532. +*** prog-mode could/should provide a better fill-paragraph default + that uses syntax-tables to recognize string/comment boundaries. *** provide more completion-at-point-functions. Make existing in-buffer completion use completion-at-point. *** "functional" function-key-map that would make it easy to add (and ------------------------------------------------------------ revno: 100361 committer: Glenn Morris branch nick: trunk timestamp: Tue 2010-05-18 19:51:51 -0700 message: Minor msdos build change. * msdos/sed2v2.inp (ORDINARY_LINK): Set here rather than in s/msdos.h. * src/s/msdos.h (ORDINARY_LINK): Move to sed2v2.inp. diff: === modified file 'msdos/ChangeLog' --- msdos/ChangeLog 2010-05-19 02:42:04 +0000 +++ msdos/ChangeLog 2010-05-19 02:51:51 +0000 @@ -1,5 +1,7 @@ 2010-05-19 Glenn Morris + * sed2v2.inp (ORDINARY_LINK): Set here rather than in s/msdos.h. + * sed1v2.inp (LD): Edit to $(CC). (YMF_PASS_LDFLAGS): Edit to `flags'. === modified file 'msdos/sed2v2.inp' --- msdos/sed2v2.inp 2010-01-13 08:35:10 +0000 +++ msdos/sed2v2.inp 2010-05-19 02:51:51 +0000 @@ -52,6 +52,7 @@ /^#undef HAVE_MKSTEMP *$/s/^.*$/#define HAVE_MKSTEMP 1/ /^#undef HAVE_STRUCT_TM_TM_ZONE *$/s/^.*$/#define HAVE_STRUCT_TM_TM_ZONE 1/ /^#undef HAVE_SYNC *$/s/^.*$/#define HAVE_SYNC 1/ +/^#undef ORDINARY_LINK/s/^.*$/#define ORDINARY_LINK 1/ /^#undef PACKAGE_BUGREPORT/s/^.*$/#define PACKAGE_BUGREPORT ""/ /^#undef PACKAGE_NAME/s/^.*$/#define PACKAGE_NAME ""/ /^#undef PACKAGE_STRING/s/^.*$/#define PACKAGE_STRING ""/ === modified file 'src/ChangeLog' --- src/ChangeLog 2010-05-19 02:42:04 +0000 +++ src/ChangeLog 2010-05-19 02:51:51 +0000 @@ -1,5 +1,7 @@ 2010-05-19 Glenn Morris + * s/msdos.h (ORDINARY_LINK): Move to sed2v2.inp. + * Makefile.in (LD, YMF_PASS_LDFLAGS): Set with configure, not cpp. (GNULIB_VAR): Remove. (LIBES): Use LIB_GCC instead of GNULIB_VAR. === modified file 'src/s/msdos.h' --- src/s/msdos.h 2010-05-12 06:53:03 +0000 +++ src/s/msdos.h 2010-05-19 02:51:51 +0000 @@ -82,8 +82,6 @@ #define _NAIVE_DOS_REGS -#define ORDINARY_LINK - /* command.com does not understand `...` so we define this. */ #define SEPCHAR ';' ------------------------------------------------------------ revno: 100360 committer: Glenn Morris branch nick: trunk timestamp: Tue 2010-05-18 19:46:42 -0700 message: Regenerate configure, src/config.in. diff: === modified file 'configure' --- configure 2010-05-18 02:54:25 +0000 +++ configure 2010-05-19 02:46:42 +0000 @@ -818,6 +818,8 @@ POST_ALLOC_OBJ LD_SWITCH_SYSTEM_TEMACS LD_SWITCH_SYSTEM_EXTRA +YMF_PASS_LDFLAGS +LINKER LIB_GCC MOUSE_SUPPORT TOOLTIP_SUPPORT @@ -26616,8 +26618,79 @@ +LINKER= +ORDINARY_LINK= +case "$opsys" in + ## gnu: GNU needs its own crt0. + aix4-2|darwin|gnu|usg5-4|irix6-5|sol2*|unixware) ORDINARY_LINK=yes ;; + + cygwin) LINKER="\$(CC)" ;; + + ## On post 1.3 releases of NetBSD, gcc -nostdlib also clears the + ## library search parth, i.e. it won't search /usr/lib for libc and + ## friends. Using -nostartfiles instead avoids this problem, and + ## will also work on earlier NetBSD releases. + netbsd|openbsd) LINKER="\$(CC) -nostartfiles" ;; + + ## macpcc: NAKAJI Hiroyuki says + ## MkLinux/LinuxPPC needs this. + ## ibms390x only supports opsys = gnu-linux so it can be added here. + gnu-*) + case "$machine" in + macppc|ibms390x) LINKER="\$(CC) -nostdlib" ;; + esac + ;; +esac + +## A macro which other sections of Makefile can redefine to munge the +## flags before they are passed to LD. This is helpful if you have +## redefined LD to something odd, like "gcc". +## (The YMF prefix is a holdover from the old name "ymakefile".) +YMF_PASS_LDFLAGS=flags +if test "x$ORDINARY_LINK" = "xyes"; then + + LINKER="\$(CC)" + +cat >>confdefs.h <<\_ACEOF +#define ORDINARY_LINK 1 +_ACEOF + + +## The system files defining neither ORDINARY_LINK nor LINKER are: +## (bsd-common), freebsd, gnu-* not on macppc|ibms390x, hpux*. +elif test "x$GCC" = "xyes" && test "x$LINKER" = "x"; then + + ## Versions of GCC >= 2.0 put their library, libgcc.a, in obscure + ## places that are difficult to figure out at make time. Fortunately, + ## these same versions allow you to pass arbitrary flags on to the + ## linker, so there is no reason not to use it as a linker. + ## + ## Well, it is not quite perfect. The "-nostdlib" keeps GCC from + ## searching for libraries in its internal directories, so we have to + ## ask GCC explicitly where to find libgcc.a (LIB_GCC below). + LINKER="\$(CC) -nostdlib" + ## GCC passes any argument prefixed with -Xlinker directly to the linker. + ## See prefix-args.c for an explanation of why we do not do this with the + ## shell''s ``for'' construct. Note that sane people do not have '.' in + ## their paths, so we must use ./prefix-args. + ## TODO either make prefix-args check ORDINARY_LINK internally, + ## or remove it altogether (bug#6184), removing the need for this macro. + YMF_PASS_LDFLAGS='`./prefix-args -Xlinker flags`' +fi + + +test "x$LINKER" = "x" && LINKER=ld +## FIXME? What setting of YMF_PASS_LDFLAGS should this have? +test "$NS_IMPL_GNUSTEP" = "yes" && LINKER="\$(CC) -rdynamic" + + + + +## FIXME? The logic here is not precisely the same as that above +## setting YMF_PASS_LDFLAGS. There is no check here for a pre-defined +## LINKER. Should we only be setting LIB_GCC if LD ~ -nostdlib? LIB_GCC= -if test "x$GCC" = "xyes"; then +if test "x$GCC" = "xyes" && test "x$ORDINARY_LINK" != "xyes"; then case "$opsys" in ## cygwin: don't link against static libgcc. === modified file 'src/config.in' --- src/config.in 2010-05-16 05:58:55 +0000 +++ src/config.in 2010-05-19 02:46:42 +0000 @@ -841,6 +841,9 @@ /* Define to 1 if you are using NS windowing under GNUstep. */ #undef NS_IMPL_GNUSTEP +/* Define if the C compiler is the linker. */ +#undef ORDINARY_LINK + /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT ------------------------------------------------------------ revno: 100359 committer: Glenn Morris branch nick: trunk timestamp: Tue 2010-05-18 19:42:04 -0700 message: Set linker-related things with configure. * configure.in (LINKER, YMF_PASS_LDFLAGS): New output variables. (ORDINARY_LINK): New AC_DEFINE. (LIB_GCC): No need to set if ORDINARY_LINK. * src/Makefile.in (LD, YMF_PASS_LDFLAGS): Set with configure, not cpp. (GNULIB_VAR): Remove. (LIBES): Use LIB_GCC instead of GNULIB_VAR. * src/m/ibms390x.h (LINKER): * src/m/macppc.h (LINKER) [GNU_LINUX]: * src/s/aix4-2.h (ORDINARY_LINK): * src/s/cygwin.h (LINKER): * src/s/darwin.h (ORDINARY_LINK): * src/s/gnu.h (ORDINARY_LINK): * src/s/netbsd.h (LINKER): * src/s/usg5-4.h (ORDINARY_LINK): Move to configure. * msdos/sed1v2.inp (LD): Edit to $(CC). (YMF_PASS_LDFLAGS): Edit to `flags'. diff: === modified file 'ChangeLog' --- ChangeLog 2010-05-18 02:49:28 +0000 +++ ChangeLog 2010-05-19 02:42:04 +0000 @@ -1,3 +1,9 @@ +2010-05-19 Glenn Morris + + * configure.in (LINKER, YMF_PASS_LDFLAGS): New output variables. + (ORDINARY_LINK): New AC_DEFINE. + (LIB_GCC): No need to set if ORDINARY_LINK. + 2010-05-18 Glenn Morris * configure.in (POST_ALLOC_OBJ) [cygwin]: Omit vm-limit.o. === modified file 'configure.in' --- configure.in 2010-05-18 02:49:28 +0000 +++ configure.in 2010-05-19 02:42:04 +0000 @@ -3277,8 +3277,75 @@ AC_SUBST(LD_SWITCH_SYSTEM_EXTRA) +LINKER= +ORDINARY_LINK= +case "$opsys" in + ## gnu: GNU needs its own crt0. + aix4-2|darwin|gnu|usg5-4|irix6-5|sol2*|unixware) ORDINARY_LINK=yes ;; + + cygwin) LINKER="\$(CC)" ;; + + ## On post 1.3 releases of NetBSD, gcc -nostdlib also clears the + ## library search parth, i.e. it won't search /usr/lib for libc and + ## friends. Using -nostartfiles instead avoids this problem, and + ## will also work on earlier NetBSD releases. + netbsd|openbsd) LINKER="\$(CC) -nostartfiles" ;; + + ## macpcc: NAKAJI Hiroyuki says + ## MkLinux/LinuxPPC needs this. + ## ibms390x only supports opsys = gnu-linux so it can be added here. + gnu-*) + case "$machine" in + macppc|ibms390x) LINKER="\$(CC) -nostdlib" ;; + esac + ;; +esac + +## A macro which other sections of Makefile can redefine to munge the +## flags before they are passed to LD. This is helpful if you have +## redefined LD to something odd, like "gcc". +## (The YMF prefix is a holdover from the old name "ymakefile".) +YMF_PASS_LDFLAGS=flags +if test "x$ORDINARY_LINK" = "xyes"; then + + LINKER="\$(CC)" + AC_DEFINE(ORDINARY_LINK, 1, [Define if the C compiler is the linker.]) + +## The system files defining neither ORDINARY_LINK nor LINKER are: +## (bsd-common), freebsd, gnu-* not on macppc|ibms390x, hpux*. +elif test "x$GCC" = "xyes" && test "x$LINKER" = "x"; then + + ## Versions of GCC >= 2.0 put their library, libgcc.a, in obscure + ## places that are difficult to figure out at make time. Fortunately, + ## these same versions allow you to pass arbitrary flags on to the + ## linker, so there is no reason not to use it as a linker. + ## + ## Well, it is not quite perfect. The "-nostdlib" keeps GCC from + ## searching for libraries in its internal directories, so we have to + ## ask GCC explicitly where to find libgcc.a (LIB_GCC below). + LINKER="\$(CC) -nostdlib" + ## GCC passes any argument prefixed with -Xlinker directly to the linker. + ## See prefix-args.c for an explanation of why we do not do this with the + ## shell''s ``for'' construct. Note that sane people do not have '.' in + ## their paths, so we must use ./prefix-args. + ## TODO either make prefix-args check ORDINARY_LINK internally, + ## or remove it altogether (bug#6184), removing the need for this macro. + YMF_PASS_LDFLAGS='`./prefix-args -Xlinker flags`' +fi +AC_SUBST(YMF_PASS_LDFLAGS) + +test "x$LINKER" = "x" && LINKER=ld +## FIXME? What setting of YMF_PASS_LDFLAGS should this have? +test "$NS_IMPL_GNUSTEP" = "yes" && LINKER="\$(CC) -rdynamic" + +AC_SUBST(LINKER) + + +## FIXME? The logic here is not precisely the same as that above +## setting YMF_PASS_LDFLAGS. There is no check here for a pre-defined +## LINKER. Should we only be setting LIB_GCC if LD ~ -nostdlib? LIB_GCC= -if test "x$GCC" = "xyes"; then +if test "x$GCC" = "xyes" && test "x$ORDINARY_LINK" != "xyes"; then case "$opsys" in ## cygwin: don't link against static libgcc. === modified file 'msdos/ChangeLog' --- msdos/ChangeLog 2010-05-18 07:57:27 +0000 +++ msdos/ChangeLog 2010-05-19 02:42:04 +0000 @@ -1,3 +1,8 @@ +2010-05-19 Glenn Morris + + * sed1v2.inp (LD): Edit to $(CC). + (YMF_PASS_LDFLAGS): Edit to `flags'. + 2010-05-18 Eli Zaretskii * sed1x.inp: Add copyright notice. === modified file 'msdos/sed1v2.inp' --- msdos/sed1v2.inp 2010-05-18 02:44:07 +0000 +++ msdos/sed1v2.inp 2010-05-19 02:42:04 +0000 @@ -55,6 +55,7 @@ /^TEMACS_LDFLAGS2 *=/s/@TEMACS_LDFLAGS2@/$(LDFLAGS)/ /^LIBS_SYSTEM *=/s/@LIBS_SYSTEM@// /^LIB_GCC *=/s/@LIB_GCC@/-Lgcc/ +/^LD *=/s/@LINKER@/$(CC)/ /^LIB_STANDARD *=/s/@LIB_STANDARD@// /^LIB_MATH *=/s/@LIB_MATH@/-lm/ /^LIBTIFF *=/s/@LIBTIFF@// @@ -143,6 +144,7 @@ /^ @: /d /^ -\{0,1\}ln -/s/ln -f/cp -pf/ /^[ ]touch /s/touch/djecho $@ >/ +s/@YMF_PASS_LDFLAGS@/flags/ s/bootstrap-emacs/b-emacs/ s/bootstrap-temacs/b-temacs/ s/bootstrap-doc/b-doc/ === modified file 'src/ChangeLog' --- src/ChangeLog 2010-05-19 02:27:01 +0000 +++ src/ChangeLog 2010-05-19 02:42:04 +0000 @@ -1,5 +1,19 @@ 2010-05-19 Glenn Morris + * Makefile.in (LD, YMF_PASS_LDFLAGS): Set with configure, not cpp. + (GNULIB_VAR): Remove. + (LIBES): Use LIB_GCC instead of GNULIB_VAR. + + * m/ibms390x.h (LINKER): + * m/macppc.h (LINKER) [GNU_LINUX]: + * s/aix4-2.h (ORDINARY_LINK): + * s/cygwin.h (LINKER): + * s/darwin.h (ORDINARY_LINK): + * s/gnu.h (ORDINARY_LINK): + * s/netbsd.h (LINKER): + * s/usg5-4.h (ORDINARY_LINK): + Move to configure. + * s/aix4-2.h (LINKER): Remove; this file sets ORDINARY_LINK. 2010-05-18 Chong Yidong === modified file 'src/Makefile.in' --- src/Makefile.in 2010-05-18 02:49:28 +0000 +++ src/Makefile.in 2010-05-19 02:42:04 +0000 @@ -124,6 +124,8 @@ ## Where to find libgcc.a, if using gcc and necessary. LIB_GCC=@LIB_GCC@ +LD=@LINKER@ + ## May use $CRT_DIR. LIB_STANDARD=@LIB_STANDARD@ @@ -329,52 +331,6 @@ $(CC) -c $(CPPFLAGS) $(ALL_OBJC_CFLAGS) $< -/* A macro which other sections of Makefile can redefine to munge the - flags before they are passed to LD. This is helpful if you have - redefined LD to something odd, like "gcc". - (The YMF prefix is a holdover from the old name "ymakefile".) */ -#define YMF_PASS_LDFLAGS(flags) flags - - -#ifdef ORDINARY_LINK -LD = $(CC) - -#else /* not ORDINARY_LINK */ -GNULIB_VAR = $(LIB_GCC) - -/* Fix linking if compiled with GCC. */ -#if defined (__GNUC__) && ! defined (LINKER) -/* Versions of GCC >= 2.0 put their library, libgcc.a, in obscure - places that are difficult to figure out at make time. Fortunately, - these same versions allow you to pass arbitrary flags on to the - linker, so there is no reason not to use it as a linker. - - Well, it is not quite perfect. The "-nostdlib" keeps GCC from - searching for libraries in its internal directories, so we have to - ask GCC explicitly where to find libgcc.a. */ -#define LINKER $(CC) -nostdlib -/* GCC passes any argument prefixed with -Xlinker directly to the linker. - See prefix-args.c for an explanation of why we do not do this with the - shell''s ``for'' construct. Note that sane people do not have '.' in - their paths, so we must use ./prefix-args. */ -#undef YMF_PASS_LDFLAGS -#define YMF_PASS_LDFLAGS(flags) `./prefix-args -Xlinker flags` -#endif /* defined (__GNUC__) && ! defined (LINKER) */ - -#ifdef LINKER -LD=LINKER -#else /* not LINKER */ -LD=ld -#endif /* not LINKER */ - -#endif /* not ORDINARY_LINK */ - - -#ifdef NS_IMPL_GNUSTEP -LD=$(CC) -rdynamic -#endif - - /* lastfile must follow all files whose initialized data areas should be dumped as pure by dump-emacs. */ obj= dispnew.o frame.o scroll.o xdisp.o menu.o $(XMENU_OBJ) window.o \ @@ -634,13 +590,13 @@ /* Construct full set of libraries to be linked. Note that SunOS needs -lm to come before -lc; otherwise, you get duplicated symbols. If the standard libraries were compiled - with GCC, we might need gnulib again after them. */ + with GCC, we might need LIB_GCC again after them. */ LIBES = $(LOADLIBES) $(LIBS) $(LIBX_BASE) $(LIBX_OTHER) $(LIBSOUND) \ $(RSVG_LIBS) $(DBUS_LIBS) $(LIBGPM) $(LIBRESOLV) $(LIBS_SYSTEM) \ $(LIBS_TERMCAP) $(GETLOADAVG_LIBS) ${GCONF_LIBS} ${LIBSELINUX_LIBS} \ $(FREETYPE_LIBS) $(FONTCONFIG_LIBS) $(LIBOTF_LIBS) $(M17N_FLT_LIBS) \ - $(GNULIB_VAR) $(LIB_MATH) $(LIB_STANDARD) $(GNULIB_VAR) + $(LIB_GCC) $(LIB_MATH) $(LIB_STANDARD) $(LIB_GCC) all: emacs${EXEEXT} $(OTHER_FILES) @@ -682,6 +638,8 @@ buildobj.h: Makefile echo "#define BUILDOBJ \"${obj} ${otherobj} " "\"" > buildobj.h +#define YMF_PASS_LDFLAGS(flags) @YMF_PASS_LDFLAGS@ + temacs${EXEEXT}: $(START_FILES) stamp-oldxmenu ${obj} ${otherobj} prefix-args${EXEEXT} $(LD) YMF_PASS_LDFLAGS ( ${TEMACS_LDFLAGS} \ ${NS_IMPL_GNUSTEP_TEMACS_LDFLAGS} ) \ === modified file 'src/m/ibms390x.h' --- src/m/ibms390x.h 2010-05-12 02:37:59 +0000 +++ src/m/ibms390x.h 2010-05-19 02:42:04 +0000 @@ -62,8 +62,6 @@ /* On the 64 bit architecture, we can use 60 bits for addresses */ #define VALBITS 60 -#define LINKER $(CC) -nostdlib - /* Define XPNTR to avoid or'ing with DATA_SEG_BITS */ #define XPNTR(a) XUINT (a) === modified file 'src/m/macppc.h' --- src/m/macppc.h 2010-05-12 02:37:59 +0000 +++ src/m/macppc.h 2010-05-19 02:42:04 +0000 @@ -32,12 +32,6 @@ #define HAVE_TEXT_START #endif -/* NAKAJI Hiroyuki says this is needed - For MkLinux/LinuxPPC. */ -#ifdef GNU_LINUX -#define LINKER $(CC) -nostdlib -#endif - #ifdef _ARCH_PPC64 #ifndef _LP64 #define _LP64 === modified file 'src/s/aix4-2.h' --- src/s/aix4-2.h 2010-05-19 02:27:01 +0000 +++ src/s/aix4-2.h 2010-05-19 02:42:04 +0000 @@ -106,7 +106,5 @@ #define UNEXEC unexaix.o -#define ORDINARY_LINK - /* arch-tag: 38fe75ea-6aef-42bd-8449-bc34d921a562 (do not change this comment) */ === modified file 'src/s/cygwin.h' --- src/s/cygwin.h 2010-05-12 06:53:03 +0000 +++ src/s/cygwin.h 2010-05-19 02:42:04 +0000 @@ -1,7 +1,7 @@ /* System description header file for Cygwin. Copyright (C) 1985, 1986, 1992, 1999, 2002, 2003, 2004, 2005, 2006, - 2007, 2008, 2009, 2010 Free Software Foundation, Inc. + 2007, 2008, 2009, 2010 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -19,7 +19,7 @@ along with GNU Emacs. If not, see . */ /* SYSTEM_TYPE should indicate the kind of system you are using. - It sets the Lisp variable system-type. */ + It sets the Lisp variable system-type. */ #define SYSTEM_TYPE "cygwin" /* Emacs can read input using SIGIO and buffering characters itself, @@ -94,7 +94,6 @@ #define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_p - (FILE)->_bf._base) #define SYSV_SYSTEM_DIR 1 #define UNEXEC unexcw.o -#define LINKER $(CC) #define HAVE_SOCKETS === modified file 'src/s/darwin.h' --- src/s/darwin.h 2010-05-12 06:53:03 +0000 +++ src/s/darwin.h 2010-05-19 02:42:04 +0000 @@ -147,9 +147,6 @@ #undef HAVE_POSIX_MEMALIGN #endif -/* Link this program just by running cc. */ -#define ORDINARY_LINK - /* Define the following so emacs symbols will not conflict with those in the System framework. Otherwise -prebind will not work. */ === modified file 'src/s/gnu.h' --- src/s/gnu.h 2010-05-18 02:44:07 +0000 +++ src/s/gnu.h 2010-05-19 02:42:04 +0000 @@ -29,8 +29,7 @@ #define SIGNALS_VIA_CHARACTERS -/* GNU needs its own crt0, and libc defines data_start. */ -#define ORDINARY_LINK +/* libc defines data_start. */ #define DATA_START ({ extern int data_start; (char *) &data_start; }) /* Some losing code fails to include this and then assumes === modified file 'src/s/netbsd.h' --- src/s/netbsd.h 2010-05-14 02:28:28 +0000 +++ src/s/netbsd.h 2010-05-19 02:42:04 +0000 @@ -26,12 +26,6 @@ #define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_p - (FILE)->_bf._base) -/* On post 1.3 releases of NetBSD, gcc -nostdlib also clears - the library search parth, i.e. it won't search /usr/lib - for libc and friends. Using -nostartfiles instead avoids - this problem, and will also work on earlier NetBSD releases. */ -#define LINKER $(CC) -nostartfiles - #define DEFAULT_SOUND_DEVICE "/dev/audio" /* Greg A. Woods says we must include signal.h === modified file 'src/s/usg5-4.h' --- src/s/usg5-4.h 2010-05-12 06:53:03 +0000 +++ src/s/usg5-4.h 2010-05-19 02:42:04 +0000 @@ -69,8 +69,6 @@ /* On USG systems signal handlers return void. */ #define SIGTYPE void -#define ORDINARY_LINK - /* Undump with ELF. */ #undef COFF ------------------------------------------------------------ revno: 100358 committer: Glenn Morris branch nick: trunk timestamp: Tue 2010-05-18 19:27:01 -0700 message: * s/aix4-2.h (LINKER): Remove; this file sets ORDINARY_LINK. In any case, ORDINARY_LINK means uses the C compiler as the LINKER, so setting LINKER=cc is redundant. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2010-05-18 18:05:43 +0000 +++ src/ChangeLog 2010-05-19 02:27:01 +0000 @@ -1,3 +1,7 @@ +2010-05-19 Glenn Morris + + * s/aix4-2.h (LINKER): Remove; this file sets ORDINARY_LINK. + 2010-05-18 Chong Yidong * character.c (Fstring, Funibyte_string): Use SAFE_ALLOCA to === modified file 'src/s/aix4-2.h' --- src/s/aix4-2.h 2010-05-12 06:53:03 +0000 +++ src/s/aix4-2.h 2010-05-19 02:27:01 +0000 @@ -61,11 +61,7 @@ /* The kernel symbol where the load average is found is named avenrun. */ #define LDAV_SYMBOL "avenrun" -/* Special itemss needed to make Emacs run on this system. */ - -#ifndef __GNUC__ -#define LINKER cc -#endif +/* Special items needed to make Emacs run on this system. */ /* The following definition seems to be needed in AIX version 3.1.6.8. It may not have been needed in certain earlier versions. */ ------------------------------------------------------------ revno: 100357 [merge] committer: Kenichi Handa branch nick: trunk timestamp: Wed 2010-05-19 10:26:40 +0900 message: composite.el: Register compose-gstring-for-graphic in composition-function-table only for combining characters (Mn, Mc, Me). diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2010-05-18 22:49:56 +0000 +++ lisp/ChangeLog 2010-05-19 01:16:01 +0000 @@ -1,3 +1,9 @@ +2010-05-19 Kenichi Handa + + * composite.el: Register compose-gstring-for-graphic in + composition-function-table only for combining characters (Mn, Mc, + Me). + 2010-05-18 Jay Belanger * calc/calc-trail.el (calc-trail-isearch-forward) === modified file 'lisp/composite.el' --- lisp/composite.el 2010-05-08 18:47:07 +0000 +++ lisp/composite.el 2010-05-19 01:09:50 +0000 @@ -532,9 +532,9 @@ (defun compose-gstring-for-graphic (gstring) "Compose glyph-string GSTRING for graphic display. -Non-spacing characters are composed with the preceding base +Combining characters are composed with the preceding base character. If the preceding character is not a base character, -each non-spacing character is composed as a spacing character by +each combining character is composed as a spacing character by a padding space before and/or after the character. All non-spacing characters has this function in @@ -660,9 +660,9 @@ [nil 0 compose-gstring-for-graphic]))) (map-char-table #'(lambda (key val) - (if (= val 0) + (if (memq val '(Mn Mc Me)) (set-char-table-range composition-function-table key elt))) - char-width-table)) + unicode-category-table)) (defun compose-gstring-for-terminal (gstring) "Compose glyph string GSTRING for terminal display. ------------------------------------------------------------ revno: 100356 committer: Jay Belanger branch nick: trunk timestamp: Tue 2010-05-18 17:49:56 -0500 message: calc-trail.el (calc-trail-isearch-forward) (calc-trail-isearch-backward): Ensure that the new window point is set correctly. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2010-05-18 20:31:44 +0000 +++ lisp/ChangeLog 2010-05-18 22:49:56 +0000 @@ -1,3 +1,9 @@ +2010-05-18 Jay Belanger + + * calc/calc-trail.el (calc-trail-isearch-forward) + (calc-trail-isearch-backward): Ensure that the new window + point is set correctly. + 2010-05-18 Stefan Monnier * subr.el (read-quoted-char): Resolve modifiers after key === modified file 'lisp/calc/calc-trail.el' --- lisp/calc/calc-trail.el 2010-01-13 08:35:10 +0000 +++ lisp/calc/calc-trail.el 2010-05-18 22:49:56 +0000 @@ -108,20 +108,28 @@ (defun calc-trail-isearch-forward () (interactive) (calc-with-trail-buffer - (save-window-excursion - (select-window (get-buffer-window (current-buffer))) - (let ((search-exit-char ?\r)) - (isearch-forward))) - (calc-trail-here))) + (let ((win (get-buffer-window (current-buffer))) + pos) + (save-window-excursion + (select-window win) + (isearch-forward) + (setq pos (point))) + (goto-char pos) + (set-window-point win pos) + (calc-trail-here)))) (defun calc-trail-isearch-backward () (interactive) (calc-with-trail-buffer - (save-window-excursion - (select-window (get-buffer-window (current-buffer))) - (let ((search-exit-char ?\r)) - (isearch-backward))) - (calc-trail-here))) + (let ((win (get-buffer-window (current-buffer))) + pos) + (save-window-excursion + (select-window win) + (isearch-backward) + (setq pos (point))) + (goto-char pos) + (set-window-point win pos) + (calc-trail-here)))) (defun calc-trail-yank (arg) (interactive "P") ------------------------------------------------------------ revno: 100355 committer: Stefan Monnier branch nick: trunk timestamp: Tue 2010-05-18 16:31:44 -0400 message: * subr.el (read-quoted-char): Resolve modifiers after key remapping. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2010-05-18 19:34:26 +0000 +++ lisp/ChangeLog 2010-05-18 20:31:44 +0000 @@ -1,3 +1,8 @@ +2010-05-18 Stefan Monnier + + * subr.el (read-quoted-char): Resolve modifiers after key + remapping (bug#6212). + 2010-05-18 Michael Albinus Add visualization code for secrets. === modified file 'lisp/subr.el' --- lisp/subr.el 2010-05-15 13:23:48 +0000 +++ lisp/subr.el 2010-05-18 20:31:44 +0000 @@ -1868,16 +1868,14 @@ (if inhibit-quit (setq quit-flag nil))) ;; Translate TAB key into control-I ASCII character, and so on. ;; Note: `read-char' does it using the `ascii-character' property. - ;; We could try and use read-key-sequence instead, but then C-q ESC - ;; or C-q C-x might not return immediately since ESC or C-x might be - ;; bound to some prefix in function-key-map or key-translation-map. + ;; We should try and use read-key instead. + (let ((translation (lookup-key local-function-key-map (vector char)))) + (if (arrayp translation) + (setq translated (aref translation 0)))) (setq translated (if (integerp char) (char-resolve-modifiers char) char)) - (let ((translation (lookup-key local-function-key-map (vector char)))) - (if (arrayp translation) - (setq translated (aref translation 0)))) (cond ((null translated)) ((not (integerp translated)) (setq unread-command-events (list char) ------------------------------------------------------------ revno: 100354 committer: Michael Albinus branch nick: trunk timestamp: Tue 2010-05-18 21:43:04 +0200 message: Add command `secrets-show-secrets'. diff: === modified file 'etc/NEWS' --- etc/NEWS 2010-05-17 19:27:26 +0000 +++ etc/NEWS 2010-05-18 19:43:04 +0000 @@ -214,7 +214,9 @@ ** secrets.el is an implementation of the Secret Service API, an interface to password managers like GNOME Keyring or KDE Wallet. The -Secret Service API requires D-Bus for communication. +Secret Service API requires D-Bus for communication. The command +`secrets-show-secrets' offers a buffer with a visualization of the +secrets. * Incompatible Lisp Changes in Emacs 24.1 ------------------------------------------------------------ revno: 100353 committer: Michael Albinus branch nick: trunk timestamp: Tue 2010-05-18 21:34:26 +0200 message: Add visualization code for secrets. * net/secrets.el (secrets-mode): New major mode. (secrets-show-secrets, secrets-show-collections) (secrets-expand-collection, secrets-expand-item) (secrets-tree-widget-after-toggle-function) (secrets-tree-widget-show-password): New defuns. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2010-05-18 19:24:24 +0000 +++ lisp/ChangeLog 2010-05-18 19:34:26 +0000 @@ -1,3 +1,12 @@ +2010-05-18 Michael Albinus + + Add visualization code for secrets. + * net/secrets.el (secrets-mode): New major mode. + (secrets-show-secrets, secrets-show-collections) + (secrets-expand-collection, secrets-expand-item) + (secrets-tree-widget-after-toggle-function) + (secrets-tree-widget-show-password): New defuns. + 2010-05-18 Stefan Monnier * emacs-lisp/smie.el (smie-next-sexp): Break inf-loop at BOB. @@ -146,7 +155,7 @@ 2010-05-13 Michael Albinus * net/tramp.el (with-progress-reporter): Create reporter object - only when the message would be displayed. Handled nested calls. + only when the message would be displayed. Handle nested calls. (tramp-handle-load, tramp-handle-file-local-copy) (tramp-handle-insert-file-contents, tramp-handle-write-region) (tramp-maybe-send-script, tramp-find-shell): === modified file 'lisp/net/secrets.el' --- lisp/net/secrets.el 2010-03-20 19:21:44 +0000 +++ lisp/net/secrets.el 2010-05-18 19:34:26 +0000 @@ -129,6 +129,9 @@ ;; (secrets-search-items "session" :user "joe") ;; => ("my item" "another item") +;; Interactively, collections, items and their attributes could be +;; inspected by the command `secrets-show-secrets'. + ;;; Code: ;; It has been tested with GNOME Keyring 2.29.92. An implementation @@ -148,6 +151,13 @@ (require 'dbus) +(declare-function tree-widget-set-theme "tree-widget") +(declare-function widget-create-child-and-convert "wid-edit") +(declare-function widget-default-value-set "wid-edit") +(declare-function widget-field-end "wid-edit") +(declare-function widget-member "wid-edit") +(defvar tree-widget-after-toggle-functions) + (defvar secrets-enabled nil "Whether there is a daemon offering the Secret Service API.") @@ -665,6 +675,145 @@ :session secrets-service item-path secrets-interface-item "Delete"))))) +;;; Visualization. + +(define-derived-mode secrets-mode nil "Secrets" + "Major mode for presenting search results of a Xesam search. +In this mode, widgets represent the search results. + +\\{secrets-mode-map} +Turning on Xesam mode runs the normal hook `xesam-mode-hook'. It +can be used to set `xesam-notify-function', which must a search +engine specific, widget :notify function to visualize xesam:url." + ;; Keymap. + (setq secrets-mode-map (copy-keymap special-mode-map)) + (set-keymap-parent secrets-mode-map widget-keymap) + (define-key secrets-mode-map "z" 'kill-this-buffer) + + ;; When we toggle, we must set temporary widgets. + (set (make-local-variable 'tree-widget-after-toggle-functions) + '(secrets-tree-widget-after-toggle-function)) + + (when (not (called-interactively-p 'interactive)) + ;; Initialize buffer. + (setq buffer-read-only t) + (let ((inhibit-read-only t)) + (erase-buffer)))) + +;; It doesn't make sense to call it interactively. +(put 'secrets-mode 'disabled t) + +;; The very first buffer created with `secrets-mode' does not have the +;; keymap etc. So we create a dummy buffer. Stupid. +(with-temp-buffer (secrets-mode)) + +;;;###autoload +(defun secrets-show-secrets () + "Display a list of collections from the Secret Service API. +The collections are in tree view, that means they can be expanded +to the corresponding secret items, which could also be expanded +to their attributes." + (interactive) + ;; Create the search buffer. + (with-current-buffer (get-buffer-create "*Secrets*") + (switch-to-buffer-other-window (current-buffer)) + ;; Inialize buffer with `secrets-mode'. + (secrets-mode) + (secrets-show-collections))) + +(defun secrets-show-collections () + "Show all available collections." + (let ((inhibit-read-only t) + (alias (secrets-get-alias "default"))) + (erase-buffer) + (tree-widget-set-theme "folder") + (dolist (coll (secrets-list-collections)) + (widget-create + `(tree-widget + :tag ,coll + :collection ,coll + :open nil + :sample-face bold + :expander secrets-expand-collection))))) + +(defun secrets-expand-collection (widget) + "Expand items of collection shown as WIDGET." + (let ((coll (widget-get widget :collection))) + (mapcar + (lambda (item) + `(tree-widget + :tag ,item + :collection ,coll + :item ,item + :open nil + :sample-face bold + :expander secrets-expand-item)) + (secrets-list-items coll)))) + +(defun secrets-expand-item (widget) + "Expand password and attributes of item shown as WIDGET." + (let* ((coll (widget-get widget :collection)) + (item (widget-get widget :item)) + (attributes (secrets-get-attributes coll item)) + ;; padding is needed to format attribute names. + (padding + (1+ + (apply + 'max + (cons + (length "password") + (mapcar + (lambda (attribute) (length (symbol-name (car attribute)))) + attributes)))))) + (cons + ;; The password widget. + `(editable-field :tag "password" + :secret ?* + :value ,(secrets-get-secret coll item) + :sample-face widget-button-pressed + ;; We specify :size in order to limit the field. + :size 0 + :format ,(concat + "%{%t%}:" + (make-string (- padding (length "password")) ? ) + "%v\n")) + (mapcar + (lambda (attribute) + (let ((name (symbol-name (car attribute))) + (value (cdr attribute))) + ;; The attribute widget. + `(editable-field :tag ,name + :value ,value + :sample-face widget-documentation + ;; We specify :size in order to limit the field. + :size 0 + :format ,(concat + "%{%t%}:" + (make-string (- padding (length name)) ? ) + "%v\n")))) + attributes)))) + +(defun secrets-tree-widget-after-toggle-function (widget &rest ignore) + "Add a temporary widget to show the password." + (dolist (child (widget-get widget :children)) + (when (widget-member child :secret) + (goto-char (widget-field-end child)) + (widget-insert " ") + (widget-create-child-and-convert + child 'push-button + :notify 'secrets-tree-widget-show-password + "Show password"))) + (widget-setup)) + +(defun secrets-tree-widget-show-password (widget &rest ignore) + "Show password, and remove temporary widget." + (let ((parent (widget-get widget :parent))) + (widget-put parent :secret nil) + (widget-default-value-set parent (widget-get parent :value)) + (widget-setup))) + +;;; Initialization. + (when (dbus-ping :session secrets-service 100) ;; We must reset all variables, when there is a new instance of the ------------------------------------------------------------ revno: 100352 committer: Stefan Monnier branch nick: trunk timestamp: Tue 2010-05-18 15:24:24 -0400 message: * emacs-lisp/smie.el (smie-next-sexp): Break inf-loop at BOB. (smie-backward-sexp, smie-forward-sexp): Remove boundary condition now handled in smie-next-sexp. (smie-indent-calculate): Provide a starting indentation (so the recursion is well-founded ;-). diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2010-05-18 16:03:51 +0000 +++ lisp/ChangeLog 2010-05-18 19:24:24 +0000 @@ -1,5 +1,11 @@ 2010-05-18 Stefan Monnier + * emacs-lisp/smie.el (smie-next-sexp): Break inf-loop at BOB. + (smie-backward-sexp, smie-forward-sexp): Remove boundary condition now + handled in smie-next-sexp. + (smie-indent-calculate): Provide a starting indentation (so the + recursion is well-founded ;-). + Fix handling of non-associative equal levels. * emacs-lisp/smie.el (smie-prec2-levels): Choose distinct levels even when it's not needed. === modified file 'lisp/emacs-lisp/smie.el' --- lisp/emacs-lisp/smie.el 2010-05-18 16:03:51 +0000 +++ lisp/emacs-lisp/smie.el 2010-05-18 19:24:24 +0000 @@ -348,10 +348,13 @@ (cond ((null toklevels) - (if (equal token "") + (when (equal token "") (condition-case err (progn (goto-char pos) (funcall next-sexp 1) nil) - (scan-error (throw 'return (list t (caddr err))))))) + (scan-error (throw 'return (list t (caddr err))))) + (if (eq pos (point)) + ;; We did not move, so let's abort the loop. + (throw 'return (list t (point)))))) ((null (funcall op-back toklevels)) ;; A token like a paren-close. (assert (funcall op-forw toklevels)) ;Otherwise, why mention it? @@ -401,15 +404,13 @@ (t POS TOKEN): same thing but for an open-paren or the beginning of buffer. (nil POS TOKEN): we skipped over a paren-like pair. nil: we skipped over an identifier, matched parentheses, ..." - (if (bobp) (list t (point)) (smie-next-sexp (lambda () (forward-comment (- (point-max))) (smie-backward-token)) (indirect-function 'backward-sexp) (indirect-function 'smie-op-left) (indirect-function 'smie-op-right) - halfsexp))) + halfsexp)) -;; Mirror image, not used for indentation. (defun smie-forward-sexp (&optional halfsexp) "Skip over one sexp. HALFSEXP if non-nil, means skip over a partial sexp if needed. I.e. if the @@ -421,13 +422,12 @@ (t POS TOKEN): same thing but for an open-paren or the beginning of buffer. (nil POS TOKEN): we skipped over a paren-like pair. nil: we skipped over an identifier, matched parentheses, ..." - (if (eobp) (list t (point)) (smie-next-sexp (lambda () (forward-comment (point-max)) (smie-forward-token)) (indirect-function 'forward-sexp) (indirect-function 'smie-op-right) (indirect-function 'smie-op-left) - halfsexp))) + halfsexp)) (defun smie-backward-sexp-command (&optional n) "Move backward through N logical elements." @@ -514,6 +514,10 @@ (and virtual (if (eq virtual :hanging) (not (smie-indent-hanging-p)) (smie-bolp)) (current-column)) + ;; Start the file at column 0. + (save-excursion + (forward-comment (- (point-max))) + (if (bobp) 0)) ;; Align close paren with opening paren. (save-excursion ;; (forward-comment (point-max)) ------------------------------------------------------------ revno: 100351 [merge] committer: Chong Yidong branch nick: trunk timestamp: Tue 2010-05-18 14:05:43 -0400 message: Fix stack overflow in string creation (Bug#6214). * character.c (Fstring, Funibyte_string): Use SAFE_ALLOCA to prevent stack overflow if number of arguments is too large (Bug#6214). diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2010-05-18 08:33:29 +0000 +++ src/ChangeLog 2010-05-18 18:05:43 +0000 @@ -1,3 +1,9 @@ +2010-05-18 Chong Yidong + + * character.c (Fstring, Funibyte_string): Use SAFE_ALLOCA to + prevent stack overflow if number of arguments is too large + (Bug#6214). + 2010-05-18 Juanma Barranquero * charset.c (load_charset_map_from_file): Don't call close after fclose. === modified file 'src/character.c' --- src/character.c 2010-03-02 04:44:28 +0000 +++ src/character.c 2010-05-18 18:01:10 +0000 @@ -961,10 +961,13 @@ int n; Lisp_Object *args; { - int i; - unsigned char *buf = (unsigned char *) alloca (MAX_MULTIBYTE_LENGTH * n); - unsigned char *p = buf; - int c; + int i, c; + unsigned char *buf, *p; + Lisp_Object str; + USE_SAFE_ALLOCA; + + SAFE_ALLOCA (buf, unsigned char *, MAX_MULTIBYTE_LENGTH * n); + p = buf; for (i = 0; i < n; i++) { @@ -973,7 +976,9 @@ p += CHAR_STRING (c, p); } - return make_string_from_bytes ((char *) buf, n, p - buf); + str = make_string_from_bytes ((char *) buf, n, p - buf); + SAFE_FREE (); + return str; } DEFUN ("unibyte-string", Funibyte_string, Sunibyte_string, 0, MANY, 0, @@ -983,10 +988,13 @@ int n; Lisp_Object *args; { - int i; - unsigned char *buf = (unsigned char *) alloca (n); - unsigned char *p = buf; - unsigned c; + int i, c; + unsigned char *buf, *p; + Lisp_Object str; + USE_SAFE_ALLOCA; + + SAFE_ALLOCA (buf, unsigned char *, n); + p = buf; for (i = 0; i < n; i++) { @@ -997,7 +1005,9 @@ *p++ = c; } - return make_string_from_bytes ((char *) buf, n, p - buf); + str = make_string_from_bytes ((char *) buf, n, p - buf); + SAFE_FREE (); + return str; } DEFUN ("char-resolve-modifiers", Fchar_resolve_modifiers, ------------------------------------------------------------ revno: 100350 committer: Stefan Monnier branch nick: trunk timestamp: Tue 2010-05-18 12:03:51 -0400 message: Fix handling of non-associative equal levels. * emacs-lisp/smie.el (smie-prec2-levels): Choose distinct levels even when it's not needed. (smie-op-left, smie-op-right): New functions. (smie-next-sexp): New function, extracted from smie-backward-sexp. Better handle equal levels to distinguish the associative case from the "multi-keyword construct" case. (smie-backward-sexp, smie-forward-sexp): Use it. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2010-05-18 08:33:29 +0000 +++ lisp/ChangeLog 2010-05-18 16:03:51 +0000 @@ -1,3 +1,14 @@ +2010-05-18 Stefan Monnier + + Fix handling of non-associative equal levels. + * emacs-lisp/smie.el (smie-prec2-levels): Choose distinct levels even + when it's not needed. + (smie-op-left, smie-op-right): New functions. + (smie-next-sexp): New function, extracted from smie-backward-sexp. + Better handle equal levels to distinguish the associative case from + the "multi-keyword construct" case. + (smie-backward-sexp, smie-forward-sexp): Use it. + 2010-05-18 Juanma Barranquero * progmodes/prolog.el (smie-indent-basic): Declare for byte-compiler. === modified file 'lisp/emacs-lisp/smie.el' --- lisp/emacs-lisp/smie.el 2010-05-18 07:44:07 +0000 +++ lisp/emacs-lisp/smie.el 2010-05-18 16:03:51 +0000 @@ -252,11 +252,23 @@ (dolist (cst csts) (unless (memq (car cst) rhvs) (setq progress t) + ;; We could give each var in a given iteration the same value, + ;; but we can also give them arbitrarily different values. + ;; Basically, these are vars between which there is no + ;; constraint (neither equality nor inequality), so + ;; anything will do. + ;; We give them arbitrary values, which means that we + ;; replace the "no constraint" case with either > or < + ;; but not =. The reason we do that is so as to try and + ;; distinguish associative operators (which will have + ;; left = right). + (unless (caar cst) (setcar (car cst) i) + (incf i)) (setq csts (delq cst csts)))) (unless progress (error "Can't resolve the precedence table to precedence levels"))) - (incf i)) + (incf i 10)) ;; Propagate equalities back to their source. (dolist (eq (nreverse eqs)) (assert (null (caar eq))) @@ -278,6 +290,9 @@ Each element is of the form (TOKEN LEFT-LEVEL RIGHT-LEVEL). Parsing is done using an operator precedence parser.") +(defalias 'smie-op-left 'car) +(defalias 'smie-op-right 'cadr) + (defun smie-backward-token () ;; FIXME: This may be an OK default but probably needs a hook. (buffer-substring (point) @@ -292,6 +307,89 @@ (skip-syntax-forward "w_'")) (point)))) +(defun smie-associative-p (toklevels) + ;; in "a + b + c" we want to stop at each +, but in + ;; "if a then b else c" we don't want to stop at each keyword. + ;; To distinguish the two cases, we made smie-prec2-levels choose + ;; different levels for each part of "if a then b else c", so that + ;; by checking if the left-level is equal to the right level, we can + ;; figure out that it's an associative operator. + ;; This is not 100% foolproof, tho, since a grammar like + ;; (exp ("A" exp "C") ("A" exp "B" exp "C")) + ;; will cause "B" to have equal left and right levels, even though + ;; it is not an associative operator. + ;; A better check would be the check the actual previous operator + ;; against this one to see if it's the same, but we'd have to change + ;; `levels' to keep a stack of operators rather than only levels. + (eq (smie-op-left toklevels) (smie-op-right toklevels))) + +(defun smie-next-sexp (next-token next-sexp op-forw op-back halfsexp) + "Skip over one sexp. +NEXT-TOKEN is a function of no argument that moves forward by one +token (after skipping comments if needed) and returns it. +NEXT-SEXP is a lower-level function to skip one sexp. +OP-FORW is the accessor to the forward level of the level data. +OP-BACK is the accessor to the backward level of the level data. +HALFSEXP if non-nil, means skip over a partial sexp if needed. I.e. if the +first token we see is an operator, skip over its left-hand-side argument. +Possible return values: + (FORW-LEVEL POS TOKEN): we couldn't skip TOKEN because its back-level + is too high. FORW-LEVEL is the forw-level of TOKEN, + POS is its start position in the buffer. + (t POS TOKEN): same thing when we bump on the wrong side of a paren. + (nil POS TOKEN): we skipped over a paren-like pair. + nil: we skipped over an identifier, matched parentheses, ..." + (catch 'return + (let ((levels ())) + (while + (let* ((pos (point)) + (token (funcall next-token)) + (toklevels (cdr (assoc token smie-op-levels)))) + + (cond + ((null toklevels) + (if (equal token "") + (condition-case err + (progn (goto-char pos) (funcall next-sexp 1) nil) + (scan-error (throw 'return (list t (caddr err))))))) + ((null (funcall op-back toklevels)) + ;; A token like a paren-close. + (assert (funcall op-forw toklevels)) ;Otherwise, why mention it? + (push (funcall op-forw toklevels) levels)) + (t + (while (and levels (< (funcall op-back toklevels) (car levels))) + (setq levels (cdr levels))) + (cond + ((null levels) + (if (and halfsexp (funcall op-forw toklevels)) + (push (funcall op-forw toklevels) levels) + (throw 'return + (prog1 (list (or (car toklevels) t) (point) token) + (goto-char pos))))) + (t + (if (and levels (= (funcall op-back toklevels) (car levels))) + (setq levels (cdr levels))) + (cond + ((null levels) + (cond + ((null (funcall op-forw toklevels)) + (throw 'return (list nil (point) token))) + ((smie-associative-p toklevels) + (throw 'return + (prog1 (list (or (car toklevels) t) (point) token) + (goto-char pos)))) + ;; We just found a match to the previously pending operator + ;; but this new operator is still part of a larger RHS. + ;; E.g. we're now looking at the "then" in + ;; "if a then b else c". So we have to keep parsing the + ;; rest of the construct. + (t (push (funcall op-forw toklevels) levels)))) + (t + (if (funcall op-forw toklevels) + (push (funcall op-forw toklevels) levels)))))))) + levels) + (setq halfsexp nil))))) + (defun smie-backward-sexp (&optional halfsexp) "Skip over one sexp. HALFSEXP if non-nil, means skip over a partial sexp if needed. I.e. if the @@ -304,52 +402,12 @@ (nil POS TOKEN): we skipped over a paren-like pair. nil: we skipped over an identifier, matched parentheses, ..." (if (bobp) (list t (point)) - (catch 'return - (let ((levels ())) - (while - (let* ((pos (point)) - (token (progn (forward-comment (- (point-max))) - (smie-backward-token))) - (toklevels (cdr (assoc token smie-op-levels)))) - - (cond - ((null toklevels) - (if (equal token "") - (condition-case err - (progn (goto-char pos) (backward-sexp 1) nil) - (scan-error (throw 'return (list t (caddr err))))))) - ((null (nth 1 toklevels)) - ;; A token like a paren-close. - (assert (nth 0 toklevels)) ;Otherwise, why mention it? - (push (nth 0 toklevels) levels)) - (t - (while (and levels (< (nth 1 toklevels) (car levels))) - (setq levels (cdr levels))) - (cond - ((null levels) - (if (and halfsexp (nth 0 toklevels)) - (push (nth 0 toklevels) levels) - (throw 'return - (prog1 (list (or (car toklevels) t) (point) token) - (goto-char pos))))) - (t - (while (and levels (= (nth 1 toklevels) (car levels))) - (setq levels (cdr levels))) - (cond - ((null levels) - (cond - ((null (nth 0 toklevels)) - (throw 'return (list nil (point) token))) - ((eq (nth 0 toklevels) (nth 1 toklevels)) - (throw 'return - (prog1 (list (or (car toklevels) t) (point) token) - (goto-char pos)))) - (t (debug)))) ;Not sure yet what to do here. - (t - (if (nth 0 toklevels) - (push (nth 0 toklevels) levels)))))))) - levels) - (setq halfsexp nil)))))) + (smie-next-sexp + (lambda () (forward-comment (- (point-max))) (smie-backward-token)) + (indirect-function 'backward-sexp) + (indirect-function 'smie-op-left) + (indirect-function 'smie-op-right) + halfsexp))) ;; Mirror image, not used for indentation. (defun smie-forward-sexp (&optional halfsexp) @@ -364,52 +422,12 @@ (nil POS TOKEN): we skipped over a paren-like pair. nil: we skipped over an identifier, matched parentheses, ..." (if (eobp) (list t (point)) - (catch 'return - (let ((levels ())) - (while - (let* ((pos (point)) - (token (progn (forward-comment (point-max)) - (smie-forward-token))) - (toklevels (cdr (assoc token smie-op-levels)))) - - (cond - ((null toklevels) - (if (equal token "") - (condition-case err - (progn (goto-char pos) (forward-sexp 1) nil) - (scan-error (throw 'return (list t (caddr err))))))) - ((null (nth 0 toklevels)) - ;; A token like a paren-close. - (assert (nth 1 toklevels)) ;Otherwise, why mention it? - (push (nth 1 toklevels) levels)) - (t - (while (and levels (< (nth 0 toklevels) (car levels))) - (setq levels (cdr levels))) - (cond - ((null levels) - (if (and halfsexp (nth 1 toklevels)) - (push (nth 1 toklevels) levels) - (throw 'return - (prog1 (list (or (nth 1 toklevels) t) (point) token) - (goto-char pos))))) - (t - (while (and levels (= (nth 0 toklevels) (car levels))) - (setq levels (cdr levels))) - (cond - ((null levels) - (cond - ((null (nth 1 toklevels)) - (throw 'return (list nil (point) token))) - ((eq (nth 1 toklevels) (nth 0 toklevels)) - (throw 'return - (prog1 (list (or (nth 1 toklevels) t) (point) token) - (goto-char pos)))) - (t (debug)))) ;Not sure yet what to do here. - (t - (if (nth 1 toklevels) - (push (nth 1 toklevels) levels)))))))) - levels) - (setq halfsexp nil)))))) + (smie-next-sexp + (lambda () (forward-comment (point-max)) (smie-forward-token)) + (indirect-function 'forward-sexp) + (indirect-function 'smie-op-right) + (indirect-function 'smie-op-left) + halfsexp))) (defun smie-backward-sexp-command (&optional n) "Move backward through N logical elements." ------------------------------------------------------------ revno: 100349 committer: Juanma Barranquero branch nick: trunk timestamp: Tue 2010-05-18 13:49:10 +0200 message: * doc/emacs/ChangeLog: Fix typos. diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2010-05-18 10:58:56 +0000 +++ doc/emacs/ChangeLog 2010-05-18 11:49:10 +0000 @@ -4,7 +4,7 @@ paragraphs. (Line Truncation): Fix wording for bidi display. - * basic.texi (Moving Point): Document bidi-aware behavior of he arrow + * basic.texi (Moving Point): Document bidi-aware behavior of the arrow keys. 2010-05-08 Chong Yidong @@ -136,7 +136,7 @@ * custom.texi (Init Examples): Add xref to Mail Header. - * emacs.texi (Top): Fix xrefs. + * emacs.texi (Top): Fix xrefs. 2010-03-30 Chong Yidong @@ -1704,7 +1704,7 @@ (Fortran Columns): Mention font-locking. (Fortran Abbrev): Word syntax not relevant with new-style abbrev. -2008-08-23 Johan Bockgard +2008-08-23 Johan Bockgård * basic.texi (Moving Point): Fix / confusion. ------------------------------------------------------------ revno: 100348 committer: Eli Zaretskii branch nick: trunk timestamp: Tue 2010-05-18 13:58:56 +0300 message: Document bidi-aware behavior of arrow keys and display features. display.texi (Fringes): Document reversal of fringe arrows for R2L paragraphs. (Line Truncation): Fix wording for bidi display. basic.texi (Moving Point): Document bidi-aware behavior of the arrow keys. diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2010-05-08 18:47:07 +0000 +++ doc/emacs/ChangeLog 2010-05-18 10:58:56 +0000 @@ -1,3 +1,12 @@ +2010-05-18 Eli Zaretskii + + * display.texi (Fringes): Document reversal of fringe arrows for R2L + paragraphs. + (Line Truncation): Fix wording for bidi display. + + * basic.texi (Moving Point): Document bidi-aware behavior of he arrow + keys. + 2010-05-08 Chong Yidong * building.texi (GDB Graphical Interface): Remove misleading comparison === modified file 'doc/emacs/basic.texi' --- doc/emacs/basic.texi 2010-03-30 10:59:26 +0000 +++ doc/emacs/basic.texi 2010-05-18 10:58:56 +0000 @@ -146,6 +146,8 @@ @findex move-end-of-line @findex forward-char @findex backward-char +@findex right-arrow-command +@findex left-arrow-command @findex next-line @findex previous-line @findex beginning-of-buffer @@ -161,11 +163,19 @@ @itemx @key{End} Move to the end of the line (@code{move-end-of-line}). @item C-f -@itemx @key{right} Move forward one character (@code{forward-char}). +@item @key{right} +Move one character to the right (@code{right-arrow-command}). This +moves one character forward in text that is read in the usual +left-to-right direction, but one character @emph{backward} if the text +is read right-to-left, as needed for right-to-left scripts such as +Arabic. @xref{Bidirectional Editing}. @item C-b -@itemx @key{left} Move backward one character (@code{backward-char}). +@item @key{left} +Move one character to the left (@code{left-arrow-command}). This +moves one character backward in left-to-right text and one character +forward in right-to-left text. @item M-f @itemx M-@key{right} @itemx C-@key{right} === modified file 'doc/emacs/display.texi' --- doc/emacs/display.texi 2010-03-02 22:56:36 +0000 +++ doc/emacs/display.texi 2010-05-18 10:58:56 +0000 @@ -804,7 +804,10 @@ screen. The left fringe shows a curving arrow for each screen line except the first, indicating that ``this is not the real beginning.'' The right fringe shows a curving arrow for each screen line except the -last, indicating that ``this is not the real end.'' +last, indicating that ``this is not the real end.'' If the line's +direction is right-to-left (@pxref{Bidirectional Editing}), the +meaning of the curving arrows in the left and right fringes are +swapped. The fringes indicate line truncation with short horizontal arrows meaning ``there's more text on this line which is scrolled @@ -1191,8 +1194,8 @@ characters that do not fit in the width of the screen or window do not appear at all. On graphical displays, a small straight arrow in the fringe indicates truncation at either end of the line. On text-only -terminals, @samp{$} appears in the first column when there is text -truncated to the left, and in the last column when there is text +terminals, @samp{$} appears in the leftmost column when there is text +truncated to the left, and in the rightmost column when there is text truncated to the right. @vindex truncate-lines ------------------------------------------------------------ revno: 100347 committer: Juanma Barranquero branch nick: trunk timestamp: Tue 2010-05-18 10:33:29 +0200 message: Fix ChangeLog typos. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2010-05-18 07:52:10 +0000 +++ lisp/ChangeLog 2010-05-18 08:33:29 +0000 @@ -16,7 +16,7 @@ 2010-05-17 Jay Belanger - * calc/calc-vec.el (math-vector-avg): Put the vector elements in + * calc/calc-vec.el (math-vector-avg): Put the vector elements in order before computing the averages. 2010-05-16 Jay Belanger @@ -25,7 +25,7 @@ (calcFunc-histogram): Allow vectors as inputs. (math-vector-avg): New function. - * calc/calc-ext.el (math-group-float): Have the number of digits + * calc/calc-ext.el (math-group-float): Have the number of digits being grouped depend on the radix (Bug#6189). 2010-05-15 Ken Raeburn @@ -71,9 +71,9 @@ * calc/calc-units.el (calc-explain-units-rec): Allow Greek letters. * calc/calc.el (var-π, var-φ, var-γ): New variables. - * calc/calc-aent.el (math-read-replacement-list): Add "micro" symbol. + * calc/calc-aent.el (math-read-replacement-list): Add "micro" symbol. * calc/calc-units.el (math-unit-prefixes): Add mu for micro. - (math-standard-units): Add units. + (math-standard-units): Add units. 2010-05-15 Stefan Monnier @@ -118,8 +118,7 @@ 2010-05-13 Chong Yidong - Add TeX open-block and close-block keybindings to SGML, and vice - versa. + Add TeX open-block and close-block keybindings to SGML, and vice versa. * textmodes/tex-mode.el (tex-mode-map): Bind C-c C-t to latex-open-block and C-c / to latex-close-block. @@ -425,7 +424,7 @@ * Version 23.2 released. -2010-05-07 Deniz Dogan (tiny change) +2010-05-07 Deniz Dogan (tiny change) Stefan Monnier Highlight vendor specific properties. @@ -446,7 +445,7 @@ * simple.el (auto-save-mode): Move from files.el. * minibuffer.el (completion--common-suffix): Fix copy&paste error. -2010-05-07 Christian von Roques (tiny change) +2010-05-07 Christian von Roques (tiny change) * lisp/epg.el (epg-key-capablity-alist): Add "D" flag (Bug#5592). === modified file 'src/ChangeLog' --- src/ChangeLog 2010-05-18 08:08:33 +0000 +++ src/ChangeLog 2010-05-18 08:33:29 +0000 @@ -67,8 +67,7 @@ 2010-05-15 Ken Raeburn - * lisp.h (XFLOAT_DATA): Use "0?x:x" to generate an - rvalue. (bug#5916) + * lisp.h (XFLOAT_DATA): Use "0?x:x" to generate an rvalue. (Bug#5916) (LISP_MAKE_RVALUE) [!USE_LISP_UNION_TYPE && !__GNUC__]: Likewise. * emacs.c (main): Initialize initial-environment and @@ -142,8 +141,7 @@ 2010-05-14 Kenichi Handa - * font.c (font_range): Return the range for the font found at - first. + * font.c (font_range): Return the range for the font found at first. 2010-05-14 Glenn Morris @@ -11602,7 +11600,7 @@ definitions from xmenu.c. Suggested by Adrian Robert. * xmenu.c: Remove platform-independent menu definitions. - (menu_items menu_items_inuse, menu_items_allocated) + (menu_items, menu_items_inuse, menu_items_allocated) (menu_items_used, menu_items_n_panes) (menu_items_submenu_depth): Move to keyboard.h. (init_menu_items, finish_menu_items, unuse_menu_items) ------------------------------------------------------------ revno: 100346 committer: Juanma Barranquero branch nick: trunk timestamp: Tue 2010-05-18 10:08:33 +0200 message: * charset.c (load_charset_map_from_file): Don't call close after fclose. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2010-05-18 03:03:14 +0000 +++ src/ChangeLog 2010-05-18 08:08:33 +0000 @@ -1,3 +1,7 @@ +2010-05-18 Juanma Barranquero + + * charset.c (load_charset_map_from_file): Don't call close after fclose. + 2010-05-18 Glenn Morris * s/gnu-linux.h: Combine two conditionals. === modified file 'src/charset.c' --- src/charset.c 2010-04-20 06:30:26 +0000 +++ src/charset.c 2010-05-18 08:08:33 +0000 @@ -567,7 +567,6 @@ n_entries++; } fclose (fp); - close (fd); load_charset_map (charset, head, n_entries, control_flag); SAFE_FREE (); ------------------------------------------------------------ revno: 100345 committer: Eli Zaretskii branch nick: trunk timestamp: Tue 2010-05-18 10:57:27 +0300 message: msdos/sed1x.inp: Add copyright notice. diff: === modified file 'msdos/ChangeLog' --- msdos/ChangeLog 2010-05-18 02:44:07 +0000 +++ msdos/ChangeLog 2010-05-18 07:57:27 +0000 @@ -1,3 +1,7 @@ +2010-05-18 Eli Zaretskii + + * sed1x.inp: Add copyright notice. + 2010-05-18 Glenn Morris * sed1v2.inp (RALLOC_OBJ): Edit to ralloc.o. === modified file 'msdos/sed1x.inp' --- msdos/sed1x.inp 2010-05-17 05:15:03 +0000 +++ msdos/sed1x.inp 2010-05-18 07:57:27 +0000 @@ -1,6 +1,21 @@ # -sed1x.inp------------------------------------------------------------ # Extra configuration script for src/makefile for DesqView/X # ---------------------------------------------------------------------- +# +# Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +# +# This file is part of GNU Emacs. +# +# This file is free software; as a special exception, the author gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# +# ---------------------------------------------------------------------- s!^ cd \${oldXMenudir}; \${MAKE}.*$! ${MAKE} -C ${oldXMenudir}.! s!^ @true *$! @rem! s/DOC/DOC-X/g ------------------------------------------------------------ revno: 100344 committer: Juanma Barranquero branch nick: trunk timestamp: Tue 2010-05-18 09:52:10 +0200 message: * progmodes/prolog.el (smie-indent-basic): Declare for byte-compiler. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2010-05-18 07:44:07 +0000 +++ lisp/ChangeLog 2010-05-18 07:52:10 +0000 @@ -1,5 +1,7 @@ 2010-05-18 Juanma Barranquero + * progmodes/prolog.el (smie-indent-basic): Declare for byte-compiler. + * emacs-lisp/smie.el (smie-precs-precedence-table, smie-backward-sexp) (smie-forward-sexp, smie-indent-calculate): Fix typos in docstrings. === modified file 'lisp/progmodes/prolog.el' --- lisp/progmodes/prolog.el 2010-05-17 19:27:26 +0000 +++ lisp/progmodes/prolog.el 2010-05-18 07:52:10 +0000 @@ -31,6 +31,7 @@ (defvar comint-prompt-regexp) (defvar comint-process-echoes) +(defvar smie-indent-basic) (defgroup prolog nil "Major mode for editing and running Prolog under Emacs." @@ -179,7 +180,7 @@ (define-key map "\C-c\C-l" 'inferior-prolog-load-file) (define-key map "\C-c\C-z" 'switch-to-prolog) map)) - + (easy-menu-define prolog-mode-menu prolog-mode-map "Menu for Prolog mode." ;; Mostly copied from scheme-mode's menu. ;; Not tremendously useful, but it's a start. ------------------------------------------------------------ revno: 100343 committer: Juanma Barranquero branch nick: trunk timestamp: Tue 2010-05-18 09:44:07 +0200 message: * emacs-lisp/smie.el: Fix typos in docstrings. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2010-05-17 19:27:26 +0000 +++ lisp/ChangeLog 2010-05-18 07:44:07 +0000 @@ -1,3 +1,8 @@ +2010-05-18 Juanma Barranquero + + * emacs-lisp/smie.el (smie-precs-precedence-table, smie-backward-sexp) + (smie-forward-sexp, smie-indent-calculate): Fix typos in docstrings. + 2010-05-17 Stefan Monnier Provide a simple generic indentation engine and use it for Prolog. === modified file 'lisp/emacs-lisp/smie.el' --- lisp/emacs-lisp/smie.el 2010-05-17 19:27:26 +0000 +++ lisp/emacs-lisp/smie.el 2010-05-18 07:44:07 +0000 @@ -86,7 +86,7 @@ PRECS should be a list, sorted by precedence (e.g. \"+\" will come before \"*\"), of elements of the form \(left OP ...) or (right OP ...) or (nonassoc OP ...) or (assoc OP ...). All operators in -one of those elements shares the same precedence level and associativity." +one of those elements share the same precedence level and associativity." (let ((prec2-table (make-hash-table :test 'equal))) (dolist (prec precs) (dolist (op (cdr prec)) @@ -300,7 +300,7 @@ (LEFT-LEVEL POS TOKEN): we couldn't skip TOKEN because its right-level is too high. LEFT-LEVEL is the left-level of TOKEN, POS is its start position in the buffer. - (t POS TOKEN): Same thing but for an open-paren or the beginning of buffer. + (t POS TOKEN): same thing but for an open-paren or the beginning of buffer. (nil POS TOKEN): we skipped over a paren-like pair. nil: we skipped over an identifier, matched parentheses, ..." (if (bobp) (list t (point)) @@ -311,7 +311,7 @@ (token (progn (forward-comment (- (point-max))) (smie-backward-token))) (toklevels (cdr (assoc token smie-op-levels)))) - + (cond ((null toklevels) (if (equal token "") @@ -360,7 +360,7 @@ (RIGHT-LEVEL POS TOKEN): we couldn't skip TOKEN because its left-level is too high. RIGHT-LEVEL is the right-level of TOKEN, POS is its end position in the buffer. - (t POS TOKEN): Same thing but for an open-paren or the beginning of buffer. + (t POS TOKEN): same thing but for an open-paren or the beginning of buffer. (nil POS TOKEN): we skipped over a paren-like pair. nil: we skipped over an identifier, matched parentheses, ..." (if (eobp) (list t (point)) @@ -371,7 +371,7 @@ (token (progn (forward-comment (point-max)) (smie-forward-token))) (toklevels (cdr (assoc token smie-op-levels)))) - + (cond ((null toklevels) (if (equal token "") @@ -485,7 +485,7 @@ in order to figure out the indentation of some other (further down) point. VIRTUAL can take two different non-nil values: - :bolp: means that the current indentation of point can be trusted - to be good only if if it follows a line break. + to be good only if it follows a line break. - :hanging: means that the current indentation of point can be trusted to be good except if the following token is hanging." ;; FIXME: This has accumulated a lot of rules, some of which aren't ------------------------------------------------------------ revno: 100342 committer: Eli Zaretskii branch nick: trunk timestamp: Tue 2010-05-18 10:38:35 +0300 message: Advise against unnecessary merges from trunk to feature branches. diff: === modified file 'admin/notes/bzr' --- admin/notes/bzr 2010-05-18 02:52:21 +0000 +++ admin/notes/bzr 2010-05-18 07:38:35 +0000 @@ -26,6 +26,14 @@ preferred that you take your branch's diff, apply it to the trunk, and commit directly, not merge. This keeps the history cleaner. +In general, when working on some feature in a separate branch, it is +preferable not to merge from trunk until you are done with the +feature. Unless you really need some change that was done on the +trunk while you were developing on the branch, you don't really need +those merges; just merge once, when you are done with the feature, and +Bazaar will take care of the rest. Bazaar is much better in this than +CVS, so interim merges are unnecessary. + Or use shelves; or rebase; or do something else. See the thread for yet another fun excursion into the exciting world of version control. ------------------------------------------------------------ revno: 100341 committer: Glenn Morris branch nick: trunk timestamp: Mon 2010-05-17 20:03:14 -0700 message: * s/gnu-linux.h: Combine two conditionals. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2010-05-18 02:49:28 +0000 +++ src/ChangeLog 2010-05-18 03:03:14 +0000 @@ -1,6 +1,8 @@ 2010-05-18 Glenn Morris - * Makefile.in (otherobj): Include $(VMLIMIT_OBJ) seperately from + * s/gnu-linux.h: Combine two conditionals. + + * Makefile.in (otherobj): Include $(VMLIMIT_OBJ) separately from $(POST_ALLOC_OBJ). * Makefile.in (RALLOC_OBJ): New, set by configure. === modified file 'src/s/gnu-linux.h' --- src/s/gnu-linux.h 2010-05-18 02:44:07 +0000 +++ src/s/gnu-linux.h 2010-05-18 03:03:14 +0000 @@ -97,7 +97,6 @@ /* This is used in list_system_processes. */ #define HAVE_PROCFS 1 - /* Define CLASH_DETECTION if you want lock files to be written so that Emacs can tell instantly when you try to modify a file that someone else has modified in his Emacs. */ @@ -126,11 +125,9 @@ #define GNU_LIBRARY_PENDING_OUTPUT_COUNT(FILE) \ ((FILE)->_pptr - (FILE)->_pbase) #endif /* !_IO_STDIO_H && ! __UCLIBC__ */ -#endif /* emacs */ -#ifdef emacs #define INTERRUPT_INPUT -#endif +#endif /* emacs */ #define SYSV_SYSTEM_DIR /* use dirent.h */ ------------------------------------------------------------ Use --include-merges or -n0 to see merged revisions.