Now on revision 108963. ------------------------------------------------------------ revno: 108963 committer: Paul Eggert branch nick: trunk timestamp: Sun 2012-07-08 21:58:55 -0700 message: Mention coordinates of recent Autoconf change, thanks to Stefano Lattarini. diff: === modified file 'ChangeLog' --- ChangeLog 2012-07-09 04:52:49 +0000 +++ ChangeLog 2012-07-09 04:58:55 +0000 @@ -3,6 +3,8 @@ Rename configure.in to configure.ac (Bug#11603). The name 'configure.in' has been obsolescent for quite some time, and the next release of Autoconf will generate warnings for it. + See commit 'v2.69-4-g560f16b' of 2012-05-06, "general: deprecate + 'configure.in' as autoconf input" in the Autoconf git repository. * configure.ac: Rename from configure.in. * INSTALL, INSTALL.BZR, README, make-dist: * Makefile.in (AUTOCONF_INPUTS): ------------------------------------------------------------ revno: 108962 [merge] fixes bug(s): http://debbugs.gnu.org/11603 committer: Paul Eggert branch nick: trunk timestamp: Sun 2012-07-08 21:57:25 -0700 message: Rename configure.in to configure.ac. diff: === modified file 'ChangeLog' --- ChangeLog 2012-07-08 20:03:56 +0000 +++ ChangeLog 2012-07-09 04:52:49 +0000 @@ -1,3 +1,15 @@ +2012-07-09 Paul Eggert + + Rename configure.in to configure.ac (Bug#11603). + The name 'configure.in' has been obsolescent for quite some time, + and the next release of Autoconf will generate warnings for it. + * configure.ac: Rename from configure.in. + * INSTALL, INSTALL.BZR, README, make-dist: + * Makefile.in (AUTOCONF_INPUTS): + * autogen.sh (autoconf_min): + * autogen/update_autogen (sources): + Adjust to reflect new name. + 2012-07-08 Paul Eggert Restore deprecation warnings, except for older libpng. === modified file 'INSTALL' --- INSTALL 2012-06-28 16:34:05 +0000 +++ INSTALL 2012-07-09 04:52:49 +0000 @@ -683,9 +683,9 @@ corresponding `Makefile.in' files. This isn't so hard, just a matter of editing in appropriate substitutions for the @...@ constructs. -The `configure' script is built from `configure.in' by the `autoconf' +The `configure' script is built from `configure.ac' by the `autoconf' program. You need at least the version of autoconf specified in the -AC_PREREQ(...) command to rebuild `configure' from `configure.in'. +AC_PREREQ(...) command to rebuild `configure' from `configure.ac'. BUILDING GNU EMACS BY HAND === modified file 'INSTALL.BZR' --- INSTALL.BZR 2012-06-01 18:26:21 +0000 +++ INSTALL.BZR 2012-07-09 04:52:49 +0000 @@ -8,7 +8,7 @@ when building from a release. You will need: autoconf - at least the version specified near the start of - configure.in (in the AC_PREREQ command). + configure.ac (in the AC_PREREQ command). automake - we recommend at least version 1.11. makeinfo - not strictly necessary, but highly recommended, so that you can build the manuals. === modified file 'Makefile.in' --- Makefile.in 2012-06-30 21:10:50 +0000 +++ Makefile.in 2012-07-09 04:52:49 +0000 @@ -281,7 +281,7 @@ removenullpaths=sed -e 's/^://g' -e 's/:$$//g' -e 's/::/:/g' # Generate epaths.h from epaths.in. This target is invoked by `configure'. -# See comments in configure.in for why it is done this way, as opposed +# See comments in configure.ac for why it is done this way, as opposed # to just letting configure generate epaths.h from epaths.in in a # similar way to how Makefile is made from Makefile.in. epaths-force: FRC @@ -364,7 +364,7 @@ ./configure $(CONFIGURE_FLAGS); \ fi -AUTOCONF_INPUTS = $(srcdir)/configure.in $(srcdir)/aclocal.m4 +AUTOCONF_INPUTS = $(srcdir)/configure.ac $(srcdir)/aclocal.m4 $(srcdir)/configure: $(AUTOCONF_INPUTS) cd ${srcdir} && autoconf === modified file 'README' --- README 2012-06-10 13:20:58 +0000 +++ README 2012-07-09 04:52:49 +0000 @@ -37,12 +37,12 @@ process of building and installing Emacs. See INSTALL for more detailed information. -The file `configure.in' is the input used by the autoconf program to +The file `configure.ac' is the input used by the autoconf program to construct the `configure' script. Since Emacs has some configuration requirements that autoconf can't meet directly, and for historical -reasons, `configure.in' uses an unholy marriage of custom-baked +reasons, `configure.ac' uses an unholy marriage of custom-baked configuration code and autoconf macros. If you want to rebuild -`configure' from `configure.in', you will need to install a recent +`configure' from `configure.ac', you will need to install a recent version of autoconf and GNU m4. The file `Makefile.in' is a template used by `configure' to create === modified file 'admin/ChangeLog' --- admin/ChangeLog 2012-07-06 21:07:46 +0000 +++ admin/ChangeLog 2012-07-09 04:52:49 +0000 @@ -1,3 +1,10 @@ +2012-07-09 Paul Eggert + + Rename configure.in to configure.ac (Bug#11603). + * admin.el (set-version): + * quick-install-emacs (VERSION): + Get version number from configure.ac, not configure.in. + 2012-07-06 Paul Eggert Use c_strcasecmp for ASCII case-insensitive comparison (Bug#11786). === modified file 'admin/admin.el' --- admin/admin.el 2012-06-10 09:06:34 +0000 +++ admin/admin.el 2012-07-09 04:52:49 +0000 @@ -62,7 +62,7 @@ (set-version-in-file root "README" version (rx (and "version" (1+ space) (submatch (1+ (in "0-9.")))))) - (set-version-in-file root "configure.in" version + (set-version-in-file root "configure.ac" version (rx (and "AC_INIT" (1+ (not (in ?,))) ?, (0+ space) (submatch (1+ (in "0-9.")))))) === modified file 'admin/quick-install-emacs' --- admin/quick-install-emacs 2012-06-03 23:49:12 +0000 +++ admin/quick-install-emacs 2012-07-09 04:52:49 +0000 @@ -171,9 +171,9 @@ test x"$ARCH" = x && { ARCH="`get_config_var host`" || exit 4 ; } VERSION=` - sed -n 's/^AC_INIT(emacs,[ ]*\([^ )]*\).*/\1/p' <$SRC/configure.in + sed -n 's/^AC_INIT(emacs,[ ]*\([^ )]*\).*/\1/p' <$SRC/configure.ac ` || exit 4 -test -n "$VERSION" || { echo >&2 "$me: no version in configure.in"; exit 4; } +test -n "$VERSION" || { echo >&2 "$me: no version in configure.ac"; exit 4; } DST_SHARE="$prefix/share/emacs/$VERSION" DST_BIN="$prefix/bin" === modified file 'autogen.sh' --- autogen.sh 2012-01-05 09:46:05 +0000 +++ autogen.sh 2012-07-09 04:52:49 +0000 @@ -34,7 +34,7 @@ progs="autoconf automake" ## Minimum versions we need: -autoconf_min=`sed -n 's/^ *AC_PREREQ(\([0-9\.]*\)).*/\1/p' configure.in` +autoconf_min=`sed -n 's/^ *AC_PREREQ(\([0-9\.]*\)).*/\1/p' configure.ac` ## FIXME how to determine this from the sources? automake_min=1.11 === modified file 'autogen/copy_autogen' --- autogen/copy_autogen 2011-07-29 21:59:44 +0000 +++ autogen/copy_autogen 2012-07-09 04:52:49 +0000 @@ -3,7 +3,7 @@ ## Helper script for those building Emacs from bzr without autoconf etc. ## This installs some pre-generated versions of the automatically ## generated files. It is highly recommended to install the necessary -## tools instead of using this. Note that if eg configure.in +## tools instead of using this. Note that if eg configure.ac ## is updated, the next time you run make it will attempt to ## regenerate configure and will fail if you do not have the required ## tools. You will have to run this script again. === modified file 'autogen/update_autogen' --- autogen/update_autogen 2012-01-05 09:46:05 +0000 +++ autogen/update_autogen 2012-07-09 04:52:49 +0000 @@ -79,7 +79,7 @@ ## Parameters. ldefs_in=lisp/loaddefs.el ldefs_out=lisp/ldefs-boot.el -sources="configure.in lib/Makefile.am" +sources="configure.ac lib/Makefile.am" genfiles=" configure aclocal.m4 src/config.in lib/Makefile.in build-aux/compile build-aux/config.guess build-aux/config.sub === renamed file 'configure.in' => 'configure.ac' --- configure.in 2012-07-08 20:03:56 +0000 +++ configure.ac 2012-07-09 04:52:49 +0000 @@ -3820,5 +3820,3 @@ ]) AC_OUTPUT - -dnl configure.in ends here === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2012-07-06 13:19:33 +0000 +++ doc/misc/ChangeLog 2012-07-09 04:52:49 +0000 @@ -1,3 +1,9 @@ +2012-07-09 Paul Eggert + + Rename configure.in to configure.ac (Bug#11603). + * ede.texi (Compiler and Linker objects, ede-proj-project) + (ede-step-project): Prefer the name configure.ac to configure.in. + 2012-07-06 Michael Albinus * tramp.texi (Multi-hops): Introduce === modified file 'doc/misc/ede.texi' --- doc/misc/ede.texi 2012-01-19 07:21:25 +0000 +++ doc/misc/ede.texi 2012-07-09 04:52:49 +0000 @@ -790,7 +790,7 @@ Compiler instantiations must also insert variables specifying the compiler it plans to use, in addition to creating Automake settings for -@file{configure.in} when appropriate. +@file{configure.ac} when appropriate. Compiler objects are stored in the target objects as a list of symbols, where the symbols value is the object. This enables the @@ -1557,7 +1557,7 @@ @deffn Method ede-proj-setup-buildenvironment :AFTER this &optional force Setup the build environment for project @var{THIS}. -Handles the Makefile, or a Makefile.am configure.in combination. +Handles the Makefile, or a Makefile.am configure.ac combination. Optional argument @var{FORCE} will force items to be regenerated. @end deffn @@ -1567,7 +1567,7 @@ @end deffn @deffn Method ede-proj-configure-synchronize :AFTER this -Synchronize what we know about project @var{THIS} into configure.in. +Synchronize what we know about project @var{THIS} into configure.ac. @end deffn @deffn Method ede-proj-makefile-insert-variables-new :AFTER this @@ -1603,7 +1603,7 @@ @end deffn @deffn Method ede-proj-configure-file :AFTER this -The configure.in script used by project @var{THIS}. +The configure.ac script used by project @var{THIS}. @end deffn @deffn Method ede-commit-project :AFTER proj @@ -1767,7 +1767,7 @@ @deffn Method ede-proj-setup-buildenvironment :AFTER this &optional force Setup the build environment for project @var{THIS}. -Handles the Makefile, or a Makefile.am configure.in combination. +Handles the Makefile, or a Makefile.am configure.ac combination. Optional argument @var{FORCE} will force items to be regenerated. @end deffn === modified file 'etc/future-bug' --- etc/future-bug 2007-02-28 04:12:39 +0000 +++ etc/future-bug 2012-07-09 04:52:49 +0000 @@ -30,7 +30,7 @@ P.S. You'll be pleased to know that since (time-forward N) still works - for N >= 0, we've used it to pre-emptively update configure.in. + for N >= 0, we've used it to pre-emptively update configure.ac. Emacs now configures and builds on every platform that will ever be made. It wasn't easy, but at least that's one problem out of the way for good. If you'd like the patch, just ask. === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-07-08 08:26:21 +0000 +++ lisp/ChangeLog 2012-07-09 04:52:49 +0000 @@ -1,3 +1,10 @@ +2012-07-09 Paul Eggert + + Rename configure.in to configure.ac (Bug#11603). + * emacs-lisp/authors.el (authors-canonical-file-name): + * progmodes/autoconf.el (autoconf-mode): + Prefer configure.ac to configure.in. + 2012-07-08 Chong Yidong * mouse.el (mouse-drag-line): Rewrite the track-mouse loop. === modified file 'lisp/cedet/ChangeLog' --- lisp/cedet/ChangeLog 2012-06-10 13:20:58 +0000 +++ lisp/cedet/ChangeLog 2012-07-09 04:52:49 +0000 @@ -1,3 +1,13 @@ +2012-07-09 Paul Eggert + + Rename configure.in to configure.ac (Bug#11603). + * ede/autoconf-edit.el (autoconf-find-query-for-program) + (autoconf-new-program): + * ede/emacs.el (ede-emacs-version): + * ede/proj.el (ede-proj-setup-buildenvironment): + * ede/project-am.el (project-am-autoconf-file-options): + Prefer configure.ac to configure.in. + 2012-03-12 David Engster * semantic/db-find.el === modified file 'lisp/cedet/ede/autoconf-edit.el' --- lisp/cedet/ede/autoconf-edit.el 2012-01-19 07:21:25 +0000 +++ lisp/cedet/ede/autoconf-edit.el 2012-07-09 04:52:49 +0000 @@ -31,7 +31,7 @@ (declare-function ede-srecode-insert "ede/srecode") (defun autoconf-new-program (rootdir program testfile) - "Initialize a new configure.in in ROOTDIR for PROGRAM using TESTFILE. + "Initialize a new configure.ac in ROOTDIR for PROGRAM using TESTFILE. ROOTDIR is the root directory of a given autoconf controlled project. PROGRAM is the program to be configured. TESTFILE is the file used with AC_INIT. @@ -325,7 +325,7 @@ "Position the cursor where PROG is queried. PROG is the VARIABLE to use in autoconf to identify the program. PROG excludes the _PROG suffix. Thus if PROG were EMACS, then the -variable in configure.in would be EMACS_PROG." +variable in configure.ac would be EMACS_PROG." (let ((op (point)) (found t) (builtin (assoc prog autoconf-program-builtin))) === modified file 'lisp/cedet/ede/emacs.el' --- lisp/cedet/ede/emacs.el 2012-01-19 07:21:25 +0000 +++ lisp/cedet/ede/emacs.el 2012-07-09 04:52:49 +0000 @@ -74,13 +74,16 @@ "Find the Emacs version for the Emacs src in DIR. Return a tuple of ( EMACSNAME . VERSION )." (let ((buff (get-buffer-create " *emacs-query*")) + (configure_ac "configure.ac") (emacs "Emacs") (ver "")) (with-current-buffer buff (erase-buffer) (setq default-directory (file-name-as-directory dir)) + (or (file-exists-p configure_ac) + (setq configure_ac "configure.in")) ;(call-process "egrep" nil buff nil "-n" "-e" "^version=" "Makefile") - (call-process "egrep" nil buff nil "-n" "-e" "AC_INIT" "configure.in") + (call-process "egrep" nil buff nil "-n" "-e" "AC_INIT" configure_ac) (goto-char (point-min)) ;(re-search-forward "version=\\([0-9.]+\\)") (cond @@ -100,7 +103,7 @@ ;; Vaguely recent version of GNU Emacs? (t - (insert-file-contents "configure.in") + (insert-file-contents configure_ac) (goto-char (point-min)) (re-search-forward "AC_INIT(emacs,\\s-*\\([0-9.]+\\)\\s-*)") (setq ver (match-string 1)) === modified file 'lisp/cedet/ede/proj.el' --- lisp/cedet/ede/proj.el 2012-01-19 07:21:25 +0000 +++ lisp/cedet/ede/proj.el 2012-07-09 04:52:49 +0000 @@ -642,7 +642,7 @@ (defmethod ede-proj-setup-buildenvironment ((this ede-proj-project) &optional force) "Setup the build environment for project THIS. -Handles the Makefile, or a Makefile.am configure.in combination. +Handles the Makefile, or a Makefile.am configure.ac combination. Optional argument FORCE will force items to be regenerated." (if (not force) (ede-proj-makefile-create-maybe this (ede-proj-dist-makefile this)) === modified file 'lisp/cedet/ede/project-am.el' --- lisp/cedet/ede/project-am.el 2012-01-19 07:21:25 +0000 +++ lisp/cedet/ede/project-am.el 2012-07-09 04:52:49 +0000 @@ -896,10 +896,10 @@ out)) -;;; Configure.in queries. +;;; Configure.am queries. ;; (defvar project-am-autoconf-file-options - '("configure.in" "configure.ac") + '("configure.ac" "configure.in") "List of possible configure files to look in for project info.") (defun project-am-autoconf-file (dir) @@ -948,7 +948,7 @@ (configfiles nil) ) (cond - ;; Try configure.in or configure.ac + ;; Try configure.ac or configure.in (conf-in (project-am-with-config-current conf-in (let ((aci (autoconf-parameters-for-macro "AC_INIT")) === modified file 'lisp/emacs-lisp/authors.el' --- lisp/emacs-lisp/authors.el 2012-06-06 01:06:54 +0000 +++ lisp/emacs-lisp/authors.el 2012-07-09 04:52:49 +0000 @@ -702,7 +702,7 @@ the file name. Only uses the LOG-FILE position POS and associated AUTHOR to print a message if FILE is not found." ;; FILE should be re-checked in every different directory associated - ;; with a LOG-FILE. Eg configure.in from src/ChangeLog is not the + ;; with a LOG-FILE. Eg configure.ac from src/ChangeLog is not the ;; same as that from top-level/ChangeLog. (let* ((fullname (expand-file-name file (file-name-directory log-file))) (entry (assoc fullname authors-checked-files-alist)) === modified file 'lisp/info-look.el' --- lisp/info-look.el 2012-01-19 07:21:25 +0000 +++ lisp/info-look.el 2012-07-09 04:52:49 +0000 @@ -732,7 +732,7 @@ :parse-rule "\\$[^({]\\|\\.[_A-Z]*\\|[_a-zA-Z0-9-]+\\|##\\|\\+=" :doc-spec '( ;; "(automake)Macro Index" is autoconf macros used in - ;; configure.in, not Makefile.am, so don't have that here. + ;; configure.ac, not Makefile.am, so don't have that here. ("(automake)Variable Index" nil "^[ \t]*`" "'") ;; In automake 1.4 macros and variables were a combined node. ("(automake)Macro and Variable Index" nil "^[ \t]*`" "'") === modified file 'lisp/progmodes/autoconf.el' --- lisp/progmodes/autoconf.el 2012-01-19 07:21:25 +0000 +++ lisp/progmodes/autoconf.el 2012-07-09 04:52:49 +0000 @@ -1,4 +1,4 @@ -;;; autoconf.el --- mode for editing Autoconf configure.in files +;;; autoconf.el --- mode for editing Autoconf configure.ac files ;; Copyright (C) 2000-2012 Free Software Foundation, Inc. @@ -23,15 +23,15 @@ ;;; Commentary: ;; Provides fairly minimal font-lock, imenu and indentation support -;; for editing configure.in files. Only Autoconf syntax is processed. +;; for editing configure.ac files. Only Autoconf syntax is processed. ;; There is no attempt to deal with shell text -- probably that will ;; always lose. -;; This is specialized for configure.in files. It doesn't inherit the +;; This is specialized for configure.ac files. It doesn't inherit the ;; general M4 stuff from M4 mode. ;; There is also an autoconf-mode.el in existence. That appears to be -;; for editing the Autoconf M4 source, rather than configure.in files. +;; for editing the Autoconf M4 source, rather than configure.ac files. ;;; Code: @@ -49,7 +49,7 @@ `(("\\_&2 @@ -230,13 +230,13 @@ if [ $update = yes ]; then - ## Make sure configure is newer than configure.in, etc. + ## Make sure configure is newer than configure.ac, etc. ## It is better to let autoreconf do what is needed than ## for us to try and duplicate all its checks. echo "Running autoreconf" autoreconf -i -I m4 || { x=$?; echo Autoreconf FAILED! >&2; exit $x; } - ## Make sure src/stamp-h.in is newer than configure.in. + ## Make sure src/stamp-h.in is newer than configure.ac. rm -f src/stamp-h.in echo timestamp > src/stamp-h.in @@ -273,7 +273,7 @@ ### README while the rest of the tar file is still unpacking. Whoopee. echo "Making links to top-level files" ln INSTALL README BUGS ${tempdir} -ln ChangeLog Makefile.in configure configure.in ${tempdir} +ln ChangeLog Makefile.in configure configure.ac ${tempdir} ln config.bat make-dist .dir-locals.el ${tempdir} ln aclocal.m4 ${tempdir} === modified file 'src/s/template.h' --- src/s/template.h 2012-06-13 18:11:05 +0000 +++ src/s/template.h 2012-07-09 04:52:49 +0000 @@ -94,14 +94,13 @@ /* ============================================================ */ /* After adding support for a new system, modify the large case - statement in configure.in to recognize reasonable + statement in configure.ac to recognize reasonable configuration names, and add a description of the system to `etc/MACHINES'. - Check for any tests of $opsys in configure.in, and add an entry + Check for any tests of $opsys in configure.ac, and add an entry for the new system if needed. If you've just fixed a problem in an existing configuration file, you should also check `etc/MACHINES' to make sure its descriptions of known problems in that configuration should be updated. */ - ------------------------------------------------------------ revno: 108961 committer: Juanma Barranquero branch nick: trunk timestamp: Mon 2012-07-09 06:21:55 +0200 message: lib-src/makefile.w32-in: Rework dependencies. ($(BLD)/test-distrib.exe): Use LIB_SRC, not SRC. (LIB_SRC, NT_INC, GNU_LIB, MS_W32_H, CONFIG_H, INTTYPES_H, NTLIB_H) (SYSTIME_H): New macros. (SRC): Redefine to point to src/, not current directory. ($(BLD)/ctags.$(O), $(BLD)/ebrowse.$(O), $(BLD)/emacsclient.$(O)) ($(BLD)/etags.$(O), $(BLD)/hexl.$(O), $(BLD)/make-docfile.$(O)) ($(BLD)/movemail.$(O), $(BLD)/ntlib.$(O), $(BLD)/pop.$(O)) ($(BLD)/profile.$(O), $(BLD)/test-distrib.$(O)): Update dependencies. ($(BLD)/regex.$(O)): New dependency. diff: === modified file 'lib-src/ChangeLog' --- lib-src/ChangeLog 2012-07-09 00:59:38 +0000 +++ lib-src/ChangeLog 2012-07-09 04:21:55 +0000 @@ -1,5 +1,17 @@ 2012-07-09 Juanma Barranquero + * makefile.w32-in ($(BLD)/test-distrib.exe): Use LIB_SRC, not SRC. + (LIB_SRC, NT_INC, GNU_LIB, MS_W32_H, CONFIG_H, INTTYPES_H, NTLIB_H) + (SYSTIME_H): New macros. + (SRC): Redefine to point to src/, not current directory. + ($(BLD)/ctags.$(O), $(BLD)/ebrowse.$(O), $(BLD)/emacsclient.$(O)) + ($(BLD)/etags.$(O), $(BLD)/hexl.$(O), $(BLD)/make-docfile.$(O)) + ($(BLD)/movemail.$(O), $(BLD)/ntlib.$(O), $(BLD)/pop.$(O)) + ($(BLD)/profile.$(O), $(BLD)/test-distrib.$(O)): Update dependencies. + ($(BLD)/regex.$(O)): New dependency. + +2012-07-09 Juanma Barranquero + * makefile.w32-in (ALL): Add profile.exe. (PROFILEOBJS): New macro. ($(BLD)/profile.exe): New target. === modified file 'lib-src/makefile.w32-in' --- lib-src/makefile.w32-in 2012-07-09 00:59:38 +0000 +++ lib-src/makefile.w32-in 2012-07-09 04:21:55 +0000 @@ -38,7 +38,7 @@ $(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(BLD)/hexl.$(O) $(LIBS) $(BLD)/test-distrib.exe: $(BLD)/test-distrib.$(O) $(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(BLD)/test-distrib.$(O) $(LIBS) - "$(BLD)/test-distrib.exe" "$(SRC)/testfile" + "$(BLD)/test-distrib.exe" "$(LIB_SRC)/testfile" MOVEMAILOBJS = $(BLD)/movemail.$(O) \ $(BLD)/pop.$(O) \ @@ -355,78 +355,108 @@ ### DEPENDENCIES ### EMACS_ROOT = .. -SRC = . +LIB_SRC = . +SRC = $(EMACS_ROOT)/src +NT_INC = $(EMACS_ROOT)/nt/inc +GNU_LIB = $(EMACS_ROOT)/lib + +MS_W32_H = $(SRC)/s/ms-w32.h \ + $(NT_INC)/sys/stat.h +CONFIG_H = $(SRC)/config.h \ + $(MS_W32_H) +INTTYPES_H = $(NT_INC)/inttypes.h \ + $(NT_INC)/stdint.h +NTLIB_H = $(LIB_SRC)/ntlib.h \ + $(NT_INC)/pwd.h +SYSTIME_H = $(SRC)/systime.h \ + $(NT_INC)/sys/time.h \ + $(GNU_LIB)/timespec.h $(BLD)/ctags.$(O) : \ - $(SRC)/ctags.c \ - $(EMACS_ROOT)/nt/inc/sys/param.h \ - $(EMACS_ROOT)/nt/inc/sys/stat.h \ - $(EMACS_ROOT)/src/s/ms-w32.h \ - $(EMACS_ROOT)/lib-src/../src/config.h \ - $(SRC)/ntlib.h \ - $(EMACS_ROOT)/lib/c-strcase.h \ - $(EMACS_ROOT)/lib/getopt.h + $(LIB_SRC)/ctags.c \ + $(SRC)/regex.h \ + $(NT_INC)/sys/stat.h \ + $(NT_INC)/unistd.h \ + $(GNU_LIB)/c-strcase.h \ + $(GNU_LIB)/getopt.h \ + $(CONFIG_H) $(BLD)/ebrowse.$(O) : \ - $(SRC)/ebrowse.c \ - $(EMACS_ROOT)/lib/min-max.h \ - $(EMACS_ROOT)/src/s/ms-w32.h \ - $(EMACS_ROOT)/lib-src/../src/config.h + $(LIB_SRC)/ebrowse.c \ + $(GNU_LIB)/getopt.h \ + $(GNU_LIB)/min-max.h \ + $(CONFIG_H) $(BLD)/emacsclient.$(O) : \ - $(SRC)/emacsclient.c \ - $(EMACS_ROOT)/nt/inc/sys/stat.h \ - $(EMACS_ROOT)/src/s/ms-w32.h \ - $(EMACS_ROOT)/lib-src/../src/config.h + $(LIB_SRC)/emacsclient.c \ + $(NT_INC)/pwd.h \ + $(NT_INC)/sys/stat.h \ + $(NT_INC)/unistd.h \ + $(GNU_LIB)/getopt.h \ + $(CONFIG_H) $(BLD)/etags.$(O) : \ - $(SRC)/etags.c \ - $(EMACS_ROOT)/nt/inc/sys/param.h \ - $(EMACS_ROOT)/nt/inc/sys/stat.h \ - $(EMACS_ROOT)/src/s/ms-w32.h \ - $(EMACS_ROOT)/lib-src/../src/config.h \ - $(SRC)/ntlib.h \ - $(EMACS_ROOT)/lib/c-strcase.h \ - $(EMACS_ROOT)/lib/getopt.h + $(LIB_SRC)/etags.c \ + $(SRC)/regex.h \ + $(NT_INC)/sys/stat.h \ + $(NT_INC)/unistd.h \ + $(GNU_LIB)/c-strcase.h \ + $(GNU_LIB)/getopt.h \ + $(CONFIG_H) $(BLD)/hexl.$(O) : \ - $(SRC)/hexl.c + $(LIB_SRC)/hexl.c \ + $(CONFIG_H) $(BLD)/make-docfile.$(O) : \ - $(SRC)/make-docfile.c \ - $(EMACS_ROOT)/src/config.h + $(LIB_SRC)/make-docfile.c \ + $(NT_INC)/unistd.h \ + $(CONFIG_H) $(BLD)/movemail.$(O) : \ - $(SRC)/movemail.c \ - $(EMACS_ROOT)/src/s/ms-w32.h \ - $(EMACS_ROOT)/lib-src/../src/config.h \ - $(EMACS_ROOT)/nt/inc/sys/file.h \ - $(EMACS_ROOT)/nt/inc/sys/stat.h \ - $(EMACS_ROOT)/lib-src/../src/syswait.h \ - $(EMACS_ROOT)/nt/inc/pwd.h \ - $(SRC)/ntlib.h - $(CC) $(CFLAGS) -DUSG $(CC_OUT)$@ movemail.c + $(LIB_SRC)/movemail.c \ + $(LIB_SRC)/pop.h \ + $(SRC)/syswait.h \ + $(NT_INC)/pwd.h \ + $(NT_INC)/sys/file.h \ + $(NT_INC)/sys/stat.h \ + $(NT_INC)/unistd.h \ + $(GNU_LIB)/getopt.h \ + $(CONFIG_H) \ + $(NTLIB_H) $(BLD)/ntlib.$(O) : \ - $(SRC)/ntlib.c \ - $(SRC)/ntlib.h \ - $(EMACS_ROOT)/nt/inc/sys/stat.h \ - $(EMACS_ROOT)/nt/inc/pwd.h + $(LIB_SRC)/ntlib.c \ + $(NT_INC)/sys/stat.h \ + $(NTLIB_H) $(BLD)/pop.$(O) : \ - $(SRC)/pop.c \ - $(SRC)/pop.h \ - $(EMACS_ROOT)/lib/min-max.h \ - $(SRC)/ntlib.h + $(LIB_SRC)/pop.c \ + $(LIB_SRC)/pop.h \ + $(NT_INC)/netdb.h \ + $(NT_INC)/pwd.h \ + $(NT_INC)/unistd.h \ + $(GNU_LIB)/min-max.h \ + $(CONFIG_H) \ + $(NTLIB_H) $(BLD)/profile.$(O) : \ - $(SRC)/profile.c \ - $(EMACS_ROOT)/src/s/ms-w32.h \ - $(EMACS_ROOT)/lib-src/../src/config.h \ - $(EMACS_ROOT)/lib-src/../src/systime.h + $(LIB_SRC)/profile.c \ + $(GNU_LIB)/intprops.h \ + $(CONFIG_H) \ + $(INTTYPES_H) \ + $(SYSTIME_H) + +$(BLD)/regex.$(O) : \ + $(SRC)/regex.c \ + $(SRC)/regex.h \ + $(NT_INC)/unistd.h \ + $(CONFIG_H) $(BLD)/test-distrib.$(O) : \ - $(SRC)/test-distrib.c + $(LIB_SRC)/test-distrib.c \ + $(NT_INC)/unistd.h \ + $(CONFIG_H) # The following dependencies are for supporting parallel builds, where # we must make sure $(BLD) exists before any compilation starts. ------------------------------------------------------------ revno: 108960 committer: Dmitry Antipov branch nick: trunk timestamp: Mon 2012-07-09 07:15:10 +0400 message: Move marker debugging code under MARKER_DEBUG. * marker.c (MARKER_DEBUG): Move marker debugging code under #ifdef MARKER_DEBUG because byte_char_debug_check is too slow for bootstrap with --enable-checking (~3x slowdown reported by Juanma Barranquero ). (verify_bytepos): Move under #ifdef MARKER_DEBUG. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-07-08 23:00:38 +0000 +++ src/ChangeLog 2012-07-09 03:15:10 +0000 @@ -1,3 +1,12 @@ +2012-07-09 Dmitry Antipov + + Move marker debugging code under MARKER_DEBUG. + * marker.c (MARKER_DEBUG): Move marker debugging code under + #ifdef MARKER_DEBUG because byte_char_debug_check is too slow + for bootstrap with --enable-checking (~3x slowdown reported + by Juanma Barranquero ). + (verify_bytepos): Move under #ifdef MARKER_DEBUG. + 2012-07-08 Paul Eggert * systime.h (EMACS_SUB_TIME): Clarify behavior with unsigned time_t. === modified file 'src/marker.c' --- src/marker.c 2012-07-06 14:16:54 +0000 +++ src/marker.c 2012-07-09 03:15:10 +0000 @@ -31,9 +31,14 @@ static struct buffer *cached_buffer; static int cached_modiff; -#ifdef ENABLE_CHECKING +/* Juanma Barranquero reported ~3x increased + bootstrap time when byte_char_debug_check is enabled; so this + is never turned on by --enable-checking configure option. */ + +#ifdef MARKER_DEBUG extern int count_markers (struct buffer *) EXTERNALLY_VISIBLE; +extern ptrdiff_t verify_bytepos (ptrdiff_t charpos) EXTERNALLY_VISIBLE; static void byte_char_debug_check (struct buffer *b, ptrdiff_t charpos, ptrdiff_t bytepos) @@ -57,11 +62,11 @@ abort (); } -#else /* not ENABLE_CHECKING */ +#else /* not MARKER_DEBUG */ #define byte_char_debug_check(b,charpos,bytepos) do { } while (0) -#endif /* ENABLE_CHECKING */ +#endif /* MARKER_DEBUG */ void clear_charpos_cache (struct buffer *b) @@ -237,25 +242,6 @@ #undef CONSIDER -/* Used for debugging: recompute the bytepos corresponding to CHARPOS - in the simplest, most reliable way. */ - -extern ptrdiff_t verify_bytepos (ptrdiff_t charpos) EXTERNALLY_VISIBLE; -ptrdiff_t -verify_bytepos (ptrdiff_t charpos) -{ - ptrdiff_t below = 1; - ptrdiff_t below_byte = 1; - - while (below != charpos) - { - below++; - BUF_INC_POS (current_buffer, below_byte); - } - - return below_byte; -} - /* buf_bytepos_to_charpos returns the char position corresponding to BYTEPOS. */ @@ -781,7 +767,7 @@ return Qnil; } -#ifdef ENABLE_CHECKING +#ifdef MARKER_DEBUG /* For debugging -- count the markers in buffer BUF. */ @@ -797,7 +783,25 @@ return total; } -#endif /* ENABLE_CHECKING */ +/* For debugging -- recompute the bytepos corresponding + to CHARPOS in the simplest, most reliable way. */ + +ptrdiff_t +verify_bytepos (ptrdiff_t charpos) +{ + ptrdiff_t below = 1; + ptrdiff_t below_byte = 1; + + while (below != charpos) + { + below++; + BUF_INC_POS (current_buffer, below_byte); + } + + return below_byte; +} + +#endif /* MARKER_DEBUG */ void syms_of_marker (void) ------------------------------------------------------------ revno: 108959 committer: Katsumi Yamaoka branch nick: trunk timestamp: Mon 2012-07-09 02:13:07 +0000 message: mm-decode.el (mm-shr): Allow overriding charset by mm-charset-override-alist diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2012-07-03 00:25:57 +0000 +++ lisp/gnus/ChangeLog 2012-07-09 02:13:07 +0000 @@ -1,3 +1,8 @@ +2012-07-09 Katsumi Yamaoka + + * mm-decode.el (mm-shr): + Allow overriding charset by mm-charset-override-alist. + 2012-07-03 Katsumi Yamaoka * gnus-art.el (gnus-article-view-part): === modified file 'lisp/gnus/mm-decode.el' --- lisp/gnus/mm-decode.el 2012-06-26 22:52:31 +0000 +++ lisp/gnus/mm-decode.el 2012-07-09 02:13:07 +0000 @@ -1772,7 +1772,8 @@ (insert (prog1 (if (and charset (setq charset - (mm-charset-to-coding-system charset)) + (mm-charset-to-coding-system charset + nil t)) (not (eq charset 'ascii))) (mm-decode-coding-string (buffer-string) charset) (mm-string-as-multibyte (buffer-string))) ------------------------------------------------------------ revno: 108958 committer: Juanma Barranquero branch nick: trunk timestamp: Mon 2012-07-09 02:59:38 +0200 message: lib-src/makefile.w32-in (ALL): Add profile.exe. (PROFILEOBJS): New macro. ($(BLD)/profile.exe): New target. (install): Copy profile.exe. ($(BLD)/alloca.$(O), $(BLD)/tcp.$(O)): Remove, obsolete. diff: === modified file 'lib-src/ChangeLog' --- lib-src/ChangeLog 2012-07-07 00:20:56 +0000 +++ lib-src/ChangeLog 2012-07-09 00:59:38 +0000 @@ -1,3 +1,11 @@ +2012-07-09 Juanma Barranquero + + * makefile.w32-in (ALL): Add profile.exe. + (PROFILEOBJS): New macro. + ($(BLD)/profile.exe): New target. + (install): Copy profile.exe. + ($(BLD)/alloca.$(O), $(BLD)/tcp.$(O)): Remove, obsolete. + 2012-07-07 Juanma Barranquero * makefile.w32-in ($(BLD)/ctags.$(O), $(BLD)/etags.$(O)): === modified file 'lib-src/makefile.w32-in' --- lib-src/makefile.w32-in 2012-07-07 00:20:56 +0000 +++ lib-src/makefile.w32-in 2012-07-09 00:59:38 +0000 @@ -19,7 +19,7 @@ ALL = $(BLD)/test-distrib.exe $(BLD)/make-docfile.exe $(BLD)/hexl.exe\ $(BLD)/ctags.exe $(BLD)/etags.exe $(BLD)/movemail.exe $(BLD)/ebrowse.exe\ - $(BLD)/emacsclient.exe $(BLD)/emacsclientw.exe + $(BLD)/emacsclient.exe $(BLD)/emacsclientw.exe $(BLD)/profile.exe .PHONY: make-docfile @@ -110,6 +110,12 @@ $(BLD)/ctags.$(O): ctags.c $(CC) $(CFLAGS) $(CTAGS_CFLAGS) $(CC_OUT)$@ ctags.c +PROFILEOBJS = $(BLD)/profile.$(O) \ + ../lib/$(BLD)/libgnu.$(A) \ + $(BLD)/ntlib.$(O) +$(BLD)/profile.exe: $(PROFILEOBJS) + $(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(PROFILEOBJS) $(LIBS) + # # From ..\src\Makefile.in # It doesn't matter if the real name is *.obj for the files in this list, @@ -306,6 +312,7 @@ $(CP) $(BLD)/movemail.exe $(INSTALL_DIR)/bin $(CP) $(BLD)/emacsclient.exe $(INSTALL_DIR)/bin $(CP) $(BLD)/emacsclientw.exe $(INSTALL_DIR)/bin + $(CP) $(BLD)/profile.exe $(INSTALL_DIR)/bin - mkdir "$(INSTALL_DIR)/etc" $(CP) $(DOC) $(INSTALL_DIR)/etc @@ -350,12 +357,6 @@ EMACS_ROOT = .. SRC = . -$(BLD)/alloca.$(O) : \ - $(SRC)/alloca.c \ - $(EMACS_ROOT)/src/s/ms-w32.h \ - $(EMACS_ROOT)/src/config.h \ - $(EMACS_ROOT)/src/blockinput.h - $(BLD)/ctags.$(O) : \ $(SRC)/ctags.c \ $(EMACS_ROOT)/nt/inc/sys/param.h \ @@ -424,9 +425,6 @@ $(EMACS_ROOT)/lib-src/../src/config.h \ $(EMACS_ROOT)/lib-src/../src/systime.h -$(BLD)/tcp.$(O) : \ - $(SRC)/tcp.c - $(BLD)/test-distrib.$(O) : \ $(SRC)/test-distrib.c ------------------------------------------------------------ revno: 108957 committer: Paul Eggert branch nick: trunk timestamp: Sun 2012-07-08 16:00:38 -0700 message: * systime.h (EMACS_SUB_TIME): Clarify behavior with unsigned time_t. See . diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-07-08 16:38:43 +0000 +++ src/ChangeLog 2012-07-08 23:00:38 +0000 @@ -1,3 +1,8 @@ +2012-07-08 Paul Eggert + + * systime.h (EMACS_SUB_TIME): Clarify behavior with unsigned time_t. + See . + 2012-07-08 Eli Zaretskii * xdisp.c (fill_glyphless_glyph_string): If the face of the glyph === modified file 'src/systime.h' --- src/systime.h 2012-07-07 01:57:42 +0000 +++ src/systime.h 2012-07-08 23:00:38 +0000 @@ -80,7 +80,8 @@ #define EMACS_GET_TIME(time) gettime (&(time)) /* Put into DEST the result of adding SRC1 to SRC2, or of subtracting - SRC2 from SRC1. On overflow, store an extremal value. */ + SRC2 from SRC1. On overflow, store an extremal value: ergo, if + time_t is unsigned, return 0 if the true answer would be negative. */ #define EMACS_ADD_TIME(dest, src1, src2) ((dest) = timespec_add (src1, src2)) #define EMACS_SUB_TIME(dest, src1, src2) ((dest) = timespec_sub (src1, src2)) ------------------------------------------------------------ revno: 108956 committer: Paul Eggert branch nick: trunk timestamp: Sun 2012-07-08 13:03:56 -0700 message: Restore deprecation warnings, except for older libpng. * configure.in (WARN_CFLAGS): Remove -Wno-deprecated-declarations. (HAVE_LIBPNG_PNG_H): Don't bother checking for this if we have png.h. (PNG_DEPRECATED): Define when compiling with older PNG versions. diff: === modified file 'ChangeLog' --- ChangeLog 2012-07-07 23:16:19 +0000 +++ ChangeLog 2012-07-08 20:03:56 +0000 @@ -1,3 +1,10 @@ +2012-07-08 Paul Eggert + + Restore deprecation warnings, except for older libpng. + * configure.in (WARN_CFLAGS): Remove -Wno-deprecated-declarations. + (HAVE_LIBPNG_PNG_H): Don't bother checking for this if we have png.h. + (PNG_DEPRECATED): Define when compiling with older PNG versions. + 2012-07-07 Andreas Schwab * configure.in (WARN_CFLAGS): Add -Wno-deprecated-declarations. === modified file 'configure.in' --- configure.in 2012-07-07 20:32:41 +0000 +++ configure.in 2012-07-08 20:03:56 +0000 @@ -697,7 +697,6 @@ gl_WARN_ADD([-Wno-switch]) # Too many warnings for now gl_WARN_ADD([-Wno-unused-parameter]) # Too many warnings for now gl_WARN_ADD([-Wno-format-nonliteral]) - gl_WARN_ADD([-Wno-deprecated-declarations]) # triggered by libpng # In spite of excluding -Wlogical-op above, it is enabled, as of # gcc 4.5.0 20090517. @@ -2451,7 +2450,7 @@ if test "${with_png}" != "no"; then # Debian unstable as of July 2003 has multiple libpngs, and puts png.h # in /usr/include/libpng. - AC_CHECK_HEADERS(png.h libpng/png.h) + AC_CHECK_HEADERS(png.h libpng/png.h, break) if test "$ac_cv_header_png_h" = yes || test "$ac_cv_header_libpng_png_h" = yes ; then AC_CHECK_LIB(png, png_get_channels, HAVE_PNG=yes, , -lz -lm) fi @@ -2460,6 +2459,19 @@ if test "${HAVE_PNG}" = "yes"; then AC_DEFINE(HAVE_PNG, 1, [Define to 1 if you have the png library (-lpng).]) LIBPNG="-lpng -lz -lm" + + AC_CHECK_DECL(png_longjmp, + [], + [AC_DEFINE(PNG_DEPRECATED, [], + [Define to empty to suppress deprecation warnings when building + with --enable-gcc-warnings and with libpng versions before 1.5, + which lack png_longjmp.])], + [[#ifdef HAVE_LIBPNG_PNG_H + # include + #else + # include + #endif + ]]) fi fi AC_SUBST(LIBPNG) ------------------------------------------------------------ revno: 108955 fixes bug(s): http://debbugs.gnu.org/11832 committer: Eli Zaretskii branch nick: trunk timestamp: Sun 2012-07-08 19:38:43 +0300 message: Cleanup changes following fix for bug #11832. src/ xdisp.c (display_line): Add commentary about displaying truncation glyphs on GUI frames. (produce_special_glyphs): Move here from term.c. src/term.c (produce_special_glyphs): Move to xdisp.c. src/dispextern.h (produce_special_glyphs): Move prototype to xdisp.c section. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-07-08 15:49:39 +0000 +++ src/ChangeLog 2012-07-08 16:38:43 +0000 @@ -2,6 +2,14 @@ * xdisp.c (fill_glyphless_glyph_string): If the face of the glyph has no font, use the frame's font. (Bug#11813) + (display_line): Add commentary about displaying truncation glyphs + on GUI frames. + (produce_special_glyphs): Move here from term.c. + + * term.c (produce_special_glyphs): Move to xdisp.c. + + * dispextern.h (produce_special_glyphs): Move prototype to xdisp.c + section. 2012-07-07 Andreas Schwab === modified file 'src/dispextern.h' --- src/dispextern.h 2012-07-06 21:07:46 +0000 +++ src/dispextern.h 2012-07-08 16:38:43 +0000 @@ -3065,7 +3065,7 @@ extern ptrdiff_t compute_display_string_end (ptrdiff_t, struct bidi_string_data *); extern void produce_stretch_glyph (struct it *); - +extern void produce_special_glyphs (struct it *, enum display_element_type); #ifdef HAVE_WINDOW_SYSTEM @@ -3353,7 +3353,6 @@ extern int per_line_cost (const char *); extern void calculate_costs (struct frame *); extern void produce_glyphs (struct it *); -extern void produce_special_glyphs (struct it *, enum display_element_type); extern int tty_capable_p (struct tty_display_info *, unsigned, unsigned long, unsigned long); extern void set_tty_color_mode (struct tty_display_info *, struct frame *); extern struct terminal *get_named_tty (const char *); === modified file 'src/term.c' --- src/term.c 2012-07-07 16:36:02 +0000 +++ src/term.c 2012-07-08 16:38:43 +0000 @@ -1885,67 +1885,6 @@ append_glyphless_glyph (it, face_id, str); } - -/* Get information about special display element WHAT in an - environment described by IT. WHAT is one of IT_TRUNCATION or - IT_CONTINUATION. Maybe produce glyphs for WHAT if IT has a - non-null glyph_row member. This function ensures that fields like - face_id, c, len of IT are left untouched. */ - -void -produce_special_glyphs (struct it *it, enum display_element_type what) -{ - struct it temp_it; - Lisp_Object gc; - GLYPH glyph; - - temp_it = *it; - temp_it.dp = NULL; - temp_it.what = IT_CHARACTER; - temp_it.len = 1; - temp_it.object = make_number (0); - memset (&temp_it.current, 0, sizeof temp_it.current); - - if (what == IT_CONTINUATION) - { - /* Continuation glyph. For R2L lines, we mirror it by hand. */ - if (it->bidi_it.paragraph_dir == R2L) - SET_GLYPH_FROM_CHAR (glyph, '/'); - else - SET_GLYPH_FROM_CHAR (glyph, '\\'); - if (it->dp - && (gc = DISP_CONTINUE_GLYPH (it->dp), GLYPH_CODE_P (gc))) - { - /* FIXME: Should we mirror GC for R2L lines? */ - SET_GLYPH_FROM_GLYPH_CODE (glyph, gc); - spec_glyph_lookup_face (XWINDOW (it->window), &glyph); - } - } - else if (what == IT_TRUNCATION) - { - /* Truncation glyph. */ - SET_GLYPH_FROM_CHAR (glyph, '$'); - if (it->dp - && (gc = DISP_TRUNC_GLYPH (it->dp), GLYPH_CODE_P (gc))) - { - /* FIXME: Should we mirror GC for R2L lines? */ - SET_GLYPH_FROM_GLYPH_CODE (glyph, gc); - spec_glyph_lookup_face (XWINDOW (it->window), &glyph); - } - } - else - abort (); - - temp_it.c = temp_it.char_to_display = GLYPH_CHAR (glyph); - temp_it.face_id = GLYPH_FACE (glyph); - temp_it.len = CHAR_BYTES (temp_it.c); - - PRODUCE_GLYPHS (&temp_it); - it->pixel_width = temp_it.pixel_width; - it->nglyphs = temp_it.pixel_width; -} - - /*********************************************************************** Faces === modified file 'src/xdisp.c' --- src/xdisp.c 2012-07-08 15:49:39 +0000 +++ src/xdisp.c 2012-07-08 16:38:43 +0000 @@ -19773,6 +19773,13 @@ #ifdef HAVE_WINDOW_SYSTEM else { + /* On a GUI frame, when the right fringe (left + fringe for R2L rows) is turned off, we produce + truncation glyphs preceded by a stretch glyph + whose width is computed such that the truncation + glyphs are aligned at the window margin, even + when very different fonts are used in different + glyph rows. */ int stretch_width = it->last_visible_x - it->current_x; row->used[TEXT_AREA] = i; @@ -24196,6 +24203,65 @@ it->nglyphs = width; } +/* Get information about special display element WHAT in an + environment described by IT. WHAT is one of IT_TRUNCATION or + IT_CONTINUATION. Maybe produce glyphs for WHAT if IT has a + non-null glyph_row member. This function ensures that fields like + face_id, c, len of IT are left untouched. */ + +void +produce_special_glyphs (struct it *it, enum display_element_type what) +{ + struct it temp_it; + Lisp_Object gc; + GLYPH glyph; + + temp_it = *it; + temp_it.dp = NULL; + temp_it.what = IT_CHARACTER; + temp_it.len = 1; + temp_it.object = make_number (0); + memset (&temp_it.current, 0, sizeof temp_it.current); + + if (what == IT_CONTINUATION) + { + /* Continuation glyph. For R2L lines, we mirror it by hand. */ + if (it->bidi_it.paragraph_dir == R2L) + SET_GLYPH_FROM_CHAR (glyph, '/'); + else + SET_GLYPH_FROM_CHAR (glyph, '\\'); + if (it->dp + && (gc = DISP_CONTINUE_GLYPH (it->dp), GLYPH_CODE_P (gc))) + { + /* FIXME: Should we mirror GC for R2L lines? */ + SET_GLYPH_FROM_GLYPH_CODE (glyph, gc); + spec_glyph_lookup_face (XWINDOW (it->window), &glyph); + } + } + else if (what == IT_TRUNCATION) + { + /* Truncation glyph. */ + SET_GLYPH_FROM_CHAR (glyph, '$'); + if (it->dp + && (gc = DISP_TRUNC_GLYPH (it->dp), GLYPH_CODE_P (gc))) + { + /* FIXME: Should we mirror GC for R2L lines? */ + SET_GLYPH_FROM_GLYPH_CODE (glyph, gc); + spec_glyph_lookup_face (XWINDOW (it->window), &glyph); + } + } + else + abort (); + + temp_it.c = temp_it.char_to_display = GLYPH_CHAR (glyph); + temp_it.face_id = GLYPH_FACE (glyph); + temp_it.len = CHAR_BYTES (temp_it.c); + + PRODUCE_GLYPHS (&temp_it); + it->pixel_width = temp_it.pixel_width; + it->nglyphs = temp_it.pixel_width; +} + #ifdef HAVE_WINDOW_SYSTEM /* Calculate line-height and line-spacing properties. ------------------------------------------------------------ revno: 108954 fixes bug(s): http://debbugs.gnu.org/11813 committer: Eli Zaretskii branch nick: trunk timestamp: Sun 2012-07-08 18:49:39 +0300 message: Fix bug #11813 with invalid font for buffer name on the modeline. src/xdisp.c (fill_glyphless_glyph_string): If the face of the glyph has no font, use the frame's font. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-07-07 23:16:19 +0000 +++ src/ChangeLog 2012-07-08 15:49:39 +0000 @@ -1,3 +1,8 @@ +2012-07-08 Eli Zaretskii + + * xdisp.c (fill_glyphless_glyph_string): If the face of the glyph + has no font, use the frame's font. (Bug#11813) + 2012-07-07 Andreas Schwab * xdisp.c (display_line): Avoid warning about implicit declaration === modified file 'src/xdisp.c' --- src/xdisp.c 2012-07-07 21:39:45 +0000 +++ src/xdisp.c 2012-07-08 15:49:39 +0000 @@ -22736,7 +22736,7 @@ last = s->row->glyphs[s->area] + end; voffset = glyph->voffset; s->face = FACE_FROM_ID (s->f, face_id); - s->font = s->face->font; + s->font = s->face->font ? s->face->font : FRAME_FONT (s->f); s->nchars = 1; s->width = glyph->pixel_width; glyph++; ------------------------------------------------------------ revno: 108953 committer: Juanma Barranquero branch nick: trunk timestamp: Sun 2012-07-08 16:58:24 +0200 message: nt/config.nt (BROKEN_SA_RESTART): Fix comment. diff: === modified file 'nt/config.nt' --- nt/config.nt 2012-07-07 20:26:48 +0000 +++ nt/config.nt 2012-07-08 14:58:24 +0000 @@ -51,7 +51,7 @@ /* Define to the number of bits in type 'wint_t'. */ #undef BITSIZEOF_WINT_T -/* Define if SA_RESTART should not be used. */ +/* Define if SA_RESTART should only be used in batch mode. */ #undef BROKEN_SA_RESTART /* Define if SIGIO should not be used. */ ------------------------------------------------------------ revno: 108952 committer: Glenn Morris branch nick: trunk timestamp: Sun 2012-07-08 06:18:44 -0400 message: Auto-commit of generated files. diff: === modified file 'autogen/config.in' --- autogen/config.in 2012-07-07 10:17:27 +0000 +++ autogen/config.in 2012-07-08 10:18:44 +0000 @@ -46,7 +46,7 @@ /* Define to the number of bits in type 'wint_t'. */ #undef BITSIZEOF_WINT_T -/* Define if SA_RESTART should not be used. */ +/* Define if SA_RESTART should only be used in batch mode. */ #undef BROKEN_SA_RESTART /* Define if SIGIO should not be used. */ === modified file 'autogen/configure' --- autogen/configure 2012-07-07 10:17:27 +0000 +++ autogen/configure 2012-07-08 10:18:44 +0000 @@ -7140,16 +7140,19 @@ nw="$nw -Wsign-conversion" # Too many warnings for now nw="$nw -Woverlength-strings" # Not a problem these days nw="$nw -Wtraditional-conversion" # Too many warnings for now + nw="$nw -Wunreachable-code" # so buggy that it's now silently ignored nw="$nw -Wpadded" # Our structs are not padded - nw="$nw -Wredundant-decls" # We regularly (re)declare getenv etc. + nw="$nw -Wredundant-decls" # we regularly (re)declare functions nw="$nw -Wlogical-op" # any use of fwrite provokes this - nw="$nw -Wformat-nonliteral" # Emacs does this a lot + nw="$nw -Wformat-nonliteral" # we do this a lot nw="$nw -Wvla" # warnings in gettext.h nw="$nw -Wnested-externs" # use of XARGMATCH/verify_function__ nw="$nw -Wswitch-enum" # Too many warnings for now nw="$nw -Wswitch-default" # Too many warnings for now - nw="$nw -Wfloat-equal" # e.g., ftoastr.c - nw="$nw -Winline" # e.g., dispnew.c's inlining of row_equal_p + nw="$nw -Wfloat-equal" # warns about high-quality code + nw="$nw -Winline" # OK to ignore 'inline' + nw="$nw -Wsync-nand" # irrelevant here, and provokes ObjC warning + nw="$nw -Wunsafe-loop-optimizations" # OK to suppress unsafe optimizations # Emacs doesn't care about shadowing; see # . @@ -7161,12 +7164,6 @@ nw="$nw -Wsuggest-attribute=const" nw="$nw -Wsuggest-attribute=pure" - # Some loops can't be optimized with -O1, - # so remove -Wunsafe-loop-optimizations. - if echo "$CFLAGS" | $EGREP 'O1' 1>/dev/null; then - nw="$nw -Wunsafe-loop-optimizations" - fi - if test -n "$GCC"; then @@ -7609,6 +7606,41 @@ fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-deprecated-declarations" >&5 +$as_echo_n "checking whether C compiler handles -Wno-deprecated-declarations... " >&6; } +if test "${gl_cv_warn_c__Wno_deprecated_declarations+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " -Wno-deprecated-declarations" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_warn_c__Wno_deprecated_declarations=yes +else + gl_cv_warn_c__Wno_deprecated_declarations=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_c__Wno_deprecated_declarations" >&5 +$as_echo "$gl_cv_warn_c__Wno_deprecated_declarations" >&6; } +if test "x$gl_cv_warn_c__Wno_deprecated_declarations" = x""yes; then : + as_fn_append WARN_CFLAGS " -Wno-deprecated-declarations" +fi + + # triggered by libpng # In spite of excluding -Wlogical-op above, it is enabled, as of # gcc 4.5.0 20090517. ------------------------------------------------------------ revno: 108951 fixes bug(s): http://debbugs.gnu.org/374 committer: Chong Yidong branch nick: trunk timestamp: Sun 2012-07-08 16:26:21 +0800 message: Fix interaction of line-dragging with mouse-1-click-follows-link. * lisp/mouse.el (mouse-drag-line): Rewrite the track-mouse loop. Implement the mouse-1-click-follows-link handling properly. * lisp/info.el (Info-link-keymap): Use follow-link mechanism for header-line links. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-07-08 06:09:21 +0000 +++ lisp/ChangeLog 2012-07-08 08:26:21 +0000 @@ -1,5 +1,11 @@ 2012-07-08 Chong Yidong + * mouse.el (mouse-drag-line): Rewrite the track-mouse loop. + Implement the mouse-1-click-follows-link handling properly. + + * info.el (Info-link-keymap): Use follow-link mechanism for + header-line links (Bug#374). + * simple.el (deactivate-mark): Do not set the primary selection if another program has acquired it (Bug#11772). === modified file 'lisp/info.el' --- lisp/info.el 2012-06-27 07:47:56 +0000 +++ lisp/info.el 2012-07-08 08:26:21 +0000 @@ -4361,9 +4361,9 @@ (defvar Info-link-keymap (let ((keymap (make-sparse-keymap))) - (define-key keymap [header-line mouse-1] 'Info-mouse-follow-link) + (define-key keymap [header-line down-mouse-1] 'mouse-drag-header-line) + (define-key keymap [header-line mouse-1] 'mouse-select-window) (define-key keymap [header-line mouse-2] 'Info-mouse-follow-link) - (define-key keymap [header-line down-mouse-1] 'ignore) (define-key keymap [mouse-2] 'Info-mouse-follow-link) (define-key keymap [follow-link] 'mouse-face) keymap) === modified file 'lisp/mouse.el' --- lisp/mouse.el 2012-06-23 12:54:59 +0000 +++ lisp/mouse.el 2012-07-08 08:26:21 +0000 @@ -388,10 +388,11 @@ ;; Note that `window-in-direction' replaces `mouse-drag-window-above' ;; and `mouse-drag-vertical-line-rightward-window' with Emacs 24.1. + (defun mouse-drag-line (start-event line) - "Drag some line with the mouse. + "Drag a mode line, header line, or vertical line with the mouse. START-EVENT is the starting mouse-event of the drag action. LINE -must be one of the symbols header, mode, or vertical." +must be one of the symbols `header', `mode', or `vertical'." ;; Give temporary modes such as isearch a chance to turn off. (run-hooks 'mouse-leave-buffer-hook) (let* ((echo-keystrokes 0) @@ -400,122 +401,85 @@ (frame (window-frame window)) (minibuffer-window (minibuffer-window frame)) (on-link (and mouse-1-click-follows-link - (or mouse-1-click-in-non-selected-windows - (eq window (selected-window))) (mouse-on-link-p start))) - (resize-minibuffer - ;; Resize the minibuffer window if it's on the same frame as - ;; and immediately below the position window and it's either - ;; active or `resize-mini-windows' is nil. - (and (eq line 'mode) - (eq (window-frame minibuffer-window) frame) - (= (nth 1 (window-edges minibuffer-window)) - (nth 3 (window-edges window))) - (or (not resize-mini-windows) - (eq minibuffer-window (active-minibuffer-window))))) - (which-side - (and (eq line 'vertical) - (or (cdr (assq 'vertical-scroll-bars (frame-parameters frame))) - 'right))) - done event mouse growth dragged) + (side (and (eq line 'vertical) + (or (cdr (assq 'vertical-scroll-bars + (frame-parameters frame))) + 'right))) + (draggable t) + event position growth dragged) (cond ((eq line 'header) ;; Check whether header-line can be dragged at all. (if (window-at-side-p window 'top) - (setq done t) + (setq draggable nil) (setq window (window-in-direction 'above window t)))) ((eq line 'mode) ;; Check whether mode-line can be dragged at all. - (when (and (window-at-side-p window 'bottom) - (not resize-minibuffer)) - (setq done t))) + (and (window-at-side-p window 'bottom) + ;; Allow resizing the minibuffer window if it's on the same + ;; frame as and immediately below the clicked window, and + ;; it's active or `resize-mini-windows' is nil. + (not (and (eq (window-frame minibuffer-window) frame) + (= (nth 1 (window-edges minibuffer-window)) + (nth 3 (window-edges window))) + (or (not resize-mini-windows) + (eq minibuffer-window + (active-minibuffer-window))))) + (setq draggable nil))) ((eq line 'vertical) - ;; Get the window to adjust for the vertical case. - (setq window - (if (eq which-side 'right) - ;; If the scroll bar is on the window's right or there's - ;; no scroll bar at all, adjust the window where the - ;; start-event occurred. - window - ;; If the scroll bar is on the start-event window's left, - ;; adjust the window on the left of it. - (window-in-direction 'left window t))))) + ;; Get the window to adjust for the vertical case. If the + ;; scroll bar is on the window's right or there's no scroll bar + ;; at all, adjust the window where the start-event occurred. If + ;; the scroll bar is on the start-event window's left, adjust + ;; the window on the left of it. + (unless (eq side 'right) + (setq window (window-in-direction 'left window t))))) ;; Start tracking. (track-mouse - ;; Loop reading events and sampling the position of the mouse. - (while (not done) - (setq event (read-event)) - (setq mouse (mouse-position)) - ;; Do nothing if - ;; - there is a switch-frame event. - ;; - the mouse isn't in the frame that we started in - ;; - the mouse isn't in any Emacs frame - ;; Drag if - ;; - there is a mouse-movement event - ;; - there is a scroll-bar-movement event (??) - ;; (same as mouse movement for our purposes) - ;; Quit if - ;; - there is a keyboard event or some other unknown event. + ;; Loop reading events and sampling the position of the mouse, + ;; until there is a non-mouse-movement event. Also, + ;; scroll-bar-movement events are the same as mouse movement for + ;; our purposes. (Why? -- cyd) + (while (progn + (setq event (read-event)) + (memq (car-safe event) '(mouse-movement scroll-bar-movement))) + (setq position (mouse-position)) (cond - ((not (consp event)) - (setq done t)) - ((memq (car event) '(switch-frame select-window)) - nil) - ((not (memq (car event) '(mouse-movement scroll-bar-movement))) - (when (consp event) - ;; Do not unread a drag-mouse-1 event to avoid selecting - ;; some other window. For vertical line dragging do not - ;; unread mouse-1 events either (but only if we dragged at - ;; least once to allow mouse-1 clicks get through. - (unless (and dragged - (if (eq line 'vertical) - (memq (car event) '(drag-mouse-1 mouse-1)) - (eq (car event) 'drag-mouse-1))) - (push event unread-command-events))) - (setq done t)) - ((or (not (eq (car mouse) frame)) (null (car (cdr mouse)))) + ((or (not (eq (car position) frame)) + (null (cadr position))) nil) ((eq line 'vertical) - ;; Drag vertical divider (the calculations below are those - ;; from Emacs 23). - (setq growth - (- (- (cadr mouse) - (if (eq which-side 'right) 0 2)) - (nth 2 (window-edges window)) - -1)) + ;; Drag vertical divider. + (setq growth (- (cadr position) + (if (eq side 'right) 0 2) + (nth 2 (window-edges window)) + -1)) (unless (zerop growth) - ;; Remember that we dragged. (setq dragged t)) (adjust-window-trailing-edge window growth t)) - (t - ;; Drag horizontal divider (the calculations below are those - ;; from Emacs 23). + (draggable + ;; Drag horizontal divider. (setq growth (if (eq line 'mode) - (- (cddr mouse) (nth 3 (window-edges window)) -1) + (- (cddr position) (nth 3 (window-edges window)) -1) ;; The window's top includes the header line! - (- (nth 3 (window-edges window)) (cddr mouse)))) - + (- (nth 3 (window-edges window)) (cddr position)))) (unless (zerop growth) - ;; Remember that we dragged. (setq dragged t)) - - (if (eq line 'mode) - (adjust-window-trailing-edge window growth) - (adjust-window-trailing-edge window (- growth)))))) - - ;; Presumably, if this was just a click, the last event should be - ;; `mouse-1', whereas if this did move the mouse, it should be a - ;; `drag-mouse-1'. `dragged' nil tells us that we never dragged - ;; and `on-link' tells us that there is a link to follow. - (when (and on-link (not dragged) - (eq 'mouse-1 (car-safe (car unread-command-events)))) - ;; If mouse-2 has never been done by the user, it doesn't - ;; have the necessary property to be interpreted correctly. - (put 'mouse-2 'event-kind 'mouse-click) - (setcar unread-command-events - (cons 'mouse-2 (cdar unread-command-events))))))) + (adjust-window-trailing-edge window (if (eq line 'mode) + growth + (- growth))))))) + ;; Process the terminating event. + (when (and (mouse-event-p event) on-link (not dragged) + (mouse--remap-link-click-p start-event event)) + ;; If mouse-2 has never been done by the user, it doesn't have + ;; the necessary property to be interpreted correctly. + (put 'mouse-2 'event-kind 'mouse-click) + (setcar event 'mouse-2)) + (push event unread-command-events))) + (defun mouse-drag-mode-line (start-event) "Change the height of a window by dragging on the mode line." @@ -791,10 +755,8 @@ ;; Don't count the mode line. (1- (nth 3 bounds)))) (on-link (and mouse-1-click-follows-link - (or mouse-1-click-in-non-selected-windows - (eq start-window original-window)) ;; Use start-point before the intangibility - ;; treatment, in case we click on a link inside an + ;; treatment, in case we click on a link inside ;; intangible text. (mouse-on-link-p start-posn))) (click-count (1- (event-click-count start-event))) ------------------------------------------------------------ revno: 108950 fixes bug(s): http://debbugs.gnu.org/11772 committer: Chong Yidong branch nick: trunk timestamp: Sun 2012-07-08 14:09:21 +0800 message: Do not steal primary selection on mark deactivation. * lisp/simple.el (deactivate-mark): Do not set the primary selection if another program has acquired it. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-07-07 23:16:19 +0000 +++ lisp/ChangeLog 2012-07-08 06:09:21 +0000 @@ -1,3 +1,8 @@ +2012-07-08 Chong Yidong + + * simple.el (deactivate-mark): Do not set the primary selection + if another program has acquired it (Bug#11772). + 2012-07-07 Kevin Ryde * woman.el (woman-strings): Fix double-quote handling (Bug#1151). === modified file 'lisp/simple.el' --- lisp/simple.el 2012-07-07 09:33:28 +0000 +++ lisp/simple.el 2012-07-08 06:09:21 +0000 @@ -3863,7 +3863,11 @@ (cond (saved-region-selection (x-set-selection 'PRIMARY saved-region-selection) (setq saved-region-selection nil)) - ((/= (region-beginning) (region-end)) + ;; If another program has acquired the selection, region + ;; deactivation should not clobber it (Bug#11772). + ((and (/= (region-beginning) (region-end)) + (or (x-selection-owner-p 'PRIMARY) + (null (x-selection-exists-p 'PRIMARY)))) (x-set-selection 'PRIMARY (buffer-substring-no-properties (region-beginning) ------------------------------------------------------------ Use --include-merges or -n0 to see merged revisions.