Now on revision 108121. ------------------------------------------------------------ revno: 108121 committer: Glenn Morris branch nick: trunk timestamp: Thu 2012-05-03 23:45:03 -0700 message: Give info files the .info extension Ref http://lists.gnu.org/archive/html/emacs-devel/2012-04/msg00354.html * configure.in (INFO_EXT, INFO_OPTS): New output variables. * doc/emacs/Makefile.in (INFO_EXT, INFO_OPTS): New, set by configure. (info, infoclean): Use $INFO_EXT. ($(infodir)/emacs$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT. * doc/emacs/makefile.w32-in (INFO_EXT, INFO_OPTS): New. (INFO_TARGETS): Use $INFO_EXT. ($(infodir)/emacs$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT, and -o. * doc/lispintro/Makefile.in (INFO_EXT, INFO_OPTS): New, set by configure. (info, infoclean): Use $INFO_EXT. (${infodir}/eintr$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT. * doc/lispintro/makefile.w32-in (INFO_EXT, INFO_OPTS): New. (INFO_TARGETS, clean): Use $INFO_EXT. ($(infodir)/eintr$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT. * doc/lispref/Makefile.in (INFO_EXT, INFO_OPTS): New, set by configure. (info, infoclean): Use $INFO_EXT. ($(infodir)/elisp$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT. * doc/lispref/makefile.w32-in (INFO_EXT, INFO_OPTS): New. (info, maintainer-clean): Use $INFO_EXT. ($(infodir)/elisp$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT. * doc/misc/Makefile.in (INFO_EXT, INFO_OPTS): New, set by configure. (INFO_TARGETS): Use $INFO_EXT. Make all rules generating info files use $INFO_EXT, $INFO_OPT, and -o. * doc/misc/makefile.w32-in (INFO_EXT, INFO_OPTS): New. (INFO_TARGETS): Use $INFO_EXT. Make all rules generating info files use $INFO_EXT, $INFO_OPT, and -o. diff: === modified file 'ChangeLog' --- ChangeLog 2012-05-02 16:55:00 +0000 +++ ChangeLog 2012-05-04 06:45:03 +0000 @@ -1,3 +1,7 @@ +2012-05-04 Glenn Morris + + * configure.in (INFO_EXT, INFO_OPTS): New output variables. + 2012-05-02 Glenn Morris * configure.in (LD_SWITCH_SYSTEM): Don't try to defeat === modified file 'Makefile.in' --- Makefile.in 2012-05-02 07:45:16 +0000 +++ Makefile.in 2012-05-04 06:45:03 +0000 @@ -129,7 +129,8 @@ # Where to install and expect the info files describing Emacs. infodir=@infodir@ # Info files not in the doc/misc directory (we get those via make echo-info). -INFO_NONMISC=emacs eintr elisp +INFO_EXT=@INFO_EXT@ +INFO_NONMISC=emacs$(INFO_EXT) eintr$(INFO_EXT) elisp$(INFO_EXT) # If no makeinfo was found and configured --without-makeinfo, "no"; else "yes". HAVE_MAKEINFO=@HAVE_MAKEINFO@ @@ -904,6 +905,7 @@ case $${file} in \ *-[0-9]*|COPYING|dir) continue ;; \ esac ; \ + file=`echo $${file} | sed 's/\.info//'` ; \ grep -q -F ": ($${file})." dir || missing="$${missing} $${file}" ; \ done ; \ if test -n "$${missing}"; then \ === modified file 'configure.in' --- configure.in 2012-05-02 16:55:00 +0000 +++ configure.in 2012-05-04 06:45:03 +0000 @@ -865,6 +865,12 @@ fi AC_SUBST(HAVE_MAKEINFO) +dnl Just so that there is only a single place we need to edit. +INFO_EXT=.info +INFO_OPTS=--no-split +AC_SUBST(INFO_EXT) +AC_SUBST(INFO_OPTS) + dnl Add our options to ac_link now, after it is set up. if test x$GCC = xyes; then === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2012-05-02 07:20:29 +0000 +++ doc/emacs/ChangeLog 2012-05-04 06:45:03 +0000 @@ -1,3 +1,12 @@ +2012-05-04 Glenn Morris + + * Makefile.in (INFO_EXT, INFO_OPTS): New, set by configure. + (info, infoclean): Use $INFO_EXT. + ($(infodir)/emacs$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT. + * makefile.w32-in (INFO_EXT, INFO_OPTS): New. + (INFO_TARGETS): Use $INFO_EXT. + ($(infodir)/emacs$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT, and -o. + 2012-05-02 Glenn Morris * emacs.texi (@copying): Only print EDITION in the TeX version. === modified file 'doc/emacs/Makefile.in' --- doc/emacs/Makefile.in 2012-04-07 19:23:53 +0000 +++ doc/emacs/Makefile.in 2012-05-04 06:45:03 +0000 @@ -35,6 +35,13 @@ # Directory with the (customized) texinfo.tex file. texinfodir = $(srcdir)/../misc +INFO_EXT=@INFO_EXT@ +# Options used only when making info output. +# --no-split is only needed because of MS-DOS. +# For a possible alternative, see +# http://lists.gnu.org/archive/html/emacs-devel/2011-01/msg01182.html +INFO_OPTS=@INFO_OPTS@ + # The makeinfo program is part of the Texinfo distribution. # Use --force so that it generates output even if there are errors. MAKEINFO = @MAKEINFO@ @@ -118,7 +125,7 @@ .PHONY: info dvi html pdf ps -info: $(infodir)/emacs +info: $(infodir)/emacs$(INFO_EXT) dvi: emacs.dvi html: emacs.html pdf: emacs.pdf @@ -128,9 +135,9 @@ # There is no provision for Info files to exist in the build directory. # In a distribution of Emacs, the Info files should be up to date. # Note: "<" is not portable in ordinary make rules. -$(infodir)/emacs: ${EMACSSOURCES} +$(infodir)/emacs$(INFO_EXT): ${EMACSSOURCES} $(mkinfodir) - $(MAKEINFO) $(MAKEINFO_OPTS) -o $@ ${srcdir}/emacs.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/emacs.texi emacs.dvi: ${EMACSSOURCES} $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs.texi @@ -171,7 +178,7 @@ ## In the standalone tarfile, the clean rule runs this. infoclean: - -cd $(infodir) && rm -f emacs emacs-[1-9] emacs-[1-9][0-9] + -cd $(infodir) && rm -f emacs$(INFO_EXT) emacs$(INFO_EXT)-[1-9] emacs$(INFO_EXT)-[1-9][0-9] maintainer-clean: distclean infoclean === modified file 'doc/emacs/makefile.w32-in' --- doc/emacs/makefile.w32-in 2012-01-19 07:21:25 +0000 +++ doc/emacs/makefile.w32-in 2012-05-04 06:45:03 +0000 @@ -1,6 +1,6 @@ #### -*- Makefile -*- for the Emacs Manual -# Copyright (C) 2003-2012 Free Software Foundation, Inc. +# Copyright (C) 2003-2012 Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -30,7 +30,9 @@ MAKEINFO = makeinfo MAKEINFO_OPTS = --force --enable-encoding -I$(srcdir) MULTI_INSTALL_INFO = $(srcdir)\..\..\nt\multi-install-info.bat -INFO_TARGETS = $(infodir)/emacs +INFO_EXT=.info +INFO_OPTS=--no-split +INFO_TARGETS = $(infodir)/emacs$(INFO_EXT) DVI_TARGETS = emacs.dvi INFOSOURCES = info.texi @@ -114,8 +116,8 @@ $(infodir)/dir: $(MULTI_INSTALL_INFO) --info-dir=$(infodir) $(INFO_TARGETS) -$(infodir)/emacs: $(EMACSSOURCES) - $(MAKEINFO) $(MAKEINFO_OPTS) emacs.texi +$(infodir)/emacs$(INFO_EXT): $(EMACSSOURCES) + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ emacs.texi emacs.dvi: $(EMACSSOURCES) $(ENVADD) $(TEXI2DVI) $(srcdir)/emacs.texi @@ -129,6 +131,7 @@ mostlyclean: - $(DEL) *.log *.cp *.fn *.ky *.pg *.vr core *.tp *.core gnustmp.* +## FIXME $(infodir)/emacs* deletes too much, eg emacs-mime. clean: mostlyclean - $(DEL) *.dvi - $(DEL) $(infodir)/emacs* === modified file 'doc/lispintro/ChangeLog' --- doc/lispintro/ChangeLog 2012-05-02 07:20:29 +0000 +++ doc/lispintro/ChangeLog 2012-05-04 06:45:03 +0000 @@ -1,3 +1,12 @@ +2012-05-04 Glenn Morris + + * Makefile.in (INFO_EXT, INFO_OPTS): New, set by configure. + (info, infoclean): Use $INFO_EXT. + (${infodir}/eintr$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT. + * makefile.w32-in (INFO_EXT, INFO_OPTS): New. + (INFO_TARGETS, clean): Use $INFO_EXT. + ($(infodir)/eintr$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT. + 2012-05-02 Glenn Morris * emacs-lisp-intro.texi (Syntax): Reword to avoid underfull hbox. === modified file 'doc/lispintro/Makefile.in' --- doc/lispintro/Makefile.in 2012-04-07 19:23:53 +0000 +++ doc/lispintro/Makefile.in 2012-05-04 06:45:03 +0000 @@ -26,6 +26,10 @@ # Directory with the (customized) texinfo.tex file. texinfodir = $(srcdir)/../misc +INFO_EXT=@INFO_EXT@ +# Options used only when making info output. +INFO_OPTS=@INFO_OPTS@ + MAKEINFO = @MAKEINFO@ MAKEINFO_OPTS = --force -I $(srcdir) TEXI2DVI = texi2dvi @@ -39,7 +43,7 @@ .PHONY: info dvi html pdf ps -info: ${infodir}/eintr +info: ${infodir}/eintr$(INFO_EXT) dvi: emacs-lisp-intro.dvi html: emacs-lisp-intro.html @@ -49,9 +53,9 @@ # The file name eintr must fit within 5 characters, to allow for # -NN extensions to fit into DOS 8+3 limits without clashing. # Note: "<" is not portable in ordinary make rules. -${infodir}/eintr: ${srcdir}/emacs-lisp-intro.texi +${infodir}/eintr$(INFO_EXT): ${srcdir}/emacs-lisp-intro.texi $(mkinfodir) - $(MAKEINFO) $(MAKEINFO_OPTS) -o $@ ${srcdir}/emacs-lisp-intro.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/emacs-lisp-intro.texi emacs-lisp-intro.dvi: ${srcdir}/emacs-lisp-intro.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-lisp-intro.texi @@ -79,7 +83,7 @@ distclean: clean infoclean: - -cd $(infodir) && rm -f eintr eintr-[1-9] + -cd $(infodir) && rm -f eintr$(INFO_EXT) eintr$(INFO_EXT)-[1-9] maintainer-clean: distclean infoclean === modified file 'doc/lispintro/makefile.w32-in' --- doc/lispintro/makefile.w32-in 2012-01-19 07:21:25 +0000 +++ doc/lispintro/makefile.w32-in 2012-05-04 06:45:03 +0000 @@ -1,6 +1,6 @@ #### -*- Makefile -*- for the Emacs Lisp Introduction manual. -# Copyright (C) 2003-2012 Free Software Foundation, Inc. +# Copyright (C) 2003-2012 Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -24,10 +24,12 @@ # Directory with the (customized) texinfo.tex file. texinfodir = $(srcdir)/../misc +INFO_EXT=.info +INFO_OPTS=--no-split INFO_SOURCES = $(srcdir)/emacs-lisp-intro.texi $(srcdir)/doclicense.texi # The file name eintr must fit within 5 characters, to allow for # -NN extensions to fit into DOS 8+3 limits without clashing -INFO_TARGETS = $(infodir)/eintr +INFO_TARGETS = $(infodir)/eintr$(INFO_EXT) DVI_TARGETS = emacs-lisp-intro.dvi MAKEINFO = makeinfo @@ -47,8 +49,8 @@ dvi: $(DVI_TARGETS) -$(infodir)/eintr: $(INFO_SOURCES) - $(MAKEINFO) -o $@ $(srcdir)/emacs-lisp-intro.texi +$(infodir)/eintr$(INFO_EXT): $(INFO_SOURCES) + $(MAKEINFO) $(INFO_OPTS) -o $@ $(srcdir)/emacs-lisp-intro.texi emacs-lisp-intro.dvi: $(INFO_SOURCES) $(ENVADD) $(TEXI2DVI) $(srcdir)/emacs-lisp-intro.texi @@ -66,7 +68,7 @@ - $(DEL) *.log *.cp *.fn *.ky *.pg *.vr *.tp clean: mostlyclean - - $(DEL) *.dvi $(infodir)/eintr* + - $(DEL) *.dvi $(infodir)/eintr$(INFO_EXT)* distclean: clean - $(DEL) makefile === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2012-05-04 05:14:14 +0000 +++ doc/lispref/ChangeLog 2012-05-04 06:45:03 +0000 @@ -1,3 +1,12 @@ +2012-05-04 Glenn Morris + + * Makefile.in (INFO_EXT, INFO_OPTS): New, set by configure. + (info, infoclean): Use $INFO_EXT. + ($(infodir)/elisp$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT. + * makefile.w32-in (INFO_EXT, INFO_OPTS): New. + (info, maintainer-clean): Use $INFO_EXT. + ($(infodir)/elisp$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT. + 2012-05-04 Chong Yidong * os.texi (Timers): Use defopt for timer-max-repeats. === modified file 'doc/lispref/Makefile.in' --- doc/lispref/Makefile.in 2012-04-26 01:08:03 +0000 +++ doc/lispref/Makefile.in 2012-05-04 06:45:03 +0000 @@ -30,6 +30,10 @@ # Directory with emacsver.texi. emacsdir = $(srcdir)/../emacs +INFO_EXT=@INFO_EXT@ +# Options used only when making info output. +INFO_OPTS=@INFO_OPTS@ + MAKEINFO = @MAKEINFO@ MAKEINFO_OPTS = --force --enable-encoding -I $(emacsdir) -I $(srcdir) TEXI2DVI = texi2dvi @@ -99,16 +103,16 @@ .PHONY: info dvi pdf ps -info: $(infodir)/elisp +info: $(infodir)/elisp$(INFO_EXT) dvi: elisp.dvi html: elisp.html pdf: elisp.pdf ps: elisp.ps ## Note: "<" is not portable in ordinary make rules. -$(infodir)/elisp: $(srcs) +$(infodir)/elisp$(INFO_EXT): $(srcs) $(mkinfodir) - $(MAKEINFO) $(MAKEINFO_OPTS) -o $@ $(srcdir)/elisp.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ $(srcdir)/elisp.texi elisp.dvi: $(srcs) $(ENVADD) $(TEXI2DVI) $(srcdir)/elisp.texi @@ -138,7 +142,7 @@ distclean: clean infoclean: - -cd $(infodir) && rm -f elisp elisp-[1-9] elisp-[1-9][0-9] + -cd $(infodir) && rm -f elisp$(INFO_EXT) elisp$(INFO_EXT)-[1-9] elisp$(INFO_EXT)-[1-9][0-9] maintainer-clean: distclean infoclean === modified file 'doc/lispref/makefile.w32-in' --- doc/lispref/makefile.w32-in 2012-04-26 01:08:03 +0000 +++ doc/lispref/makefile.w32-in 2012-05-04 06:45:03 +0000 @@ -28,6 +28,9 @@ # Directory with the (customized) texinfo.tex file. texinfodir = $(srcdir)/../misc +INFO_EXT=.info +INFO_OPTS=--no-split + # Redefine `TEX' if `tex' does not invoke plain TeX. For example: # TEX=platex TEX=tex @@ -102,13 +105,13 @@ # The info file is named `elisp'. -info: $(infodir)/elisp +info: $(infodir)/elisp$(INFO_EXT) $(infodir)/dir: $(INSTALL_INFO) --info-dir=$(infodir) $(infodir)/elisp -$(infodir)/elisp: $(srcs) - $(MAKEINFO) $(MAKEINFO_OPTS) -o $(infodir)/elisp $(srcdir)/elisp.texi +$(infodir)/elisp$(INFO_EXT): $(srcs) + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ $(srcdir)/elisp.texi elisp.dvi: $(srcs) $(texinputdir) $(TEX) $(srcdir)/elisp.texi @@ -123,4 +126,4 @@ - $(DEL) makefile maintainer-clean: distclean - - $(DEL) elisp elisp-? elisp-?? elisp.dvi elisp.oaux + - $(DEL) elisp$(INFO_EXT) elisp$(INFO_EXT)-? elisp$(INFO_EXT)-?? elisp.dvi elisp.oaux === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2012-05-02 07:45:16 +0000 +++ doc/misc/ChangeLog 2012-05-04 06:45:03 +0000 @@ -1,3 +1,12 @@ +2012-05-04 Glenn Morris + + * Makefile.in (INFO_EXT, INFO_OPTS): New, set by configure. + (INFO_TARGETS): Use $INFO_EXT. + Make all rules generating info files use $INFO_EXT, $INFO_OPT, and -o. + * makefile.w32-in (INFO_EXT, INFO_OPTS): New. + (INFO_TARGETS): Use $INFO_EXT. + Make all rules generating info files use $INFO_EXT, $INFO_OPT, and -o. + 2012-05-02 Glenn Morris * Makefile.in (echo-info): New phony target, used by top-level. === modified file 'doc/misc/Makefile.in' --- doc/misc/Makefile.in 2012-05-02 07:45:16 +0000 +++ doc/misc/Makefile.in 2012-05-04 06:45:03 +0000 @@ -38,62 +38,66 @@ ## Currently only used by efaq and calc. emacsdir = $(srcdir)/../emacs +INFO_EXT=@INFO_EXT@ +# Options used only when making info output. +INFO_OPTS=@INFO_OPTS@ + # The makeinfo program is part of the Texinfo distribution. # Use --force so that it generates output even if there are errors. MAKEINFO = @MAKEINFO@ MAKEINFO_OPTS = --force -I$(emacsdir) INFO_TARGETS = \ - $(infodir)/ada-mode \ - $(infodir)/auth \ - $(infodir)/autotype \ - $(infodir)/calc \ - $(infodir)/ccmode \ - $(infodir)/cl \ - $(infodir)/dbus \ - $(infodir)/dired-x \ - $(infodir)/ebrowse \ - $(infodir)/ede \ - $(infodir)/ediff \ - $(infodir)/edt \ - $(infodir)/eieio \ - $(infodir)/emacs-mime \ - $(infodir)/epa \ - $(infodir)/erc \ - $(infodir)/ert \ - $(infodir)/eshell \ - $(infodir)/eudc \ - $(infodir)/efaq \ - $(infodir)/flymake \ - $(infodir)/forms \ - $(infodir)/gnus \ - $(infodir)/emacs-gnutls \ - $(infodir)/idlwave \ - $(infodir)/info \ - $(infodir)/mairix-el \ - $(infodir)/message \ - $(infodir)/mh-e \ - $(infodir)/newsticker \ - $(infodir)/nxml-mode \ - $(infodir)/org \ - $(infodir)/pcl-cvs \ - $(infodir)/pgg \ - $(infodir)/rcirc \ - $(infodir)/remember \ - $(infodir)/reftex \ - $(infodir)/sasl \ - $(infodir)/sc \ - $(infodir)/semantic \ - $(infodir)/ses \ - $(infodir)/sieve \ - $(infodir)/smtpmail \ - $(infodir)/speedbar \ - $(infodir)/tramp \ - $(infodir)/url \ - $(infodir)/vip \ - $(infodir)/viper \ - $(infodir)/widget \ - $(infodir)/woman + $(infodir)/ada-mode$(INFO_EXT) \ + $(infodir)/auth$(INFO_EXT) \ + $(infodir)/autotype$(INFO_EXT) \ + $(infodir)/calc$(INFO_EXT) \ + $(infodir)/ccmode$(INFO_EXT) \ + $(infodir)/cl$(INFO_EXT) \ + $(infodir)/dbus$(INFO_EXT) \ + $(infodir)/dired-x$(INFO_EXT) \ + $(infodir)/ebrowse$(INFO_EXT) \ + $(infodir)/ede$(INFO_EXT) \ + $(infodir)/ediff$(INFO_EXT) \ + $(infodir)/edt$(INFO_EXT) \ + $(infodir)/eieio$(INFO_EXT) \ + $(infodir)/emacs-mime$(INFO_EXT) \ + $(infodir)/epa$(INFO_EXT) \ + $(infodir)/erc$(INFO_EXT) \ + $(infodir)/ert$(INFO_EXT) \ + $(infodir)/eshell$(INFO_EXT) \ + $(infodir)/eudc$(INFO_EXT) \ + $(infodir)/efaq$(INFO_EXT) \ + $(infodir)/flymake$(INFO_EXT) \ + $(infodir)/forms$(INFO_EXT) \ + $(infodir)/gnus$(INFO_EXT) \ + $(infodir)/emacs-gnutls$(INFO_EXT) \ + $(infodir)/idlwave$(INFO_EXT) \ + $(infodir)/info$(INFO_EXT) \ + $(infodir)/mairix-el$(INFO_EXT) \ + $(infodir)/message$(INFO_EXT) \ + $(infodir)/mh-e$(INFO_EXT) \ + $(infodir)/newsticker$(INFO_EXT) \ + $(infodir)/nxml-mode$(INFO_EXT) \ + $(infodir)/org$(INFO_EXT) \ + $(infodir)/pcl-cvs$(INFO_EXT) \ + $(infodir)/pgg$(INFO_EXT) \ + $(infodir)/rcirc$(INFO_EXT) \ + $(infodir)/remember$(INFO_EXT) \ + $(infodir)/reftex$(INFO_EXT) \ + $(infodir)/sasl$(INFO_EXT) \ + $(infodir)/sc$(INFO_EXT) \ + $(infodir)/semantic$(INFO_EXT) \ + $(infodir)/ses$(INFO_EXT) \ + $(infodir)/sieve$(INFO_EXT) \ + $(infodir)/smtpmail$(INFO_EXT) \ + $(infodir)/speedbar$(INFO_EXT) \ + $(infodir)/tramp$(INFO_EXT) \ + $(infodir)/url$(INFO_EXT) \ + $(infodir)/vip$(INFO_EXT) \ + $(infodir)/viper$(INFO_EXT) \ + $(infodir)/widget$(INFO_EXT) \ + $(infodir)/woman$(INFO_EXT) DVI_TARGETS = \ ada-mode.dvi \ @@ -233,190 +237,211 @@ # Note: "<" is not portable in ordinary make rules. ## "short" target names for convenience, to just rebuild one manual. -ada-mode : $(infodir)/ada-mode -$(infodir)/ada-mode: ada-mode.texi +ada-mode : $(infodir)/ada-mode$(INFO_EXT) +$(infodir)/ada-mode$(INFO_EXT): ada-mode.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) ada-mode.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ada-mode.texi ada-mode.dvi: ${srcdir}/ada-mode.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/ada-mode.texi ada-mode.pdf: ${srcdir}/ada-mode.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/ada-mode.texi -auth : $(infodir)/auth -$(infodir)/auth: auth.texi +auth : $(infodir)/auth$(INFO_EXT) +$(infodir)/auth$(INFO_EXT): auth.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) auth.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ auth.texi auth.dvi: ${srcdir}/auth.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/auth.texi auth.pdf: ${srcdir}/auth.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/auth.texi -autotype : $(infodir)/autotype -$(infodir)/autotype: autotype.texi +autotype : $(infodir)/autotype$(INFO_EXT) +$(infodir)/autotype$(INFO_EXT): autotype.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) autotype.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ autotype.texi autotype.dvi: ${srcdir}/autotype.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/autotype.texi autotype.pdf: ${srcdir}/autotype.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/autotype.texi -calc : $(infodir)/calc -$(infodir)/calc: calc.texi $(emacsdir)/emacsver.texi +calc : $(infodir)/calc$(INFO_EXT) +$(infodir)/calc$(INFO_EXT): calc.texi $(emacsdir)/emacsver.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) calc.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ calc.texi calc.dvi: ${srcdir}/calc.texi $(emacsdir)/emacsver.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/calc.texi calc.pdf: ${srcdir}/calc.texi $(emacsdir)/emacsver.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/calc.texi -ccmode : $(infodir)/ccmode -$(infodir)/ccmode: cc-mode.texi +ccmode : $(infodir)/ccmode$(INFO_EXT) +$(infodir)/ccmode$(INFO_EXT): cc-mode.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) cc-mode.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ cc-mode.texi cc-mode.dvi: ${srcdir}/cc-mode.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/cc-mode.texi cc-mode.pdf: ${srcdir}/cc-mode.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/cc-mode.texi -cl : $(infodir)/cl -$(infodir)/cl: cl.texi +cl : $(infodir)/cl$(INFO_EXT) +$(infodir)/cl$(INFO_EXT): cl.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) cl.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ cl.texi cl.dvi: ${srcdir}/cl.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/cl.texi cl.pdf: ${srcdir}/cl.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/cl.texi -dbus : $(infodir)/dbus -$(infodir)/dbus: dbus.texi +dbus : $(infodir)/dbus$(INFO_EXT) +$(infodir)/dbus$(INFO_EXT): dbus.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) dbus.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ dbus.texi dbus.dvi: ${srcdir}/dbus.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/dbus.texi dbus.pdf: ${srcdir}/dbus.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/dbus.texi -dired-x : $(infodir)/dired-x -$(infodir)/dired-x: dired-x.texi $(emacsdir)/emacsver.texi +dired-x : $(infodir)/dired-x$(INFO_EXT) +$(infodir)/dired-x$(INFO_EXT): dired-x.texi $(emacsdir)/emacsver.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) dired-x.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ dired-x.texi dired-x.dvi: ${srcdir}/dired-x.texi $(emacsdir)/emacsver.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/dired-x.texi dired-x.pdf: ${srcdir}/dired-x.texi $(emacsdir)/emacsver.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/dired-x.texi -ebrowse : $(infodir)/ebrowse -$(infodir)/ebrowse: ebrowse.texi +ebrowse : $(infodir)/ebrowse$(INFO_EXT) +$(infodir)/ebrowse$(INFO_EXT): ebrowse.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) ebrowse.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ebrowse.texi ebrowse.dvi: ${srcdir}/ebrowse.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/ebrowse.texi ebrowse.pdf: ${srcdir}/ebrowse.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/ebrowse.texi -ede : $(infodir)/ede -$(infodir)/ede: ede.texi +ede : $(infodir)/ede$(INFO_EXT) +$(infodir)/ede$(INFO_EXT): ede.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) ede.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ede.texi ede.dvi: ${srcdir}/ede.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/ede.texi ede.pdf: ${srcdir}/ede.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/ede.texi -ediff : $(infodir)/ediff -$(infodir)/ediff: ediff.texi +ediff : $(infodir)/ediff$(INFO_EXT) +$(infodir)/ediff$(INFO_EXT): ediff.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) ediff.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ediff.texi ediff.dvi: ${srcdir}/ediff.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/ediff.texi ediff.pdf: ${srcdir}/ediff.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/ediff.texi -edt : $(infodir)/edt -$(infodir)/edt: edt.texi +edt : $(infodir)/edt$(INFO_EXT) +$(infodir)/edt$(INFO_EXT): edt.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) edt.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ edt.texi edt.dvi: ${srcdir}/edt.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/edt.texi edt.pdf: ${srcdir}/edt.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/edt.texi -eieio : $(infodir)/eieio -$(infodir)/eieio: eieio.texi +eieio : $(infodir)/eieio$(INFO_EXT) +$(infodir)/eieio$(INFO_EXT): eieio.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) eieio.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ eieio.texi eieio.dvi: ${srcdir}/eieio.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/eieio.texi eieio.pdf: ${srcdir}/eieio.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/eieio.texi -emacs-gnutls : $(infodir)/emacs-gnutls -$(infodir)/emacs-gnutls: emacs-gnutls.texi +emacs-gnutls : $(infodir)/emacs-gnutls$(INFO_EXT) +$(infodir)/emacs-gnutls$(INFO_EXT): emacs-gnutls.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) emacs-gnutls.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ emacs-gnutls.texi emacs-gnutls.dvi: ${srcdir}/emacs-gnutls.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-gnutls.texi emacs-gnutls.pdf: ${srcdir}/emacs-gnutls.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-gnutls.texi -emacs-mime : $(infodir)/emacs-mime -$(infodir)/emacs-mime: emacs-mime.texi +emacs-mime : $(infodir)/emacs-mime$(INFO_EXT) +$(infodir)/emacs-mime$(INFO_EXT): emacs-mime.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) --enable-encoding emacs-mime.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) --enable-encoding -o $@ emacs-mime.texi emacs-mime.dvi: ${srcdir}/emacs-mime.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-mime.texi emacs-mime.pdf: ${srcdir}/emacs-mime.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-mime.texi -epa : $(infodir)/epa -$(infodir)/epa: epa.texi +epa : $(infodir)/epa$(INFO_EXT) +$(infodir)/epa$(INFO_EXT): epa.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) epa.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ epa.texi epa.dvi: ${srcdir}/epa.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/epa.texi epa.pdf: ${srcdir}/epa.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/epa.texi -erc : $(infodir)/erc -$(infodir)/erc: erc.texi +erc : $(infodir)/erc$(INFO_EXT) +$(infodir)/erc$(INFO_EXT): erc.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) erc.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ erc.texi erc.dvi: ${srcdir}/erc.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/erc.texi erc.pdf: ${srcdir}/erc.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/erc.texi -ert : $(infodir)/ert -$(infodir)/ert: ert.texi +ert : $(infodir)/ert$(INFO_EXT) +$(infodir)/ert$(INFO_EXT): ert.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) ert.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ert.texi ert.dvi: ${srcdir}/ert.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/ert.texi ert.pdf: ${srcdir}/ert.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/ert.texi -eshell : $(infodir)/eshell -$(infodir)/eshell: eshell.texi +eshell : $(infodir)/eshell$(INFO_EXT) +$(infodir)/eshell$(INFO_EXT): eshell.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) eshell.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ eshell.texi eshell.dvi: ${srcdir}/eshell.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/eshell.texi eshell.pdf: ${srcdir}/eshell.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/eshell.texi -eudc : $(infodir)/eudc -$(infodir)/eudc: eudc.texi +eudc : $(infodir)/eudc$(INFO_EXT) +$(infodir)/eudc$(INFO_EXT): eudc.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) eudc.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ eudc.texi eudc.dvi: ${srcdir}/eudc.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/eudc.texi eudc.pdf: ${srcdir}/eudc.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/eudc.texi -efaq : $(infodir)/efaq -$(infodir)/efaq: faq.texi $(emacsdir)/emacsver.texi +efaq : $(infodir)/efaq$(INFO_EXT) +$(infodir)/efaq$(INFO_EXT): faq.texi $(emacsdir)/emacsver.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) faq.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ faq.texi faq.dvi: ${srcdir}/faq.texi $(emacsdir)/emacsver.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/faq.texi faq.pdf: ${srcdir}/faq.texi $(emacsdir)/emacsver.texi @@ -431,29 +456,32 @@ emacs-faq.text: ${srcdir}/faq.texi $(emacsdir)/emacsver.texi $(MAKEINFO) $(MAKEINFO_OPTS) --plaintext -o $@ ${srcdir}/faq.texi -flymake : $(infodir)/flymake -$(infodir)/flymake: flymake.texi +flymake : $(infodir)/flymake$(INFO_EXT) +$(infodir)/flymake$(INFO_EXT): flymake.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) flymake.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ flymake.texi flymake.dvi: ${srcdir}/flymake.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/flymake.texi flymake.pdf: ${srcdir}/flymake.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/flymake.texi -forms : $(infodir)/forms -$(infodir)/forms: forms.texi +forms : $(infodir)/forms$(INFO_EXT) +$(infodir)/forms$(INFO_EXT): forms.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) forms.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ forms.texi forms.dvi: ${srcdir}/forms.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/forms.texi forms.pdf: ${srcdir}/forms.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/forms.texi # gnus/message/emacs-mime/sieve/pgg are part of Gnus: -gnus : $(infodir)/gnus -$(infodir)/gnus: gnus.texi gnus-faq.texi +gnus : $(infodir)/gnus$(INFO_EXT) +$(infodir)/gnus$(INFO_EXT): gnus.texi gnus-faq.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) gnus.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ gnus.texi gnus.dvi: ${srcdir}/gnus.texi gnus-faq.texi sed -e '/@iflatex/,/@end iflatex/d' ${srcdir}/gnus.texi > gnustmp.texi $(ENVADD) $(TEXI2DVI) gnustmp.texi @@ -465,240 +493,263 @@ cp gnustmp.pdf $@ rm gnustmp.* -# This is produced with --no-split to avoid making files whose -# names clash on DOS 8+3 filesystems -idlwave : $(infodir)/idlwave -$(infodir)/idlwave: idlwave.texi +# NB this one needs --no-split even without a .info extension. +idlwave : $(infodir)/idlwave$(INFO_EXT) +$(infodir)/idlwave$(INFO_EXT): idlwave.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) --no-split idlwave.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ idlwave.texi idlwave.dvi: ${srcdir}/idlwave.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/idlwave.texi idlwave.pdf: ${srcdir}/idlwave.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/idlwave.texi -# The following target uses an explicit -o switch to work around -# the @setfilename directive in info.texi, which is required for -# the Texinfo distribution. -###info : $(infodir)/info # circular! -$(infodir)/info: info.texi +# NB this one needs --no-split even without a .info extension. +info : $(infodir)/info$(INFO_EXT) +$(infodir)/info$(INFO_EXT): info.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) --no-split -o $@ info.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ info.texi info.dvi: ${srcdir}/info.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/info.texi info.pdf: ${srcdir}/info.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/info.texi -mairix-el : $(infodir)/mairix-el -$(infodir)/mairix-el: mairix-el.texi +mairix-el : $(infodir)/mairix-el$(INFO_EXT) +$(infodir)/mairix-el$(INFO_EXT): mairix-el.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) mairix-el.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ mairix-el.texi mairix-el.dvi: ${srcdir}/mairix-el.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/mairix-el.texi mairix-el.pdf: ${srcdir}/mairix-el.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/mairix-el.texi -message : $(infodir)/message -$(infodir)/message: message.texi +message : $(infodir)/message$(INFO_EXT) +$(infodir)/message$(INFO_EXT): message.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) message.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ message.texi message.dvi: ${srcdir}/message.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/message.texi message.pdf: ${srcdir}/message.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/message.texi -mh-e : $(infodir)/mh-e -$(infodir)/mh-e: mh-e.texi +mh-e : $(infodir)/mh-e$(INFO_EXT) +$(infodir)/mh-e$(INFO_EXT): mh-e.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) mh-e.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ mh-e.texi mh-e.dvi: ${srcdir}/mh-e.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/mh-e.texi mh-e.pdf: ${srcdir}/mh-e.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/mh-e.texi -newsticker : $(infodir)/newsticker -$(infodir)/newsticker: newsticker.texi +newsticker : $(infodir)/newsticker$(INFO_EXT) +$(infodir)/newsticker$(INFO_EXT): newsticker.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) newsticker.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ newsticker.texi newsticker.dvi: ${srcdir}/newsticker.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/newsticker.texi newsticker.pdf: ${srcdir}/newsticker.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/newsticker.texi -nxml-mode : $(infodir)/nxml-mode -$(infodir)/nxml-mode: nxml-mode.texi +nxml-mode : $(infodir)/nxml-mode$(INFO_EXT) +$(infodir)/nxml-mode$(INFO_EXT): nxml-mode.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) nxml-mode.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ nxml-mode.texi nxml-mode.dvi: ${srcdir}/nxml-mode.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/nxml-mode.texi nxml-mode.pdf: ${srcdir}/nxml-mode.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/nxml-mode.texi -org : $(infodir)/org -$(infodir)/org: org.texi +org : $(infodir)/org$(INFO_EXT) +$(infodir)/org$(INFO_EXT): org.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) org.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ org.texi org.dvi: ${srcdir}/org.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/org.texi org.pdf: ${srcdir}/org.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/org.texi -pcl-cvs : $(infodir)/pcl-cvs -$(infodir)/pcl-cvs: pcl-cvs.texi +pcl-cvs : $(infodir)/pcl-cvs$(INFO_EXT) +$(infodir)/pcl-cvs$(INFO_EXT): pcl-cvs.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) pcl-cvs.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ pcl-cvs.texi pcl-cvs.dvi: ${srcdir}/pcl-cvs.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/pcl-cvs.texi pcl-cvs.pdf: ${srcdir}/pcl-cvs.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/pcl-cvs.texi -pgg : $(infodir)/pgg -$(infodir)/pgg: pgg.texi +pgg : $(infodir)/pgg$(INFO_EXT) +$(infodir)/pgg$(INFO_EXT): pgg.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) pgg.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ pgg.texi pgg.dvi: ${srcdir}/pgg.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/pgg.texi pgg.pdf: ${srcdir}/pgg.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/pgg.texi -rcirc : $(infodir)/rcirc -$(infodir)/rcirc: rcirc.texi +rcirc : $(infodir)/rcirc$(INFO_EXT) +$(infodir)/rcirc$(INFO_EXT): rcirc.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) rcirc.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ rcirc.texi rcirc.dvi: ${srcdir}/rcirc.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/rcirc.texi rcirc.pdf: ${srcdir}/rcirc.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/rcirc.texi -reftex : $(infodir)/reftex -$(infodir)/reftex: reftex.texi +reftex : $(infodir)/reftex$(INFO_EXT) +$(infodir)/reftex$(INFO_EXT): reftex.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) reftex.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ reftex.texi reftex.dvi: ${srcdir}/reftex.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/reftex.texi reftex.pdf: ${srcdir}/reftex.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/reftex.texi -remember : $(infodir)/remember -$(infodir)/remember: remember.texi +remember : $(infodir)/remember$(INFO_EXT) +$(infodir)/remember$(INFO_EXT): remember.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) remember.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ remember.texi remember.dvi: ${srcdir}/remember.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/remember.texi remember.pdf: ${srcdir}/remember.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/remember.texi -sasl : $(infodir)/sasl -$(infodir)/sasl: sasl.texi +sasl : $(infodir)/sasl$(INFO_EXT) +$(infodir)/sasl$(INFO_EXT): sasl.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) sasl.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ sasl.texi sasl.dvi: ${srcdir}/sasl.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/sasl.texi sasl.pdf: ${srcdir}/sasl.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/sasl.texi -sc : $(infodir)/sc -$(infodir)/sc: sc.texi +sc : $(infodir)/sc$(INFO_EXT) +$(infodir)/sc$(INFO_EXT): sc.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) sc.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ sc.texi sc.dvi: ${srcdir}/sc.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/sc.texi sc.pdf: ${srcdir}/sc.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/sc.texi -semantic : $(infodir)/semantic -$(infodir)/semantic: semantic.texi sem-user.texi +semantic : $(infodir)/semantic$(INFO_EXT) +$(infodir)/semantic$(INFO_EXT): semantic.texi sem-user.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) semantic.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ semantic.texi semantic.dvi: ${srcdir}/semantic.texi sem-user.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/semantic.texi semantic.pdf: ${srcdir}/semantic.texi sem-user.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/semantic.texi -ses : $(infodir)/ses -$(infodir)/ses: ses.texi +ses : $(infodir)/ses$(INFO_EXT) +$(infodir)/ses$(INFO_EXT): ses.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) ses.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ses.texi ses.dvi: ${srcdir}/ses.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/ses.texi ses.pdf: ${srcdir}/ses.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/ses.texi -sieve : $(infodir)/sieve -$(infodir)/sieve: sieve.texi +sieve : $(infodir)/sieve$(INFO_EXT) +$(infodir)/sieve$(INFO_EXT): sieve.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) sieve.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ sieve.texi sieve.dvi: ${srcdir}/sieve.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/sieve.texi sieve.pdf: ${srcdir}/sieve.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/sieve.texi -smtpmail : $(infodir)/smtpmail -$(infodir)/smtpmail: smtpmail.texi +smtpmail : $(infodir)/smtpmail$(INFO_EXT) +$(infodir)/smtpmail$(INFO_EXT): smtpmail.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) smtpmail.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ smtpmail.texi smtpmail.dvi: ${srcdir}/smtpmail.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/smtpmail.texi smtpmail.pdf: ${srcdir}/smtpmail.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/smtpmail.texi -speedbar : $(infodir)/speedbar -$(infodir)/speedbar: speedbar.texi +speedbar : $(infodir)/speedbar$(INFO_EXT) +$(infodir)/speedbar$(INFO_EXT): speedbar.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) speedbar.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ speedbar.texi speedbar.dvi: ${srcdir}/speedbar.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/speedbar.texi speedbar.pdf: ${srcdir}/speedbar.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/speedbar.texi -tramp : $(infodir)/tramp -$(infodir)/tramp: tramp.texi trampver.texi +tramp : $(infodir)/tramp$(INFO_EXT) +$(infodir)/tramp$(INFO_EXT): tramp.texi trampver.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) -D emacs tramp.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ -D emacs tramp.texi tramp.dvi: ${srcdir}/tramp.texi trampver.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/tramp.texi tramp.pdf: ${srcdir}/tramp.texi trampver.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/tramp.texi -url : $(infodir)/url -$(infodir)/url: url.texi +url : $(infodir)/url$(INFO_EXT) +$(infodir)/url$(INFO_EXT): url.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) url.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ url.texi url.dvi: ${srcdir}/url.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/url.texi url.pdf: ${srcdir}/url.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/url.texi -vip : $(infodir)/vip -$(infodir)/vip: vip.texi +vip : $(infodir)/vip$(INFO_EXT) +$(infodir)/vip$(INFO_EXT): vip.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) vip.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ vip.texi vip.dvi: ${srcdir}/vip.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/vip.texi vip.pdf: ${srcdir}/vip.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/vip.texi -viper : $(infodir)/viper -$(infodir)/viper: viper.texi +viper : $(infodir)/viper$(INFO_EXT) +$(infodir)/viper$(INFO_EXT): viper.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) viper.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ viper.texi viper.dvi: ${srcdir}/viper.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/viper.texi viper.pdf: ${srcdir}/viper.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/viper.texi -widget : $(infodir)/widget -$(infodir)/widget: widget.texi +widget : $(infodir)/widget$(INFO_EXT) +$(infodir)/widget$(INFO_EXT): widget.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) widget.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ widget.texi widget.dvi: ${srcdir}/widget.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/widget.texi widget.pdf: ${srcdir}/widget.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/widget.texi -woman : $(infodir)/woman -$(infodir)/woman: woman.texi +woman : $(infodir)/woman$(INFO_EXT) +$(infodir)/woman$(INFO_EXT): woman.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) woman.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ woman.texi woman.dvi: ${srcdir}/woman.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/woman.texi woman.pdf: ${srcdir}/woman.texi === modified file 'doc/misc/makefile.w32-in' --- doc/misc/makefile.w32-in 2012-04-14 01:46:06 +0000 +++ doc/misc/makefile.w32-in 2012-05-04 06:45:03 +0000 @@ -1,6 +1,6 @@ #### -*- Makefile -*- for documentation other than the Emacs manual. -# Copyright (C) 2003-2012 Free Software Foundation, Inc. +# Copyright (C) 2003-2012 Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -30,28 +30,31 @@ ## Currently only used by efaq; could be added to MAKEINFO. emacsdir = $(srcdir)/../emacs +INFO_EXT=.info +INFO_OPTS=--no-split + # The makeinfo program is part of the Texinfo distribution. MAKEINFO = makeinfo MAKEINFO_OPTS = --force -I$(emacsdir) MULTI_INSTALL_INFO = $(srcdir)\..\..\nt\multi-install-info.bat -INFO_TARGETS = $(infodir)/ccmode \ - $(infodir)/cl $(infodir)/dbus $(infodir)/dired-x \ - $(infodir)/ediff $(infodir)/forms $(infodir)/gnus \ - $(infodir)/message $(infodir)/sieve $(infodir)/pgg \ - $(infodir)/emacs-mime $(infodir)/info $(infodir)/mh-e \ - $(infodir)/reftex $(infodir)/sc $(infodir)/vip \ - $(infodir)/viper $(infodir)/widget $(infodir)/efaq \ - $(infodir)/ada-mode $(infodir)/autotype $(infodir)/calc \ - $(infodir)/idlwave $(infodir)/eudc $(infodir)/ebrowse \ - $(infodir)/pcl-cvs $(infodir)/woman $(infodir)/eshell \ - $(infodir)/org $(infodir)/url $(infodir)/speedbar \ - $(infodir)/tramp $(infodir)/ses $(infodir)/smtpmail \ - $(infodir)/flymake $(infodir)/newsticker $(infodir)/rcirc \ - $(infodir)/erc $(infodir)/ert \ - $(infodir)/remember $(infodir)/nxml-mode \ - $(infodir)/epa $(infodir)/mairix-el $(infodir)/sasl \ - $(infodir)/auth $(infodir)/eieio $(infodir)/ede \ - $(infodir)/semantic $(infodir)/edt $(infodir)/emacs-gnutls +INFO_TARGETS = $(infodir)/ccmode$(INFO_EXT) \ + $(infodir)/cl$(INFO_EXT) $(infodir)/dbus$(INFO_EXT) $(infodir)/dired-x$(INFO_EXT) \ + $(infodir)/ediff$(INFO_EXT) $(infodir)/forms$(INFO_EXT) $(infodir)/gnus$(INFO_EXT) \ + $(infodir)/message$(INFO_EXT) $(infodir)/sieve$(INFO_EXT) $(infodir)/pgg$(INFO_EXT) \ + $(infodir)/emacs-mime$(INFO_EXT) $(infodir)/info$(INFO_EXT) $(infodir)/mh-e$(INFO_EXT) \ + $(infodir)/reftex$(INFO_EXT) $(infodir)/sc$(INFO_EXT) $(infodir)/vip$(INFO_EXT) \ + $(infodir)/viper$(INFO_EXT) $(infodir)/widget$(INFO_EXT) $(infodir)/efaq$(INFO_EXT) \ + $(infodir)/ada-mode$(INFO_EXT) $(infodir)/autotype$(INFO_EXT) $(infodir)/calc$(INFO_EXT) \ + $(infodir)/idlwave$(INFO_EXT) $(infodir)/eudc$(INFO_EXT) $(infodir)/ebrowse$(INFO_EXT) \ + $(infodir)/pcl-cvs$(INFO_EXT) $(infodir)/woman$(INFO_EXT) $(infodir)/eshell$(INFO_EXT) \ + $(infodir)/org$(INFO_EXT) $(infodir)/url$(INFO_EXT) $(infodir)/speedbar$(INFO_EXT) \ + $(infodir)/tramp$(INFO_EXT) $(infodir)/ses$(INFO_EXT) $(infodir)/smtpmail$(INFO_EXT) \ + $(infodir)/flymake$(INFO_EXT) $(infodir)/newsticker$(INFO_EXT) $(infodir)/rcirc$(INFO_EXT) \ + $(infodir)/erc$(INFO_EXT) $(infodir)/ert$(INFO_EXT) \ + $(infodir)/remember$(INFO_EXT) $(infodir)/nxml-mode$(INFO_EXT) \ + $(infodir)/epa$(INFO_EXT) $(infodir)/mairix-el$(INFO_EXT) $(infodir)/sasl$(INFO_EXT) \ + $(infodir)/auth$(INFO_EXT) $(infodir)/eieio$(INFO_EXT) $(infodir)/ede$(INFO_EXT) \ + $(infodir)/semantic$(INFO_EXT) $(infodir)/edt$(INFO_EXT) $(infodir)/emacs-gnutls$(INFO_EXT) DVI_TARGETS = calc.dvi cc-mode.dvi cl.dvi dbus.dvi dired-x.dvi \ ediff.dvi forms.dvi gnus.dvi message.dvi emacs-mime.dvi \ sieve.dvi pgg.dvi mh-e.dvi \ @@ -93,68 +96,68 @@ # Some Windows ports of makeinfo seem to require -o to come before the # texi filename, contrary to GNU standards. -$(infodir)/info: $(INFOSOURCES) - $(MAKEINFO) $(MAKEINFO_OPTS) --no-split -o $@ info.texi +$(infodir)/info$(INFO_EXT): $(INFOSOURCES) + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ info.texi info.dvi: $(INFOSOURCES) $(ENVADD) $(TEXI2DVI) $(srcdir)/info.texi -$(infodir)/ccmode: cc-mode.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) cc-mode.texi +$(infodir)/ccmode$(INFO_EXT): cc-mode.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ cc-mode.texi cc-mode.dvi: cc-mode.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/cc-mode.texi -$(infodir)/ada-mode: ada-mode.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) ada-mode.texi +$(infodir)/ada-mode$(INFO_EXT): ada-mode.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ada-mode.texi ada-mode.dvi: ada-mode.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/ada-mode.texi -$(infodir)/pcl-cvs: pcl-cvs.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) pcl-cvs.texi +$(infodir)/pcl-cvs$(INFO_EXT): pcl-cvs.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ pcl-cvs.texi pcl-cvs.dvi: pcl-cvs.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/pcl-cvs.texi -$(infodir)/eshell: eshell.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) eshell.texi +$(infodir)/eshell$(INFO_EXT): eshell.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ eshell.texi eshell.dvi: eshell.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/eshell.texi -$(infodir)/cl: cl.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) cl.texi +$(infodir)/cl$(INFO_EXT): cl.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ cl.texi cl.dvi: cl.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/cl.texi -$(infodir)/dbus: dbus.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) dbus.texi +$(infodir)/dbus$(INFO_EXT): dbus.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ dbus.texi dbus.dvi: dbus.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/dbus.texi -$(infodir)/dired-x: dired-x.texi $(emacsdir)/emacsver.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) dired-x.texi +$(infodir)/dired-x$(INFO_EXT): dired-x.texi $(emacsdir)/emacsver.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ dired-x.texi dired-x.dvi: dired-x.texi $(emacsdir)/emacsver.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/dired-x.texi -$(infodir)/ediff: ediff.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) ediff.texi +$(infodir)/ediff$(INFO_EXT): ediff.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ediff.texi ediff.dvi: ediff.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/ediff.texi -$(infodir)/flymake: flymake.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) flymake.texi +$(infodir)/flymake$(INFO_EXT): flymake.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ flymake.texi flymake.dvi: flymake.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/flymake.texi -$(infodir)/forms: forms.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) forms.texi +$(infodir)/forms$(INFO_EXT): forms.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ forms.texi forms.dvi: forms.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/forms.texi # gnus/message/emacs-mime/sieve/pgg are part of Gnus: -$(infodir)/gnus: gnus.texi gnus-overrides.texi message.texi emacs-mime.texi \ +$(infodir)/gnus$(INFO_EXT): gnus.texi gnus-overrides.texi message.texi emacs-mime.texi \ sieve.texi pgg.texi sasl.texi gnus-news.texi gnus-faq.texi \ doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) gnus.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ gnus.texi gnus.dvi: gnus.texi gnus-overrides.texi message.texi emacs-mime.texi \ sieve.texi pgg.texi sasl.texi gnus-news.texi gnus-faq.texi \ doclicense.texi @@ -163,195 +166,195 @@ cp gnustmp.dvi $*.dvi rm gnustmp.* # -$(infodir)/message: message.texi gnus-overrides.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) message.texi +$(infodir)/message$(INFO_EXT): message.texi gnus-overrides.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ message.texi message.dvi: message.texi gnus-overrides.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/message.texi # -$(infodir)/emacs-mime: emacs-mime.texi gnus-overrides.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) --enable-encoding emacs-mime.texi +$(infodir)/emacs-mime$(INFO_EXT): emacs-mime.texi gnus-overrides.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ --enable-encoding emacs-mime.texi emacs-mime.dvi: emacs-mime.texi gnus-overrides.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/emacs-mime.texi # -$(infodir)/sieve: sieve.texi gnus-overrides.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) sieve.texi +$(infodir)/sieve$(INFO_EXT): sieve.texi gnus-overrides.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ sieve.texi sieve.dvi: sieve.texi gnus-overrides.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/sieve.texi # -$(infodir)/pgg: pgg.texi gnus-overrides.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) pgg.texi +$(infodir)/pgg$(INFO_EXT): pgg.texi gnus-overrides.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ pgg.texi pgg.dvi: pgg.texi gnus-overrides.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/pgg.texi -$(infodir)/mh-e: mh-e.texi doclicense.texi gpl.texi - $(MAKEINFO) $(MAKEINFO_OPTS) mh-e.texi +$(infodir)/mh-e$(INFO_EXT): mh-e.texi doclicense.texi gpl.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ mh-e.texi mh-e.dvi: mh-e.texi doclicense.texi gpl.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/mh-e.texi -$(infodir)/reftex: reftex.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) reftex.texi +$(infodir)/reftex$(INFO_EXT): reftex.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ reftex.texi reftex.dvi: reftex.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/reftex.texi -$(infodir)/remember: remember.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) remember.texi +$(infodir)/remember$(INFO_EXT): remember.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ remember.texi remember.dvi: remember.texi doclicense.texix $(ENVADD) $(TEXI2DVI) $(srcdir)/remember.texi -$(infodir)/sasl: sasl.texi gnus-overrides.texi - $(MAKEINFO) $(MAKEINFO_OPTS) sasl.texi +$(infodir)/sasl$(INFO_EXT): sasl.texi gnus-overrides.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ sasl.texi sasl.dvi: sasl.texi gnus-overrides.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/sasl.texi -$(infodir)/sc: sc.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) sc.texi +$(infodir)/sc$(INFO_EXT): sc.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ sc.texi sc.dvi: sc.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/sc.texi -$(infodir)/vip: vip.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) vip.texi +$(infodir)/vip$(INFO_EXT): vip.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ vip.texi vip.dvi: vip.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/vip.texi -$(infodir)/viper: viper.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) viper.texi +$(infodir)/viper$(INFO_EXT): viper.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ viper.texi viper.dvi: viper.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/viper.texi -$(infodir)/widget: widget.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) widget.texi +$(infodir)/widget$(INFO_EXT): widget.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ widget.texi widget.dvi: widget.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/widget.texi -$(infodir)/efaq: faq.texi $(emacsdir)/emacsver.texi - $(MAKEINFO) $(MAKEINFO_OPTS) faq.texi +$(infodir)/efaq$(INFO_EXT): faq.texi $(emacsdir)/emacsver.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ faq.texi faq.dvi: faq.texi $(emacsdir)/emacsver.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/faq.texi -$(infodir)/autotype: autotype.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) autotype.texi +$(infodir)/autotype$(INFO_EXT): autotype.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ autotype.texi autotype.dvi: autotype.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/autotype.texi -$(infodir)/calc: calc.texi $(emacsdir)/emacsver.texi gpl.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) calc.texi +$(infodir)/calc$(INFO_EXT): calc.texi $(emacsdir)/emacsver.texi gpl.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ calc.texi calc.dvi: calc.texi $(emacsdir)/emacsver.texi gpl.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/calc.texi # This is produced with --no-split to avoid making files whose # names clash on DOS 8+3 filesystems -$(infodir)/idlwave: idlwave.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) --no-split idlwave.texi +$(infodir)/idlwave$(INFO_EXT): idlwave.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ idlwave.texi idlwave.dvi: idlwave.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/idlwave.texi -$(infodir)/eudc: eudc.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) eudc.texi +$(infodir)/eudc$(INFO_EXT): eudc.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ eudc.texi eudc.dvi: eudc.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/eudc.texi -$(infodir)/ebrowse: ebrowse.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) ebrowse.texi +$(infodir)/ebrowse$(INFO_EXT): ebrowse.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ebrowse.texi ebrowse.dvi: ebrowse.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/ebrowse.texi -$(infodir)/woman: woman.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) woman.texi +$(infodir)/woman$(INFO_EXT): woman.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ woman.texi woman.dvi: woman.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/woman.texi -$(infodir)/speedbar: speedbar.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) speedbar.texi +$(infodir)/speedbar$(INFO_EXT): speedbar.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ speedbar.texi speedbar.dvi: speedbar.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/speedbar.texi -$(infodir)/tramp: tramp.texi trampver.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) tramp.texi +$(infodir)/tramp$(INFO_EXT): tramp.texi trampver.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ tramp.texi tramp.dvi: tramp.texi trampver.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/tramp.texi -$(infodir)/ses: ses.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) ses.texi +$(infodir)/ses$(INFO_EXT): ses.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ses.texi ses.dvi: ses.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/ses.texi -$(infodir)/smtpmail: smtpmail.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) smtpmail.texi +$(infodir)/smtpmail$(INFO_EXT): smtpmail.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ smtpmail.texi smtpmail.dvi: smtpmail.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/smtpmail.texi -$(infodir)/org: org.texi - $(MAKEINFO) $(MAKEINFO_OPTS) org.texi +$(infodir)/org$(INFO_EXT): org.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ org.texi org.dvi: org.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/org.texi -$(infodir)/url: url.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) url.texi +$(infodir)/url$(INFO_EXT): url.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ url.texi url.dvi: url.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/url.texi -$(infodir)/newsticker: newsticker.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) newsticker.texi +$(infodir)/newsticker$(INFO_EXT): newsticker.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ newsticker.texi newsticker.dvi: newsticker.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/newsticker.texi -$(infodir)/nxml-mode: nxml-mode.texi - $(MAKEINFO) $(MAKEINFO_OPTS) nxml-mode.texi +$(infodir)/nxml-mode$(INFO_EXT): nxml-mode.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ nxml-mode.texi nxml-mod.dvi: nxml-mode.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/nxml-mode.texi -$(infodir)/rcirc: rcirc.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) rcirc.texi +$(infodir)/rcirc$(INFO_EXT): rcirc.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ rcirc.texi rcirc.dvi: rcirc.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/rcirc.texi -$(infodir)/erc: erc.texi gpl.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) erc.texi +$(infodir)/erc$(INFO_EXT): erc.texi gpl.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ erc.texi erc.dvi: erc.texi gpl.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/erc.texi -$(infodir)/ert: ert.texi - $(MAKEINFO) $(MAKEINFO_OPTS) ert.texi +$(infodir)/ert$(INFO_EXT): ert.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ert.texi ert.dvi: ert.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/ert.texi -$(infodir)/epa: epa.texi - $(MAKEINFO) $(MAKEINFO_OPTS) epa.texi +$(infodir)/epa$(INFO_EXT): epa.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ epa.texi epa.dvi: epa.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/epa.texi -$(infodir)/mairix-el: mairix-el.texi - $(MAKEINFO) $(MAKEINFO_OPTS) mairix-el.texi +$(infodir)/mairix-el$(INFO_EXT): mairix-el.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ mairix-el.texi mairix-el.dvi: mairix-el.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/mairix-el.texi -$(infodir)/auth: auth.texi gnus-overrides.texi - $(MAKEINFO) $(MAKEINFO_OPTS) auth.texi +$(infodir)/auth$(INFO_EXT): auth.texi gnus-overrides.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ auth.texi auth.dvi: auth.texi gnus-overrides.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/auth.texi -$(infodir)/eieio: eieio.texi - $(MAKEINFO) $(MAKEINFO_OPTS) eieio.texi +$(infodir)/eieio$(INFO_EXT): eieio.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ eieio.texi eieio.dvi: eieio.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/eieio.texi -$(infodir)/ede: ede.texi - $(MAKEINFO) $(MAKEINFO_OPTS) ede.texi +$(infodir)/ede$(INFO_EXT): ede.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ede.texi ede.dvi: ede.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/ede.texi -$(infodir)/semantic: semantic.texi sem-user.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) semantic.texi +$(infodir)/semantic$(INFO_EXT): semantic.texi sem-user.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ semantic.texi semantic.dvi: semantic.texi sem-user.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/semantic.texi -$(infodir)/edt: edt.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) edt.texi +$(infodir)/edt$(INFO_EXT): edt.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ edt.texi edt.dvi: edt.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/edt.texi -$(infodir)/emacs-gnutls: emacs-gnutls.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) emacs-gnutls.texi +$(infodir)/emacs-gnutls$(INFO_EXT): emacs-gnutls.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ emacs-gnutls.texi emacs-gnutls.dvi: emacs-gnutls.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/emacs-gnutls.texi ------------------------------------------------------------ revno: 108120 committer: Glenn Morris branch nick: trunk timestamp: Thu 2012-05-03 23:38:36 -0700 message: * patcomp.el, play/bruce.el: Move to obsolete/. * etc/NEWS: Mention this. diff: === modified file 'etc/NEWS' --- etc/NEWS 2012-05-04 05:14:14 +0000 +++ etc/NEWS 2012-05-04 06:38:36 +0000 @@ -164,10 +164,14 @@ And in any case it's just a terrible package: ugly semantics, terrible inefficiency, and not namespace-clean. +*** bruce.el + *** mailpost.el *** mouse-sel.el +*** patcomp.el + * New Modes and Packages in Emacs 24.2 === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-05-04 06:13:18 +0000 +++ lisp/ChangeLog 2012-05-04 06:38:36 +0000 @@ -1,3 +1,7 @@ +2012-05-04 Glenn Morris + + * patcomp.el, play/bruce.el: Move to obsolete/. + 2012-05-04 Paul Eggert Fix minor Y10k bugs. === renamed file 'lisp/play/bruce.el' => 'lisp/obsolete/bruce.el' --- lisp/play/bruce.el 2012-01-19 07:21:25 +0000 +++ lisp/obsolete/bruce.el 2012-05-04 06:38:36 +0000 @@ -6,6 +6,7 @@ ;; Maintainer: FSF ;; Keywords: games ;; Created: Jan 1997 +;; Obsolete-since: 24.2 ;; This file is part of GNU Emacs. === renamed file 'lisp/patcomp.el' => 'lisp/obsolete/patcomp.el' --- lisp/patcomp.el 2011-01-15 23:16:57 +0000 +++ lisp/obsolete/patcomp.el 2012-05-04 06:38:36 +0000 @@ -2,6 +2,8 @@ ;; This file is part of GNU Emacs. +;; Obsolete-since: 24.2 + ;;; Commentary: ;;; Code: ------------------------------------------------------------ revno: 108119 committer: Paul Eggert branch nick: trunk timestamp: Thu 2012-05-03 23:13:18 -0700 message: Fix minor Y10k bugs. * lisp/arc-mode.el (archive-unixdate): * lisp/autoinsert.el (auto-insert-alist): * lisp/calc/calc-forms.el (math-this-year): * lisp/gnus/nnweb.el (nnweb-google-parse-1): * lisp/emacs-lisp/copyright.el (copyright-current-year) (copyright-update-year, copyright): * lisp/tar-mode.el (tar-clip-time-string): * lisp/time.el (display-time-update): Don't assume years have 4 digits. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-05-04 05:14:14 +0000 +++ lisp/ChangeLog 2012-05-04 06:13:18 +0000 @@ -1,3 +1,15 @@ +2012-05-04 Paul Eggert + + Fix minor Y10k bugs. + * arc-mode.el (archive-unixdate): + * autoinsert.el (auto-insert-alist): + * calc/calc-forms.el (math-this-year): + * emacs-lisp/copyright.el (copyright-current-year) + (copyright-update-year, copyright): + * tar-mode.el (tar-clip-time-string): + * time.el (display-time-update): + Don't assume years have 4 digits. + 2012-05-04 Chong Yidong * dos-w32.el (file-name-buffer-file-type-alist) === modified file 'lisp/arc-mode.el' --- lisp/arc-mode.el 2012-02-11 22:13:29 +0000 +++ lisp/arc-mode.el 2012-05-04 06:13:18 +0000 @@ -622,11 +622,12 @@ (defun archive-unixdate (low high) "Stringify Unix (LOW HIGH) date." - (let ((str (current-time-string (cons high low)))) + (let* ((time (cons high low)) + (str (current-time-string time))) (format "%s-%s-%s" (substring str 8 10) (substring str 4 7) - (substring str 20 24)))) + (format-time-string "%Y" time)))) (defun archive-unixtime (low high) "Stringify Unix (LOW HIGH) time." === modified file 'lisp/autoinsert.el' --- lisp/autoinsert.el 2012-01-19 07:21:25 +0000 +++ lisp/autoinsert.el 2012-05-04 06:13:18 +0000 @@ -135,7 +135,7 @@ (("\\.[1-9]\\'" . "Man page skeleton") "Short description: " - ".\\\" Copyright (C), " (substring (current-time-string) -4) " " + ".\\\" Copyright (C), " (format-time-string "%Y") " " (getenv "ORGANIZATION") | (progn user-full-name) " .\\\" You may distribute this file under the terms of the GNU Free @@ -166,7 +166,7 @@ "Short description: " ";;; " (file-name-nondirectory (buffer-file-name)) " --- " str " -;; Copyright (C) " (substring (current-time-string) -4) " " +;; Copyright (C) " (format-time-string "%Y") " " (getenv "ORGANIZATION") | (progn user-full-name) " ;; Author: " (user-full-name) @@ -222,7 +222,7 @@ @copying\n" (setq short-description (read-string "Short description: ")) ".\n\n" - "Copyright @copyright{} " (substring (current-time-string) -4) " " + "Copyright @copyright{} " (format-time-string "%Y") " " (getenv "ORGANIZATION") | (progn user-full-name) " @quotation === modified file 'lisp/calc/calc-forms.el' --- lisp/calc/calc-forms.el 2012-01-19 07:21:25 +0000 +++ lisp/calc/calc-forms.el 2012-05-04 06:13:18 +0000 @@ -444,7 +444,7 @@ (defun math-this-year () - (string-to-number (substring (current-time-string) -4))) + (nth 5 (decode-time))) (defun math-leap-year-p (year) (if (Math-lessp year 1752) === modified file 'lisp/emacs-lisp/copyright.el' --- lisp/emacs-lisp/copyright.el 2012-03-16 16:36:27 +0000 +++ lisp/emacs-lisp/copyright.el 2012-05-04 06:13:18 +0000 @@ -110,7 +110,7 @@ ;; This is a defvar rather than a defconst, because the year can ;; change during the Emacs session. -(defvar copyright-current-year (substring (current-time-string) -4) +(defvar copyright-current-year (format-time-string "%Y") "String representing the current year.") (defsubst copyright-limit () ; re-search-forward BOUND @@ -181,8 +181,7 @@ ;; This uses the match-data from copyright-find-copyright/end. (goto-char (match-end 1)) (copyright-find-end) - ;; Note that `current-time-string' isn't locale-sensitive. - (setq copyright-current-year (substring (current-time-string) -4)) + (setq copyright-current-year (format-time-string "%Y")) (unless (string= (buffer-substring (- (match-end 3) 2) (match-end 3)) (substring copyright-current-year -2)) (if (or noquery @@ -347,7 +346,7 @@ "Insert a copyright by $ORGANIZATION notice at cursor." "Company: " comment-start - "Copyright (C) " `(substring (current-time-string) -4) " by " + "Copyright (C) " `(format-time-string "%Y") " by " (or (getenv "ORGANIZATION") str) '(if (copyright-offset-too-large-p) === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2012-05-01 18:37:21 +0000 +++ lisp/gnus/ChangeLog 2012-05-04 06:13:18 +0000 @@ -1,3 +1,8 @@ +2012-05-04 Paul Eggert + + Fix minor Y10k bug. + * nnweb.el (nnweb-google-parse-1): Don't assume years have 4 digits. + 2012-05-01 Stefan Monnier * nnimap.el (nnimap-open-connection-1): Don't leave an "opening..." === modified file 'lisp/gnus/nnweb.el' --- lisp/gnus/nnweb.el 2012-01-19 07:21:25 +0000 +++ lisp/gnus/nnweb.el 2012-05-04 06:13:18 +0000 @@ -365,7 +365,7 @@ (match-string 1) (match-string 2) (or (match-string 3) - (substring (current-time-string) -4))) + (format-time-string "%Y"))) (current-time-string))) (setq From (match-string 4))) (widen) === modified file 'lisp/tar-mode.el' --- lisp/tar-mode.el 2012-04-16 18:46:46 +0000 +++ lisp/tar-mode.el 2012-05-04 06:13:18 +0000 @@ -396,7 +396,7 @@ (defun tar-clip-time-string (time) (let ((str (current-time-string time))) - (concat " " (substring str 4 16) (substring str 19 24)))) + (concat " " (substring str 4 16) (format-time-string " %Y" time)))) (defun tar-grind-file-mode (mode) "Construct a `-rw--r--r--' string indicating MODE. === modified file 'lisp/time.el' --- lisp/time.el 2012-01-19 07:21:25 +0000 +++ lisp/time.el 2012-05-04 06:13:18 +0000 @@ -465,7 +465,7 @@ (seconds (substring time 17 19)) (time-zone (car (cdr (current-time-zone now)))) (day (substring time 8 10)) - (year (substring time 20 24)) + (year (format-time-string "%Y" now)) (monthname (substring time 4 7)) (month (cdr ------------------------------------------------------------ revno: 108118 committer: Chong Yidong branch nick: trunk timestamp: Fri 2012-05-04 14:02:23 +0800 message: * iswitchb.el (iswitchb-all-frames): Fix last change. diff: === modified file 'lisp/iswitchb.el' --- lisp/iswitchb.el 2012-05-04 05:14:14 +0000 +++ lisp/iswitchb.el 2012-05-04 06:02:23 +0000 @@ -372,7 +372,7 @@ :type 'string :group 'iswitchb) -(defvar iswitchb-all-frames 'visible +(defcustom iswitchb-all-frames 'visible "Argument to pass to `walk-windows' when iswitchb is finding buffers. See documentation of `walk-windows' for useful values." :type '(choice (const :tag "Selected frame only" nil) ------------------------------------------------------------ revno: 108117 committer: Chong Yidong branch nick: trunk timestamp: Fri 2012-05-04 13:14:14 +0800 message: Convert more defvars to defcustoms. * dos-w32.el (file-name-buffer-file-type-alist) (direct-print-region-use-command-dot-com): * ffap.el (ffap-menu-regexp): * follow.el (follow-debug): * forms.el (forms--debug): * iswitchb.el (iswitchb-all-frames): * ido.el (ido-all-frames): * mail/feedmail.el (feedmail-mail-send-hook) (feedmail-mail-send-hook-queued): * mail/footnote.el (footnote-signature-separator): * mail/mailabbrev.el (mail-alias-separator-string) (mail-abbrev-mode-regexp): * mail/rmail.el (rmail-speedbar-match-folder-regexp): * progmodes/idlwave.el (idlwave-libinfo-file) (idlwave-default-completion-case-is-down) (idlwave-library-routines): Convert defvars to defcustoms. * mail/rmail.el (rmail-decode-mime-charset): * progmodes/idlw-shell.el (idlwave-shell-print-expression-function) (idlwave-shell-fix-inserted-breaks) (idlwave-shell-activate-alt-keybindings) (idlwave-shell-use-breakpoint-glyph): * facemenu.el (facemenu-unlisted-faces): Delete obsolete vars. * doc/lispref/os.texi (Timers): Use defopt for timer-max-repeats. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2012-05-03 20:04:29 +0000 +++ doc/lispref/ChangeLog 2012-05-04 05:14:14 +0000 @@ -1,3 +1,7 @@ +2012-05-04 Chong Yidong + + * os.texi (Timers): Use defopt for timer-max-repeats. + 2012-05-03 Paul Eggert * os.texi (Time of Day): Do not limit current-time-string === modified file 'doc/lispref/os.texi' --- doc/lispref/os.texi 2012-05-03 20:04:29 +0000 +++ doc/lispref/os.texi 2012-05-04 05:14:14 +0000 @@ -1735,11 +1735,11 @@ seconds after the last invocation, don't use the @var{repeat} argument. Instead, the timer function should explicitly reschedule the timer. -@defvar timer-max-repeats +@defopt timer-max-repeats This variable's value specifies the maximum number of times to repeat calling a timer function in a row, when many previously scheduled calls were unavoidably delayed. -@end defvar +@end defopt @defmac with-timeout (seconds timeout-forms@dots{}) body@dots{} Execute @var{body}, but give up after @var{seconds} seconds. If === modified file 'etc/NEWS' --- etc/NEWS 2012-05-03 20:04:29 +0000 +++ etc/NEWS 2012-05-04 05:14:14 +0000 @@ -187,6 +187,11 @@ but keywords or keyword-string pairs. The old argument list will still be supported for Emacs 24.x. +** The following obsolete variables and varaliases have been removed: + +*** `facemenu-unlisted-faces' +*** `rmail-decode-mime-charset' + * Lisp changes in Emacs 24.2 === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-05-03 19:54:07 +0000 +++ lisp/ChangeLog 2012-05-04 05:14:14 +0000 @@ -1,3 +1,31 @@ +2012-05-04 Chong Yidong + + * dos-w32.el (file-name-buffer-file-type-alist) + (direct-print-region-use-command-dot-com): + * ffap.el (ffap-menu-regexp): + * find-file.el (ff-special-constructs): + * follow.el (follow-debug): + * forms.el (forms--debug): + * iswitchb.el (iswitchb-all-frames): + * ido.el (ido-all-frames): + * emacs-lisp/timer.el (timer-max-repeats): + * mail/feedmail.el (feedmail-mail-send-hook) + (feedmail-mail-send-hook-queued): + * mail/footnote.el (footnote-signature-separator): + * mail/mailabbrev.el (mail-alias-separator-string) + (mail-abbrev-mode-regexp): + * mail/rmail.el (rmail-speedbar-match-folder-regexp): + * progmodes/idlwave.el (idlwave-libinfo-file) + (idlwave-default-completion-case-is-down) + (idlwave-library-routines): Convert defvars to defcustoms. + + * mail/rmail.el (rmail-decode-mime-charset): + * progmodes/idlw-shell.el (idlwave-shell-print-expression-function) + (idlwave-shell-fix-inserted-breaks) + (idlwave-shell-activate-alt-keybindings) + (idlwave-shell-use-breakpoint-glyph): + * facemenu.el (facemenu-unlisted-faces): Delete obsolete vars. + 2012-05-03 Stefan Monnier * minibuffer.el (completion--twq-all): Beware completion-ignore-case. === modified file 'lisp/dos-w32.el' --- lisp/dos-w32.el 2012-04-09 13:05:48 +0000 +++ lisp/dos-w32.el 2012-05-04 05:14:14 +0000 @@ -38,9 +38,8 @@ (setq null-device "NUL") ;; For distinguishing file types based upon suffixes. -(defvar file-name-buffer-file-type-alist - '( - ("[:/].*config.sys$" . nil) ; config.sys text +(defcustom file-name-buffer-file-type-alist + '(("[:/].*config.sys$" . nil) ; config.sys text ("\\.\\(obj\\|exe\\|com\\|lib\\|sys\\|bin\\|ico\\|pif\\|class\\)$" . t) ; MS-Dos stuff ("\\.\\(dll\\|drv\\|386\\|vxd\\|fon\\|fnt\\|fot\\|ttf\\|grp\\)$" . t) @@ -57,7 +56,10 @@ ) "Alist for distinguishing text files from binary files. Each element has the form (REGEXP . TYPE), where REGEXP is matched -against the file name, and TYPE is nil for text, t for binary.") +against the file name, and TYPE is nil for text, t for binary." + :type '(repeat (cons regexp boolean)) + :group 'dos-fns + :group 'w32) ;; Return the pair matching filename on file-name-buffer-file-type-alist, ;; or nil otherwise. @@ -282,8 +284,11 @@ ;;; Support for printing under DOS/Windows, see lpr.el and ps-print.el. -(defvar direct-print-region-use-command-dot-com t - "Control whether command.com is used to print on Windows 9x.") +(defcustom direct-print-region-use-command-dot-com t + "If non-nil, use command.com to print on Windows 9x." + :type 'boolean + :group 'dos-fns + :group 'w32) ;; Function to actually send data to the printer port. ;; Supports writing directly, and using various programs. === modified file 'lisp/emacs-lisp/timer.el' --- lisp/emacs-lisp/timer.el 2012-04-09 13:05:48 +0000 +++ lisp/emacs-lisp/timer.el 2012-05-04 05:14:14 +0000 @@ -240,12 +240,14 @@ (defvar timer-event-last-2 nil "Third-to-last timer that was run.") -(defvar timer-max-repeats 10 +(defcustom timer-max-repeats 10 "Maximum number of times to repeat a timer, if many repeats are delayed. Timer invocations can be delayed because Emacs is suspended or busy, or because the system's time changes. If such an occurrence makes it appear that many invocations are overdue, this variable controls -how many will really happen.") +how many will really happen." + :type 'integer + :group 'internal) (defun timer-until (timer time) "Calculate number of seconds from when TIMER will run, until TIME. === modified file 'lisp/facemenu.el' --- lisp/facemenu.el 2012-04-09 13:05:48 +0000 +++ lisp/facemenu.el 2012-05-04 05:14:14 +0000 @@ -127,15 +127,6 @@ :type 'boolean :group 'facemenu) -(defvar facemenu-unlisted-faces - `(modeline region secondary-selection highlight scratch-face - ,(purecopy "^font-lock-") ,(purecopy "^gnus-") ,(purecopy "^message-") - ,(purecopy "^ediff-") ,(purecopy "^term-") ,(purecopy "^vc-") - ,(purecopy "^widget-") ,(purecopy "^custom-") ,(purecopy "^vm-")) - "List of faces that are of no interest to the user.") -(make-obsolete-variable 'facemenu-unlisted-faces 'facemenu-listed-faces - "22.1,\n and has no effect on the Face menu") - (defcustom facemenu-listed-faces nil "List of faces to include in the Face menu. Each element should be a symbol, the name of a face. === modified file 'lisp/ffap.el' --- lisp/ffap.el 2012-04-25 18:57:09 +0000 +++ lisp/ffap.el 2012-05-04 05:14:14 +0000 @@ -1457,10 +1457,12 @@ ;;; Menu support (`ffap-menu'): -(defvar ffap-menu-regexp nil - "If non-nil, overrides `ffap-next-regexp' during `ffap-menu'. +(defcustom ffap-menu-regexp nil + "If non-nil, regexp overriding `ffap-next-regexp' in `ffap-menu'. Make this more restrictive for faster menu building. -For example, try \":/\" for URL (and some ftp) references.") +For example, try \":/\" for URL (and some ftp) references." + :type '(choice (const nil) regexp) + :group 'ffap) (defvar ffap-menu-alist nil "Buffer local cache of menu presented by `ffap-menu'.") === modified file 'lisp/find-file.el' --- lisp/find-file.el 2012-04-09 13:05:48 +0000 +++ lisp/find-file.el 2012-05-04 05:14:14 +0000 @@ -181,21 +181,21 @@ :group 'ff) ;;;###autoload -(defvar ff-special-constructs - `( - ;; C/C++ include, for NeXTstep too - (,(purecopy "^\#\\s *\\(include\\|import\\)\\s +[<\"]\\(.*\\)[>\"]") . +(defcustom ff-special-constructs + ;; C/C++ include, for NeXTstep too + `((,(purecopy "^\#\\s *\\(include\\|import\\)\\s +[<\"]\\(.*\\)[>\"]") . (lambda () - (buffer-substring (match-beginning 2) (match-end 2)))) - ) + (buffer-substring (match-beginning 2) (match-end 2))))) ;; We include `ff-treat-as-special' documentation here so that autoload ;; can make it available to be read prior to loading this file. - "List of special constructs for `ff-treat-as-special' to recognize. + "List of special constructs recognized by `ff-treat-as-special'. Each element, tried in order, has the form (REGEXP . EXTRACT). If REGEXP matches the current line (from the beginning of the line), `ff-treat-as-special' calls function EXTRACT with no args. If EXTRACT returns nil, keep trying. Otherwise, return the -filename that EXTRACT returned.") +filename that EXTRACT returned." + :type '(repeat (cons regexp function)) + :group 'ff) (defvaralias 'ff-related-file-alist 'ff-other-file-alist) (defcustom ff-other-file-alist 'cc-other-file-alist === modified file 'lisp/follow.el' --- lisp/follow.el 2012-05-01 14:00:16 +0000 +++ lisp/follow.el 2012-05-04 05:14:14 +0000 @@ -321,9 +321,10 @@ To mark other commands as suitable for caching, set the symbol property `follow-mode-use-cache' to non-nil.") -(defvar follow-debug nil - "Non-nil when debugging Follow mode.") - +(defcustom follow-debug nil + "If non-nil, emit Follow mode debugging messages." + :type 'boolean + :group 'follow) ;; Internal variables: === modified file 'lisp/forms.el' --- lisp/forms.el 2012-04-09 13:05:48 +0000 +++ lisp/forms.el 2012-05-04 05:14:14 +0000 @@ -2030,8 +2030,10 @@ ;;; Debugging -(defvar forms--debug nil - "Enables forms-mode debugging if not nil.") +(defcustom forms--debug nil + "If non-nil, enable Forms mode debugging." + :type 'boolean + :group 'forms) (defun forms--debug (&rest args) "Internal debugging routine." === modified file 'lisp/ido.el' --- lisp/ido.el 2012-04-09 13:05:48 +0000 +++ lisp/ido.el 2012-05-04 05:14:14 +0000 @@ -893,9 +893,14 @@ :type 'boolean :group 'ido) -(defvar ido-all-frames 'visible - "Argument to pass to `walk-windows' when finding visible files. -See documentation of `walk-windows' for useful values.") +(defcustom ido-all-frames 'visible + "Argument to pass to `walk-windows' when Ido is finding buffers. +See documentation of `walk-windows' for useful values." + :type '(choice (const :tag "Selected frame only" nil) + (const :tag "All existing frames" t) + (const :tag "All visible frames" visible) + (const :tag "All frames on this terminal" 0)) + :group 'ido) (defcustom ido-minibuffer-setup-hook nil "Ido-specific customization of minibuffer setup. === modified file 'lisp/iswitchb.el' --- lisp/iswitchb.el 2012-04-09 13:05:48 +0000 +++ lisp/iswitchb.el 2012-05-04 05:14:14 +0000 @@ -373,8 +373,13 @@ :group 'iswitchb) (defvar iswitchb-all-frames 'visible - "Argument to pass to `walk-windows' when finding visible buffers. -See documentation of `walk-windows' for useful values.") + "Argument to pass to `walk-windows' when iswitchb is finding buffers. +See documentation of `walk-windows' for useful values." + :type '(choice (const :tag "Selected frame only" nil) + (const :tag "All existing frames" t) + (const :tag "All visible frames" visible) + (const :tag "All frames on this terminal" 0)) + :group 'iswitchb) (defcustom iswitchb-minibuffer-setup-hook nil "Iswitchb-specific customization of minibuffer setup. === modified file 'lisp/mail/feedmail.el' --- lisp/mail/feedmail.el 2012-04-16 19:06:02 +0000 +++ lisp/mail/feedmail.el 2012-05-04 05:14:14 +0000 @@ -1366,17 +1366,19 @@ (feedmail-say-debug ">in-> feedmail-mail-send-hook-splitter %s" feedmail-queue-runner-is-active) (if feedmail-queue-runner-is-active (run-hooks 'feedmail-mail-send-hook-queued) - (run-hooks 'feedmail-mail-send-hook)) - ) - - -(defvar feedmail-mail-send-hook nil - "See documentation for `feedmail-mail-send-hook-splitter'.") - - -(defvar feedmail-mail-send-hook-queued nil - "See documentation for `feedmail-mail-send-hook-splitter'.") - + (run-hooks 'feedmail-mail-send-hook))) + +(defcustom feedmail-mail-send-hook nil + "Hook run by `feedmail-mail-send-hook-splitter' for immediate mail. +See documentation of `feedmail-mail-send-hook-splitter' for details." + :type 'hook + :group 'feedmail) + +(defcustom feedmail-mail-send-hook-queued nil + "Hook run by `feedmail-mail-send-hook-splitter' for queued mail. +See documentation of `feedmail-mail-send-hook-splitter' for details." + :type 'hook + :group 'feedmail) (defun feedmail-confirm-addresses-hook-example () "An example of a `feedmail-last-chance-hook'. @@ -1387,9 +1389,7 @@ (erase-buffer) (insert (mapconcat 'identity feedmail-address-list " ")) (if (not (y-or-n-p "How do you like them apples? ")) - (error "FQM: Sending...gave up in last chance hook") - ))) - + (error "FQM: Sending...gave up in last chance hook")))) (defcustom feedmail-last-chance-hook nil "User's last opportunity to modify the message on its way out. @@ -2027,12 +2027,6 @@ (if (looking-at ".*\r\n.*\r\n") (while (search-forward "\r\n" nil t) (replace-match "\n" nil t))) -;; ;; work around text-vs-binary weirdness -;; ;; if we don't find the normal M-H-S, try reading the file a different way -;; (if (not (feedmail-find-eoh t)) -;; (let ((file-name-buffer-file-type-alist nil) (default-buffer-file-type nil)) -;; (erase-buffer) -;; (insert-file-contents maybe-file))) (funcall feedmail-queue-runner-mode-setter arg) (condition-case signal-stuff ; don't give up the loop if user skips some (let ((feedmail-enable-queue nil) === modified file 'lisp/mail/footnote.el' --- lisp/mail/footnote.el 2012-04-09 13:05:48 +0000 +++ lisp/mail/footnote.el 2012-05-04 05:14:14 +0000 @@ -126,10 +126,12 @@ :type 'string :group 'footnote) -(defvar footnote-signature-separator (if (boundp 'message-signature-separator) - message-signature-separator - "^-- $") - "String used to recognize .signatures.") +(defcustom footnote-signature-separator (if (boundp 'message-signature-separator) + message-signature-separator + "^-- $") + "Regexp used by Footnote mode to recognize signatures." + :type 'regexp + :group 'footnote) ;;; Private variables === modified file 'lisp/mail/mailabbrev.el' --- lisp/mail/mailabbrev.el 2012-04-09 13:05:48 +0000 +++ lisp/mail/mailabbrev.el 2012-05-04 05:14:14 +0000 @@ -254,10 +254,12 @@ mail-abbrevs) (message "Parsing %s... done" file)) -(defvar mail-alias-separator-string ", " - "A string inserted between addresses in multi-address mail aliases. +(defcustom mail-alias-separator-string ", " + "String inserted between addresses in multi-address mail aliases. This has to contain a comma, so \", \" is a reasonable value. You might -also want something like \",\\n \" to get each address on its own line.") +also want something like \",\\n \" to get each address on its own line." + :type 'string + :group 'mail-abbrev) ;; define-mail-abbrev sets this flag, which causes mail-resolve-all-aliases ;; to be called before expanding abbrevs if it's necessary. @@ -421,14 +423,16 @@ ;;; Syntax tables and abbrev-expansion -(defvar mail-abbrev-mode-regexp +(defcustom mail-abbrev-mode-regexp "^\\(Resent-\\)?\\(To\\|From\\|CC\\|BCC\\|Reply-to\\):" - "Regexp to select mail-headers in which mail abbrevs should be expanded. + "Regexp matching mail headers in which mail abbrevs should be expanded. This string will be handed to `looking-at' with point at the beginning of the current line; if it matches, abbrev mode will be turned on, otherwise it will be turned off. (You don't need to worry about continuation lines.) This should be set to match those mail fields in which you want abbreviations -turned on.") +turned on." + :type 'regexp + :group 'mail-abbrev) (defvar mail-abbrev-syntax-table nil "The syntax-table used for abbrev-expansion purposes. === modified file 'lisp/mail/rmail.el' --- lisp/mail/rmail.el 2012-05-03 10:20:40 +0000 +++ lisp/mail/rmail.el 2012-05-04 05:14:14 +0000 @@ -713,19 +713,6 @@ `rmail-insert-mime-forwarded-message-function', and `rmail-insert-mime-resent-message-function'.") -;; FIXME this is unused since 23.1. -(defvar rmail-decode-mime-charset t - "Non-nil means a message is decoded by MIME's charset specification. -If this variable is nil, or the message has not MIME specification, -the message is decoded as normal way. - -If the variable `rmail-enable-mime' is non-nil, this variable is -ignored, and all the decoding work is done by a feature specified by -the variable `rmail-mime-feature'.") - -(make-obsolete-variable 'rmail-decode-mime-charset - "it does nothing." "23.1") - (defvar rmail-mime-charset-pattern (concat "^content-type:[ \t]*text/plain;" "\\(?:[ \t\n]*\\(?:format\\|delsp\\)=\"?[-a-z0-9]+\"?;\\)*" @@ -4231,10 +4218,13 @@ ;;; Speedbar support for RMAIL files. (eval-when-compile (require 'speedbar)) -(defvar rmail-speedbar-match-folder-regexp "^[A-Z0-9]+\\(\\.[A-Z0-9]+\\)?$" - "This regex is used to match folder names to be displayed in speedbar. -Enabling this will permit speedbar to display your folders for easy -browsing, and moving of messages.") +(defcustom rmail-speedbar-match-folder-regexp "^[A-Z0-9]+\\(\\.[A-Z0-9]+\\)?$" + "Regexp matching Rmail folder names to be displayed in Speedbar. +Enabling this permits Speedbar to display your folders for easy +browsing, and moving of messages." + :type 'regexp + :group 'rmail + :group 'speedbar) (defvar rmail-speedbar-last-user nil "The last user to be displayed in the speedbar.") === modified file 'lisp/progmodes/idlw-shell.el' --- lisp/progmodes/idlw-shell.el 2012-04-09 13:05:48 +0000 +++ lisp/progmodes/idlw-shell.el 2012-05-04 05:14:14 +0000 @@ -183,12 +183,6 @@ :group 'idlwave-shell-general-setup :type 'string) -(defvar idlwave-shell-fix-inserted-breaks nil - "OBSOLETE VARIABLE, is no longer used. - -The documentation of this variable used to be: -If non-nil then run `idlwave-shell-remove-breaks' to clean up IDL messages.") - (defcustom idlwave-shell-prefix-key "\C-c\C-d" "The prefix key for the debugging map `idlwave-shell-mode-prefix-map'. This variable must already be set when idlwave-shell.el is loaded. @@ -223,9 +217,6 @@ ;; (defcustom idlwave-shell-debug-modifiers... See idlwave.el -(defvar idlwave-shell-activate-alt-keybindings nil - "Obsolete variable. See `idlwave-shell-debug-modifiers'.") - (defcustom idlwave-shell-use-truename nil "Non-nil means, use `file-truename' when looking for buffers. If this variable is non-nil, Emacs will use the function `file-truename' to @@ -335,9 +326,6 @@ (string :tag "Label ") (string :tag "Command")))) -(defvar idlwave-shell-print-expression-function nil - "OBSOLETE VARIABLE, is no longer used.") - (defcustom idlwave-shell-separate-examine-output t "Non-nil means, put output of examine commands in their own buffer." :group 'idlwave-shell-command-setup @@ -520,9 +508,6 @@ (const :tag "Display glyph (red dot)" glyph) (const :tag "Glyph or face." t))) -(defvar idlwave-shell-use-breakpoint-glyph t - "Obsolete variable. See `idlwave-shell-mark-breakpoints'.") - (defcustom idlwave-shell-breakpoint-face 'idlwave-shell-bp "The face for breakpoint lines in the source code. Allows you to choose the font, color and other properties for === modified file 'lisp/progmodes/idlwave.el' --- lisp/progmodes/idlwave.el 2012-04-09 13:05:48 +0000 +++ lisp/progmodes/idlwave.el 2012-05-04 05:14:14 +0000 @@ -456,9 +456,6 @@ (defvar idlwave-xml-system-rinfo-converted-file "idl_xml_rinfo.el") (defvar idlwave-path-file "idlpath.el") -(defvar idlwave-libinfo-file nil - "Obsolete variable, no longer used.") - (defcustom idlwave-special-lib-alist nil "Alist of regular expressions matching special library directories. When listing routine source locations, IDLWAVE gives a short hint where @@ -555,10 +552,6 @@ :group 'idlwave-completion :type 'boolean) -(defvar idlwave-default-completion-case-is-down nil - "Obsolete variable. See `idlwave-complete-empty-string-as-lower-case' and -`idlwave-completion-case'.") - (defcustom idlwave-buffer-case-takes-precedence nil "Non-nil means, the case of tokens in buffers dominates over system stuff. To make this possible, we need to re-case everything each time we update @@ -4525,8 +4518,6 @@ nil 'idlwave-load-rinfo-next-step))) (error nil)))) -(defvar idlwave-library-routines nil "Obsolete variable.") - ;;------ XML Help routine info system (defun idlwave-load-system-routine-info () ;; Load the system routine info from the cached routine info file, ------------------------------------------------------------ revno: 108116 committer: Paul Eggert branch nick: trunk timestamp: Thu 2012-05-03 13:04:29 -0700 message: Do not limit current-time-string to years 1000..9999. * src/editfns.c (TM_YEAR_IN_ASCTIME_RANGE): Remove. (Fcurrent_time_string): Support any year that is supported by the underlying localtime representation. Don't use asctime, as it has undefined behavior for years outside the range -999..9999. * doc/lispref/os.texi (Time of Day): Do not limit current-time-string to years 1000..9999. * etc/NEWS: Do not limit current-time-string to years 1000..9999. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2012-05-02 13:00:29 +0000 +++ doc/lispref/ChangeLog 2012-05-03 20:04:29 +0000 @@ -1,3 +1,8 @@ +2012-05-03 Paul Eggert + + * os.texi (Time of Day): Do not limit current-time-string + to years 1000..9999. + 2012-05-02 Chong Yidong * display.texi (Font Lookup): === modified file 'doc/lispref/os.texi' --- doc/lispref/os.texi 2012-04-24 17:56:30 +0000 +++ doc/lispref/os.texi 2012-05-03 20:04:29 +0000 @@ -1196,11 +1196,14 @@ @defun current-time-string &optional time-value This function returns the current time and date as a human-readable -string. The format of the string is unvarying; the number of -characters used for each part is always the same, so you can reliably -use @code{substring} to extract pieces of it. You should count +string. The format does not vary for the initial part of the string, +which contains the day of week, month, day of month, and time of day +in that order: the number of characters used for these fields is +always the same, so you can reliably +use @code{substring} to extract them. You should count characters from the beginning of the string rather than from the end, -as additional information may some day be added at the end. +as the year might not have exactly four digits, and additional +information may some day be added at the end. The argument @var{time-value}, if given, specifies a time to format (represented as a list of integers), instead of the current time. @@ -2301,7 +2304,7 @@ @item :urgency @var{urgency} The urgency level. It can be @code{low}, @code{normal}, or @code{critical}. -@item :action-items +@item :action-items When this keyword is given, the @var{title} string of the actions is interpreted as icon name. === modified file 'etc/ChangeLog' --- etc/ChangeLog 2012-04-27 06:08:14 +0000 +++ etc/ChangeLog 2012-05-03 20:04:29 +0000 @@ -1,3 +1,7 @@ +2012-05-03 Paul Eggert + + * NEWS: Do not limit current-time-string to years 1000..9999. + 2012-04-27 Jambunathan K * org/OrgOdtStyles.xml (OrgDescriptionList): Modify style. With === modified file 'etc/NEWS' --- etc/NEWS 2012-05-02 17:41:21 +0000 +++ etc/NEWS 2012-05-03 20:04:29 +0000 @@ -197,6 +197,12 @@ *** New function `completion-table-subvert' to use an existing completion table, but with a different prefix. + +** Time + +*** `current-time-string' no longer requires that its argument's year +must be in the range 1000..9999. It now works with any year supported +by the underlying C implementation. * Changes in Emacs 24.2 on non-free operating systems === modified file 'src/ChangeLog' --- src/ChangeLog 2012-05-02 23:25:46 +0000 +++ src/ChangeLog 2012-05-03 20:04:29 +0000 @@ -1,3 +1,11 @@ +2012-05-03 Paul Eggert + + Do not limit current-time-string to years 1000..9999. + * editfns.c (TM_YEAR_IN_ASCTIME_RANGE): Remove. + (Fcurrent_time_string): Support any year that is supported by the + underlying localtime representation. Don't use asctime, as it + has undefined behavior for years outside the range -999..9999. + 2012-05-02 Paul Eggert Fix race conditions involving setenv, gmtime, localtime, asctime. === modified file 'src/editfns.c' --- src/editfns.c 2012-05-02 23:25:46 +0000 +++ src/editfns.c 2012-05-03 20:04:29 +0000 @@ -73,13 +73,6 @@ #define TM_YEAR_BASE 1900 -/* Nonzero if TM_YEAR is a struct tm's tm_year value that causes - asctime to have well-defined behavior. */ -#ifndef TM_YEAR_IN_ASCTIME_RANGE -# define TM_YEAR_IN_ASCTIME_RANGE(tm_year) \ - (1000 - TM_YEAR_BASE <= (tm_year) && (tm_year) <= 9999 - TM_YEAR_BASE) -#endif - #ifdef WINDOWSNT extern Lisp_Object w32_get_internal_run_time (void); #endif @@ -1943,29 +1936,37 @@ { time_t value; struct tm *tm; - char *tem = NULL; - char buf[sizeof "Mon Apr 30 12:49:17 2012" - 1]; + char buf[sizeof "Mon Apr 30 12:49:17 " + INT_STRLEN_BOUND (int) + 1]; + int len IF_LINT (= 0); if (! lisp_time_argument (specified_time, &value, NULL)) error ("Invalid time specification"); - /* Convert to a string, checking for out-of-range time stamps. - Omit the trailing newline. - Don't use 'ctime', as that might dump core if VALUE is out of - range. */ + /* Convert to a string in ctime format, except without the trailing + newline, and without the 4-digit year limit. Don't use asctime + or ctime, as they might dump core if the year is outside the + range -999 .. 9999. */ BLOCK_INPUT; tm = localtime (&value); - if (tm && TM_YEAR_IN_ASCTIME_RANGE (tm->tm_year)) + if (tm) { - tem = asctime (tm); - if (tem) - memcpy (buf, tem, sizeof buf); + static char const wday_name[][4] = + { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" }; + static char const mon_name[][4] = + { "Jan", "Feb", "Mar", "Apr", "May", "Jun", + "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; + printmax_t year_base = TM_YEAR_BASE; + + len = sprintf (buf, "%s %s%3d %02d:%02d:%02d %"pMd, + wday_name[tm->tm_wday], mon_name[tm->tm_mon], tm->tm_mday, + tm->tm_hour, tm->tm_min, tm->tm_sec, + tm->tm_year + year_base); } UNBLOCK_INPUT; - if (! tem) + if (! tm) time_overflow (); - return make_unibyte_string (buf, sizeof buf); + return make_unibyte_string (buf, len); } /* Yield A - B, measured in seconds. ------------------------------------------------------------ revno: 108115 committer: Stefan Monnier branch nick: trunk timestamp: Thu 2012-05-03 15:54:07 -0400 message: * minibuffer.el (completion--twq-all): Beware completion-ignore-case. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-05-03 19:23:55 +0000 +++ lisp/ChangeLog 2012-05-03 19:54:07 +0000 @@ -1,3 +1,7 @@ +2012-05-03 Stefan Monnier + + * minibuffer.el (completion--twq-all): Beware completion-ignore-case. + 2012-05-03 Wilson Snyder * progmodes/verilog-mode.el (font-lock-keywords): === modified file 'lisp/minibuffer.el' --- lisp/minibuffer.el 2012-05-01 00:21:23 +0000 +++ lisp/minibuffer.el 2012-05-03 19:54:07 +0000 @@ -546,16 +546,19 @@ ;; which only get quoted when needed by choose-completion. (nconc (mapcar (lambda (completion) - (assert (string-prefix-p prefix completion)) + (assert (string-prefix-p prefix completion 'ignore-case) t) (let* ((new (substring completion (length prefix))) (qnew (funcall qfun new)) (qcompletion (concat qprefix qnew))) (assert - (equal (funcall unquote + (eq t (compare-strings + (funcall unquote (concat (substring string 0 qboundary) qcompletion)) + nil nil (concat (substring ustring 0 boundary) - completion))) + completion) + nil nil 'ignore-case))) qcompletion)) completions) qboundary)))) ------------------------------------------------------------ revno: 108114 author: Wilson Snyder , Michael McNamara committer: Stefan Monnier branch nick: trunk timestamp: Thu 2012-05-03 15:23:55 -0400 message: Merge verilog-mode.el from upstream. * progmodes/verilog-mode.el (font-lock-keywords): Fix mis-highligting auto. Reported by Craig Barner. (verilog-auto, verilog-auto-undef): Add AUTOUNDEF to remove defines from global name space. Reported by Dan Dever. (verilog-auto-reset, verilog-auto-reset-widths) (verilog-auto-tieoff): Support using unbased numbers for AUTORESET and AUTOTIEOFF. (verilog-submit-bug-report): Update variable list. (verilog-read-auto-params): Fix AUTOINPUT regexps containing parenthesis from not matching. Reported by Michael Rytting. (verilog-auto-template-lint): Fix hash error when linting modules with no used templates. (verilog-warn, verilog-warn-error) (verilog-warn-fatal): When non-interactive report multiple warnings before exiting. Suggested by Brad Dobbie. (verilog-auto-template-lint, verilog-auto-template-warn-unused) (verilog-read-auto-template): Add `verilog-auto-template-warn-unused' to report unused template errors. Reported by Brad Dobbie. (verilog-read-decls): Fix AUTOWIRE etc on supply0, supply1 type nets, bug438. Reported by Vns Blore. (verilog-auto-inout-module, verilog-auto-reg) (verilog-read-decls, verilog-read-sub-decls-sig) (verilog-signals-edit-wire-reg, verilog-signals-with): Fix passing of Verilog data types in ANSI input/output ports such as "output logic" into the AUTOs. Special case "wire" and "reg" for backwards compatibility presuming Verilog 2001. (verilog-auto-ascii-enum): Add "auto enum" as alias. (verilog-preprocess): Fix replication of preprocess output. Reported by Brad Dobbie. (verilog-auto-inst-interfaced-ports): Create verilog-auto-inst-interfaced-ports, bug429. Reported by Julian Gorfajn. (verilog-after-save-font-hook) (verilog-before-save-font-hook): New variable. (verilog-modi-cache-results, verilog-save-font-mod-hooked) (verilog-save-font-mods): Wrap disabling fontification, reported by David Rogoff. (verilog-do-indent, verilog-pretty-declarations-auto) (verilog-sk-def-reg): Fix obeying `verilog-auto-lineup', bug305. Reported by Pierre-David Pfister. (verilog-set-auto-endcomments): Fix endtask auto comments outside of class declarations, bug292. Reported by Kevin Heilman. (verilog-read-decls): Fix 'parameter type' not appearing in AUTOINSTPARAM, bug340. Reported by Jonathan Greenlaw. (verilog-auto-logic): Fix when AUTOLOGIC present to properly do AUTOINPUTs, bug411. Reported by Jonathan Greenlaw. (verilog-read-auto-lisp): Avoid syntax-ppss warning on AUTOLISP. Reported by David Kravitz. * progmodes/verilog-mode.el (verilog-pretty-expr): Don't line up assignment with tests in ifs and for loops. (verilog-extended-complete-re, verilog-complete-reg): Change so that DPI inport functions don't look like fuction declarations. (verilog-pretty-expr): Don't line up assignment operations to the test and increment in if and for loops (verilog-extended-complete-re, verilog-complete-reg): Change so that DPI inport functions don't look like fuction declarations diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-05-03 06:57:54 +0000 +++ lisp/ChangeLog 2012-05-03 19:23:55 +0000 @@ -1,3 +1,65 @@ +2012-05-03 Wilson Snyder + + * progmodes/verilog-mode.el (font-lock-keywords): + Fix mis-highligting auto. Reported by Craig Barner. + (verilog-auto, verilog-auto-undef): Add AUTOUNDEF to remove + defines from global name space. Reported by Dan Dever. + (verilog-auto-reset, verilog-auto-reset-widths) + (verilog-auto-tieoff): Support using unbased numbers for + AUTORESET and AUTOTIEOFF. + (verilog-submit-bug-report): Update variable list. + (verilog-read-auto-params): Fix AUTOINPUT regexps containing + parenthesis from not matching. Reported by Michael Rytting. + (verilog-auto-template-lint): Fix hash error when linting modules + with no used templates. + (verilog-warn, verilog-warn-error) + (verilog-warn-fatal): When non-interactive report multiple + warnings before exiting. Suggested by Brad Dobbie. + (verilog-auto-template-lint, verilog-auto-template-warn-unused) + (verilog-read-auto-template): Add `verilog-auto-template-warn-unused' + to report unused template errors. Reported by Brad Dobbie. + (verilog-read-decls): Fix AUTOWIRE etc on supply0, supply1 type + nets, bug438. Reported by Vns Blore. + (verilog-auto-inout-module, verilog-auto-reg) + (verilog-read-decls, verilog-read-sub-decls-sig) + (verilog-signals-edit-wire-reg, verilog-signals-with): + Fix passing of Verilog data types in ANSI input/output ports + such as "output logic" into the AUTOs. Special case "wire" and + "reg" for backwards compatibility presuming Verilog 2001. + (verilog-auto-ascii-enum): Add "auto enum" as alias. + (verilog-preprocess): Fix replication of preprocess output. + Reported by Brad Dobbie. + (verilog-auto-inst-interfaced-ports): + Create verilog-auto-inst-interfaced-ports, bug429. + Reported by Julian Gorfajn. + (verilog-after-save-font-hook) + (verilog-before-save-font-hook): New variable. + (verilog-modi-cache-results, verilog-save-font-mod-hooked) + (verilog-save-font-mods): Wrap disabling fontification, reported + by David Rogoff. + (verilog-do-indent, verilog-pretty-declarations-auto) + (verilog-sk-def-reg): Fix obeying `verilog-auto-lineup', bug305. + Reported by Pierre-David Pfister. + (verilog-set-auto-endcomments): Fix endtask auto comments outside + of class declarations, bug292. Reported by Kevin Heilman. + (verilog-read-decls): Fix 'parameter type' not appearing in + AUTOINSTPARAM, bug340. Reported by Jonathan Greenlaw. + (verilog-auto-logic): Fix when AUTOLOGIC present to properly do + AUTOINPUTs, bug411. Reported by Jonathan Greenlaw. + (verilog-read-auto-lisp): Avoid syntax-ppss warning on AUTOLISP. + Reported by David Kravitz. + +2012-05-03 Michael McNamara + + * progmodes/verilog-mode.el (verilog-pretty-expr): Don't line up + assignment with tests in ifs and for loops. + (verilog-extended-complete-re, verilog-complete-reg): Change so + that DPI inport functions don't look like fuction declarations. + (verilog-pretty-expr): Don't line up assignment + operations to the test and increment in if and for loops + (verilog-extended-complete-re, verilog-complete-reg): Change so + that DPI inport functions don't look like fuction declarations + 2012-05-03 Kenichi Handa * mail/rmailmm.el (rmail-show-mime): Catch an error caused by text === modified file 'lisp/progmodes/verilog-mode.el' --- lisp/progmodes/verilog-mode.el 2012-04-22 13:58:00 +0000 +++ lisp/progmodes/verilog-mode.el 2012-05-03 19:23:55 +0000 @@ -123,9 +123,9 @@ ;;; Code: ;; This variable will always hold the version number of the mode -(defconst verilog-mode-version "725" +(defconst verilog-mode-version "800" "Version of this Verilog mode.") -(defconst verilog-mode-release-date "2011-11-27-GNU" +(defconst verilog-mode-release-date "2012-04-23-GNU" "Release date of this Verilog mode.") (defconst verilog-mode-release-emacs t "If non-nil, this version of Verilog mode was released with Emacs itself.") @@ -415,7 +415,10 @@ :group 'verilog-mode) (defvar verilog-debug nil - "If set, enable debug messages for `verilog-mode' internals.") + "Non-nil means enable debug messages for `verilog-mode' internals.") + +(defvar verilog-warn-fatal nil + "Non-nil means `verilog-warn-error' warnings are fatal `error's.") (defcustom verilog-linter "echo 'No verilog-linter set, see \"M-x describe-variable verilog-linter\"'" @@ -524,6 +527,8 @@ (const :tag "Line up Declarations" declarations) (function :tag "Other")) :group 'verilog-mode-indent ) +(put 'verilog-auto-lineup 'safe-local-variable + '(lambda (x) (memq x '(nil all assignments declarations)))) (defcustom verilog-indent-level 3 "Indentation of Verilog statements with respect to containing block." @@ -600,40 +605,39 @@ (put 'verilog-case-indent 'safe-local-variable 'integerp) (defcustom verilog-auto-newline t - "True means automatically newline after semicolons." + "Non-nil means automatically newline after semicolons." :group 'verilog-mode-indent :type 'boolean) (put 'verilog-auto-newline 'safe-local-variable 'verilog-booleanp) (defcustom verilog-auto-indent-on-newline t - "True means automatically indent line after newline." + "Non-nil means automatically indent line after newline." :group 'verilog-mode-indent :type 'boolean) (put 'verilog-auto-indent-on-newline 'safe-local-variable 'verilog-booleanp) (defcustom verilog-tab-always-indent t - "True means TAB should always re-indent the current line. + "Non-nil means TAB should always re-indent the current line. A nil value means TAB will only reindent when at the beginning of the line." :group 'verilog-mode-indent :type 'boolean) (put 'verilog-tab-always-indent 'safe-local-variable 'verilog-booleanp) (defcustom verilog-tab-to-comment nil - "True means TAB moves to the right hand column in preparation for a comment." + "Non-nil means TAB moves to the right hand column in preparation for a comment." :group 'verilog-mode-actions :type 'boolean) (put 'verilog-tab-to-comment 'safe-local-variable 'verilog-booleanp) (defcustom verilog-indent-begin-after-if t - "If true, indent begin statements following if, else, while, for and repeat. + "Non-nil means indent begin statements following if, else, while, etc. Otherwise, line them up." :group 'verilog-mode-indent :type 'boolean) (put 'verilog-indent-begin-after-if 'safe-local-variable 'verilog-booleanp) - (defcustom verilog-align-ifelse nil - "If true, align `else' under matching `if'. + "Non-nil means align `else' under matching `if'. Otherwise else is lined up with first character on line holding matching if." :group 'verilog-mode-indent :type 'boolean) @@ -648,7 +652,7 @@ (put 'verilog-minimum-comment-distance 'safe-local-variable 'integerp) (defcustom verilog-highlight-p1800-keywords nil - "True means highlight words newly reserved by IEEE-1800. + "Non-nil means highlight words newly reserved by IEEE-1800. These will appear in `verilog-font-lock-p1800-face' in order to gently suggest changing where these words are used as variables to something else. A nil value means highlight these words as appropriate for the SystemVerilog @@ -659,7 +663,7 @@ (put 'verilog-highlight-p1800-keywords 'safe-local-variable 'verilog-booleanp) (defcustom verilog-highlight-grouping-keywords nil - "True means highlight grouping keywords 'begin' and 'end' more dramatically. + "Non-nil means highlight grouping keywords 'begin' and 'end' more dramatically. If false, these words are in the `font-lock-type-face'; if True then they are in `verilog-font-lock-ams-face'. Some find that special highlighting on these grouping constructs allow the structure of the code to be understood at a glance." @@ -668,7 +672,7 @@ (put 'verilog-highlight-grouping-keywords 'safe-local-variable 'verilog-booleanp) (defcustom verilog-highlight-modules nil - "True means highlight module statements for `verilog-load-file-at-point'. + "Non-nil means highlight module statements for `verilog-load-file-at-point'. When true, mousing over module names will allow jumping to the module definition. If false, this is not supported. Setting this is experimental, and may lead to bad performance." @@ -677,7 +681,7 @@ (put 'verilog-highlight-modules 'safe-local-variable 'verilog-booleanp) (defcustom verilog-highlight-includes t - "True means highlight module statements for `verilog-load-file-at-point'. + "Non-nil means highlight module statements for `verilog-load-file-at-point'. When true, mousing over include file names will allow jumping to the file referenced. If false, this is not supported." :group 'verilog-mode-indent @@ -689,7 +693,7 @@ Set this to \"wire\" if the Verilog code uses \"`default_nettype none\". Note using `default_nettype none isn't recommended practice; this mode is experimental." - :version "24.1" + :version "24.1" ;; rev670 :group 'verilog-mode-actions :type 'boolean) (put 'verilog-auto-declare-nettype 'safe-local-variable `stringp) @@ -697,27 +701,27 @@ (defcustom verilog-auto-wire-type nil "Non-nil specifies the data type to use with `verilog-auto-wire' etc. Set this to \"logic\" for SystemVerilog code, or use `verilog-auto-logic'." - :version "24.1" + :version "24.1" ;; rev673 :group 'verilog-mode-actions :type 'boolean) (put 'verilog-auto-wire-type 'safe-local-variable `stringp) (defcustom verilog-auto-endcomments t - "True means insert a comment /* ... */ after 'end's. + "Non-nil means insert a comment /* ... */ after 'end's. The name of the function or case will be set between the braces." :group 'verilog-mode-actions :type 'boolean) (put 'verilog-auto-endcomments 'safe-local-variable 'verilog-booleanp) (defcustom verilog-auto-delete-trailing-whitespace nil - "True means to `delete-trailing-whitespace' in `verilog-auto'." - :version "24.1" + "Non-nil means to `delete-trailing-whitespace' in `verilog-auto'." + :version "24.1" ;; rev703 :group 'verilog-mode-actions :type 'boolean) (put 'verilog-auto-delete-trailing-whitespace 'safe-local-variable 'verilog-booleanp) (defcustom verilog-auto-ignore-concat nil - "True means ignore signals in {...} concatenations for AUTOWIRE etc. + "Non-nil means ignore signals in {...} concatenations for AUTOWIRE etc. This will exclude signals referenced as pin connections in {...} from AUTOWIRE, AUTOOUTPUT and friends. This flag should be set for backward compatibility only and not set in new designs; it @@ -727,7 +731,7 @@ (put 'verilog-auto-ignore-concat 'safe-local-variable 'verilog-booleanp) (defcustom verilog-auto-read-includes nil - "True means to automatically read includes before AUTOs. + "Non-nil means to automatically read includes before AUTOs. This will do a `verilog-read-defines' and `verilog-read-includes' before each AUTO expansion. This makes it easier to embed defines and includes, but can result in very slow reading times if there are many or large @@ -750,15 +754,15 @@ :type '(choice (const nil) (const ask) (const detect) (const force))) (defcustom verilog-auto-star-expand t - "Non-nil indicates to expand a SystemVerilog .* instance ports. -They will be expanded in the same way as if there was a AUTOINST in the + "Non-nil means to expand SystemVerilog .* instance ports. +They will be expanded in the same way as if there was an AUTOINST in the instantiation. See also `verilog-auto-star' and `verilog-auto-star-save'." :group 'verilog-mode-actions :type 'boolean) (put 'verilog-auto-star-expand 'safe-local-variable 'verilog-booleanp) (defcustom verilog-auto-star-save nil - "Non-nil indicates to save to disk SystemVerilog .* instance expansions. + "Non-nil means save to disk SystemVerilog .* instance expansions. A nil value indicates direct connections will be removed before saving. Only meaningful to those created due to `verilog-auto-star-expand' being set. @@ -964,7 +968,7 @@ (put 'verilog-active-low-regexp 'safe-local-variable 'stringp) (defcustom verilog-auto-sense-include-inputs nil - "If true, AUTOSENSE should include all inputs. + "Non-nil means AUTOSENSE should include all inputs. If nil, only inputs that are NOT output signals in the same block are included." :group 'verilog-mode-auto @@ -972,7 +976,7 @@ (put 'verilog-auto-sense-include-inputs 'safe-local-variable 'verilog-booleanp) (defcustom verilog-auto-sense-defines-constant nil - "If true, AUTOSENSE should assume all defines represent constants. + "Non-nil means AUTOSENSE should assume all defines represent constants. When true, the defines will not be included in sensitivity lists. To maintain compatibility with other sites, this should be set at the bottom of each Verilog file that requires it, rather than being set globally." @@ -981,28 +985,36 @@ (put 'verilog-auto-sense-defines-constant 'safe-local-variable 'verilog-booleanp) (defcustom verilog-auto-reset-blocking-in-non t - "If true, AUTORESET will reset those signals which were -assigned with blocking assignments (=) even in a block with -non-blocking assignments (<=). + "Non-nil means AUTORESET will reset blocking statements. +When true, AUTORESET will reset in blocking statements those +signals which were assigned with blocking assignments (=) even in +a block with non-blocking assignments (<=). If nil, all blocking assigned signals are ignored when any non-blocking assignment is in the AUTORESET block. This allows blocking assignments to be used for temporary values and not have those temporaries reset. See example in `verilog-auto-reset'." - :version "24.1" + :version "24.1" ;; rev718 :type 'boolean :group 'verilog-mode-auto) (put 'verilog-auto-reset-blocking-in-non 'safe-local-variable 'verilog-booleanp) (defcustom verilog-auto-reset-widths t - "If true, AUTORESET should determine the width of signals. + "True means AUTORESET should determine the width of signals. This is then used to set the width of the zero (32'h0 for example). This is required by some lint tools that aren't smart enough to ignore widths of -the constant zero. This may result in ugly code when parameters determine -the MSB or LSB of a signal inside an AUTORESET." +the constant zero. This may result in ugly code when parameters determine +the MSB or LSB of a signal inside an AUTORESET. + +If nil, AUTORESET uses \"0\" as the constant. + +If 'unbased', AUTORESET used the unbased unsized literal \"'0\" +as the constant. This setting is strongly recommended for +SystemVerilog designs." :type 'boolean :group 'verilog-mode-auto) -(put 'verilog-auto-reset-widths 'safe-local-variable 'verilog-booleanp) +(put 'verilog-auto-reset-widths 'safe-local-variable + '(lambda (x) (memq x '(nil t unbased)))) (defcustom verilog-assignment-delay "" "Text used for delays in delayed assignments. Add a trailing space if set." @@ -1011,7 +1023,7 @@ (put 'verilog-assignment-delay 'safe-local-variable 'stringp) (defcustom verilog-auto-arg-sort nil - "If set, AUTOARG signal names will be sorted, not in declaration order. + "Non-nil means AUTOARG signal names will be sorted, not in declaration order. Declaration order is advantageous with order based instantiations and is the default for backward compatibility. Sorted order reduces changes when declarations are moved around in a file, and @@ -1023,7 +1035,7 @@ (put 'verilog-auto-arg-sort 'safe-local-variable 'verilog-booleanp) (defcustom verilog-auto-inst-dot-name nil - "If true, when creating ports with AUTOINST, use .name syntax. + "Non-nil means when creating ports with AUTOINST, use .name syntax. This will use \".port\" instead of \".port(port)\" when possible. This is only legal in SystemVerilog files, and will confuse older simulators. Setting `verilog-auto-inst-vector' to nil may also @@ -1033,7 +1045,7 @@ (put 'verilog-auto-inst-dot-name 'safe-local-variable 'verilog-booleanp) (defcustom verilog-auto-inst-param-value nil - "If set, AUTOINST will replace parameters with the parameter value. + "Non-nil means AUTOINST will replace parameters with the parameter value. If nil, leave parameters as symbolic names. Parameters must be in Verilog 2001 format #(...), and if a parameter is not @@ -1041,7 +1053,7 @@ be replaced, and will remain symbolic. For example, imagine a submodule uses parameters to declare the size of its -inputs. This is then used by a upper module: +inputs. This is then used by an upper module: module InstModule (o,i); parameter WIDTH; @@ -1070,20 +1082,20 @@ (put 'verilog-auto-inst-param-value 'safe-local-variable 'verilog-booleanp) (defcustom verilog-auto-inst-sort nil - "If set, AUTOINST signal names will be sorted, not in declaration order. + "Non-nil means AUTOINST signals will be sorted, not in declaration order. Also affects AUTOINSTPARAM. Declaration order is the default for backward compatibility, and as some teams prefer signals that are declared together to remain together. Sorted order reduces changes when declarations are moved around in a file. See also `verilog-auto-arg-sort'." - :version "24.1" + :version "24.1" ;; rev688 :group 'verilog-mode-auto :type 'boolean) (put 'verilog-auto-inst-sort 'safe-local-variable 'verilog-booleanp) (defcustom verilog-auto-inst-vector t - "If true, when creating default ports with AUTOINST, use bus subscripts. + "Non-nil means when creating default ports with AUTOINST, use bus subscripts. If nil, skip the subscript when it matches the entire bus as declared in the module (AUTOWIRE signals always are subscripted, you must manually declare the wire to have the subscripts removed.) Setting this to nil may @@ -1115,6 +1127,12 @@ :type 'integer) (put 'verilog-auto-inst-column 'safe-local-variable 'integerp) +(defcustom verilog-auto-inst-interfaced-ports t + "Non-nil means include interfaced ports in AUTOINST expansions." + :group 'verilog-mode-auto + :type 'boolean) +(put 'verilog-auto-inst-interfaced-ports 'safe-local-variable 'verilog-booleanp) + (defcustom verilog-auto-input-ignore-regexp nil "If set, when creating AUTOINPUT list, ignore signals matching this regexp. See the \\[verilog-faq] for examples on using this." @@ -1136,11 +1154,18 @@ :type 'string) (put 'verilog-auto-output-ignore-regexp 'safe-local-variable 'stringp) +(defcustom verilog-auto-template-warn-unused nil + "Non-nil means report warning if an AUTO_TEMPLATE line is not used. +This feature is not supported before Emacs 21.1 or XEmacs 21.4." + :group 'verilog-mode-auto + :type 'boolean) +(put 'verilog-auto-template-warn-unused 'safe-local-variable 'verilog-booleanp) + (defcustom verilog-auto-tieoff-declaration "wire" - "Data type used for the declaration for AUTOTIEOFF. If \"wire\" then -create a wire, if \"assign\" create an assignment, else the data type for -variable creation." - :version "24.1" + "Data type used for the declaration for AUTOTIEOFF. +If \"wire\" then create a wire, if \"assign\" create an +assignment, else the data type for variable creation." + :version "24.1" ;; rev713 :group 'verilog-mode-auto :type 'string) (put 'verilog-auto-tieoff-declaration 'safe-local-variable 'stringp) @@ -1201,6 +1226,16 @@ :group 'verilog-mode-auto :type 'hook) +(defcustom verilog-before-save-font-hook nil + "Hook run before `verilog-save-font-mods' removes highlighting." + :group 'verilog-mode-auto + :type 'hook) + +(defcustom verilog-after-save-font-hook nil + "Hook run after `verilog-save-font-mods' restores highlighting." + :group 'verilog-mode-auto + :type 'hook) + (defvar verilog-imenu-generic-expression '((nil "^\\s-*\\(\\(m\\(odule\\|acromodule\\)\\)\\|primitive\\)\\s-+\\([a-zA-Z0-9_.:]+\\)" 4) ("*Vars*" "^\\s-*\\(reg\\|wire\\)\\s-+\\(\\|\\[[^]]+\\]\\s-+\\)\\([A-Za-z0-9_]+\\)" 3)) @@ -1430,6 +1465,8 @@ :help "Help on AUTOSENSE - sensitivity lists for always blocks"] ["AUTOTIEOFF" (describe-function 'verilog-auto-tieoff) :help "Help on AUTOTIEOFF - tying off unused outputs"] + ["AUTOUNDEF" (describe-function 'verilog-auto-undef) + :help "Help on AUTOUNDEF - undefine all local defines"] ["AUTOUNUSED" (describe-function 'verilog-auto-unused) :help "Help on AUTOUNUSED - terminating unused inputs"] ["AUTOWIRE" (describe-function 'verilog-auto-wire) @@ -1552,7 +1589,7 @@ FIXEDCASE and LITERAL as in `replace-match`. STRING is what to replace. The case (verilog-string-replace-matches \"o\" \"oo\" nil nil \"foobar\") will break, as the o's continuously replace. xa -> x works ok though." - ;; Hopefully soon to a emacs built-in + ;; Hopefully soon to an Emacs built-in ;; Also note \ in the replacement prevent multiple replacements; IE ;; (verilog-string-replace-matches "@" "\\\\([0-9]+\\\\)" nil nil "wire@_@") ;; Gives "wire\([0-9]+\)_@" not "wire\([0-9]+\)_\([0-9]+\)" @@ -2401,7 +2438,6 @@ "\\|\\(\\<`[ou]vm_[a-z_]+_begin\\>\\)" ;28 "\\|\\(\\<`vmm_[a-z_]+_member_begin\\>\\)" ;; - )) (defconst verilog-end-block-ordered-rry @@ -2629,11 +2665,11 @@ "endmodule" "endprimitive" "endinterface" "endpackage" "endprogram" "endclass" )))) (defconst verilog-disable-fork-re "\\(disable\\|wait\\)\\s-+fork\\>") -(defconst verilog-extended-case-re "\\(unique\\s-+\\|priority\\s-+\\)?case[xz]?") +(defconst verilog-extended-case-re "\\(\\(unique\\s-+\\|priority\\s-+\\)?case[xz]?\\)") (defconst verilog-extended-complete-re - (concat "\\(\\\\s-+\\)?virtual\\s-+\\|\\\\|\\\\)" - "\\|\\(\\\\s-+\\)*\\(\\\\|\\\\|\\\\)" - "\\|\\(\\\\s-+\\)?\"DPI-C\"\\s-+\\(function\\>\\|task\\>\\)" + (concat "\\(\\(\\\\s-+\\)?virtual\\s-+\\|\\\\|\\\\)\\)" + "\\|\\(\\(\\\\s-+\\)*\\(\\\\|\\\\|\\\\)\\)" + "\\|\\(\\(\\\\s-+\\)?\\(\"DPI-C\"\\s-+\\)?\\(\\\\s-+\\)?\\(function\\>\\|task\\>\\)\\)" "\\|" verilog-extended-case-re )) (defconst verilog-basic-complete-re (eval-when-compile @@ -2645,9 +2681,7 @@ )))) (defconst verilog-complete-reg (concat - verilog-extended-complete-re - "\\|" - verilog-basic-complete-re)) + verilog-extended-complete-re "\\|\\(" verilog-basic-complete-re "\\)")) (defconst verilog-end-statement-re (concat "\\(" verilog-beg-block-re "\\)\\|\\(" @@ -2764,7 +2798,8 @@ (defvar verilog-font-lock-keywords-3 nil "Gaudy level highlighting for Verilog mode. See also `verilog-font-lock-extra-types'.") -(defvar verilog-font-lock-translate-off-face + +(defvar verilog-font-lock-translate-off-face 'verilog-font-lock-translate-off-face "Font to use for translated off regions.") (defface verilog-font-lock-translate-off-face @@ -2842,8 +2877,8 @@ (verilog-pragma-keywords (eval-when-compile (verilog-regexp-opt - '("surefire" "synopsys" "rtl_synthesis" "verilint" "leda" "0in") nil - ))) + '("surefire" "auto" "synopsys" "rtl_synthesis" "verilint" "leda" "0in" + ) nil ))) (verilog-1800-2005-keywords (eval-when-compile @@ -2968,7 +3003,7 @@ (append verilog-font-lock-keywords-1 (list ;; Fontify pragmas - (concat "\\(//\\s-*" verilog-pragma-keywords "\\s-.*\\)") + (concat "\\(//\\s-*\\(" verilog-pragma-keywords "\\)\\s-.*\\)") ;; Fontify escaped names '("\\(\\\\\\S-*\\s-\\)" 0 font-lock-function-name-face) ;; Fontify macro definitions/ uses @@ -3030,6 +3065,31 @@ after-change-functions) (progn ,@body))) +(defvar verilog-save-font-mod-hooked nil + "Local variable when inside a `verilog-save-font-mods' block.") +(make-variable-buffer-local 'verilog-save-font-mod-hooked) + +(defmacro verilog-save-font-mods (&rest body) + "Execute BODY forms, disabling text modifications to allow performing BODY. +Includes temporary disabling of `font-lock' to restore the buffer +to full text form for parsing. Additional actions may be specified with +`verilog-before-save-font-hook' and `verilog-after-save-font-hook'." + ;; Before version 20, match-string with font-lock returns a + ;; vector that is not equal to the string. IE if on "input" + ;; nil==(equal "input" (progn (looking-at "input") (match-string 0))) + `(let* ((hooked (unless verilog-save-font-mod-hooked + (verilog-run-hooks 'verilog-before-save-font-hook) + t)) + (verilog-save-font-mod-hooked t) + (fontlocked (when (and (boundp 'font-lock-mode) font-lock-mode) + (font-lock-mode 0) + t))) + (unwind-protect + (progn ,@body) + ;; Unwind forms + (when fontlocked (font-lock-mode t)) + (when hooked (verilog-run-hooks 'verilog-after-save-font-hook))))) + ;; ;; Comment detection and caching @@ -3161,7 +3221,7 @@ (defun verilog-insert (&rest stuff) "Insert STUFF arguments, tracking for `verilog-inside-comment-or-string-p'. -Any insert that includes a comment must have the entire commente +Any insert that includes a comment must have the entire comment inserted using a single call to `verilog-insert'." (let ((pt (point))) (while stuff @@ -3565,9 +3625,10 @@ ;; Stuff for GNU Emacs (set (make-local-variable 'font-lock-defaults) - `((verilog-font-lock-keywords verilog-font-lock-keywords-1 - verilog-font-lock-keywords-2 - verilog-font-lock-keywords-3) + `((verilog-font-lock-keywords + verilog-font-lock-keywords-1 + verilog-font-lock-keywords-2 + verilog-font-lock-keywords-3) nil nil nil ,(if (functionp 'syntax-ppss) ;; verilog-beg-of-defun uses syntax-ppss, and syntax-ppss uses @@ -4049,7 +4110,7 @@ (if (looking-at verilog-label-re) (setq h (point)))) (goto-char h))) - ;; stop if we see a complete reg, perhaps an extended one + ;; stop if we see an extended complete reg, perhaps a complete one (and (looking-at verilog-complete-reg) (let* ((p (point))) @@ -4186,32 +4247,20 @@ nil))) (defun verilog-backward-up-list (arg) - "Like `backward-up-list', but deal with comments." + "Call `backward-up-list' ARG, ignoring comments." (let ((parse-sexp-ignore-comments t)) (backward-up-list arg))) (defun verilog-forward-sexp-cmt (arg) - "Call `forward-sexp', inside comments." + "Call `forward-sexp' ARG, inside comments." (let ((parse-sexp-ignore-comments nil)) (forward-sexp arg))) (defun verilog-forward-sexp-ign-cmt (arg) - "Call `forward-sexp', ignoring comments." + "Call `forward-sexp' ARG, ignoring comments." (let ((parse-sexp-ignore-comments t)) (forward-sexp arg))) -(defun verilog-in-struct-region-p () - "Return true if in a struct region. -More specifically, in a list after a struct|union keyword." - (interactive) - (save-excursion - (let* ((state (verilog-syntax-ppss)) - (depth (nth 0 state))) - (if depth - (progn (verilog-backward-up-list depth) - (verilog-beg-of-statement) - (looking-at "\\?\\s-*\\")))))) - (defun verilog-in-generate-region-p () "Return true if in a generate region. More specifically, after a generate and before an endgenerate." @@ -4658,10 +4707,10 @@ (cond ((match-end 5) ;; of verilog-end-block-ordered-re (setq reg "\\(\\\\)\\|\\(\\<\\(endfunction\\|task\\|\\(macro\\)?module\\|primitive\\)\\>\\)") - (setq name-re "\\w+\\s-*(") - ) + (setq name-re "\\w+\\s-*(")) ((match-end 6) ;; of verilog-end-block-ordered-re - (setq reg "\\(\\\\)\\|\\(\\<\\(endtask\\|function\\|\\(macro\\)?module\\|primitive\\)\\>\\)")) + (setq reg "\\(\\\\)\\|\\(\\<\\(endtask\\|function\\|\\(macro\\)?module\\|primitive\\)\\>\\)") + (setq name-re "\\w+\\s-*(")) ((match-end 7) ;; of verilog-end-block-ordered-re (setq reg "\\(\\<\\(macro\\)?module\\>\\)\\|\\")) ((match-end 8) ;; of verilog-end-block-ordered-re @@ -4977,25 +5026,24 @@ (compile compile-command)) (defun verilog-preprocess (&optional command filename) - "Preprocess the buffer, similar to `compile', but leave output in Verilog-Mode. + "Preprocess the buffer, similar to `compile', but put output in Verilog-Mode. Takes optional COMMAND or defaults to `verilog-preprocessor', and -FILENAME or defaults to `buffer-file-name`." +FILENAME to find directory to run in, or defaults to `buffer-file-name`." (interactive (list (let ((default (verilog-expand-command verilog-preprocessor))) (set (make-local-variable `verilog-preprocessor) - (read-from-minibuffer "Run Preprocessor (like this): " - default nil nil - 'verilog-preprocess-history default))))) + (read-from-minibuffer "Run Preprocessor (like this): " + default nil nil + 'verilog-preprocess-history default))))) (unless command (setq command (verilog-expand-command verilog-preprocessor))) (let* ((fontlocked (and (boundp 'font-lock-mode) font-lock-mode)) - (dir (file-name-directory (or filename buffer-file-name))) - (file (file-name-nondirectory (or filename buffer-file-name))) - (cmd (concat "cd " dir "; " command " " file))) + (dir (file-name-directory (or filename buffer-file-name))) + (cmd (concat "cd " dir "; " command))) (with-output-to-temp-buffer "*Verilog-Preprocessed*" (with-current-buffer (get-buffer "*Verilog-Preprocessed*") (insert (concat "// " cmd "\n")) - (shell-command cmd "*Verilog-Preprocessed*") + (call-process shell-file-name nil t nil shell-command-switch cmd) (verilog-mode) ;; Without this force, it takes a few idle seconds ;; to get the color, which is very jarring @@ -5006,17 +5054,30 @@ ;; Batch ;; +(defun verilog-warn (string &rest args) + "Print a warning with `format' using STRING and optional ARGS." + (apply 'message (concat "%%Warning: " string) args)) + +(defun verilog-warn-error (string &rest args) + "Call `error' using STRING and optional ARGS. +If `verilog-warn-fatal' is non-nil, call `verilog-warn' instead." + (if verilog-warn-fatal + (apply 'error string args) + (apply 'verilog-warn string args))) + (defmacro verilog-batch-error-wrapper (&rest body) "Execute BODY and add error prefix to any errors found. This lets programs calling batch mode to easily extract error messages." - `(condition-case err - (progn ,@body) - (error - (error "%%Error: %s%s" (error-message-string err) - (if (featurep 'xemacs) "\n" ""))))) ;; XEmacs forgets to add a newline + `(let ((verilog-warn-fatal nil)) + (condition-case err + (progn ,@body) + (error + (error "%%Error: %s%s" (error-message-string err) + (if (featurep 'xemacs) "\n" "")))))) ;; XEmacs forgets to add a newline (defun verilog-batch-execute-func (funref &optional no-save) - "Internal processing of a batch command, running FUNREF on all command arguments. + "Internal processing of a batch command. +Runs FUNREF on all command arguments. Save the result unless optional NO-SAVE is t." (verilog-batch-error-wrapper ;; Setting global variables like that is *VERY NASTY* !!! --Stef @@ -5088,7 +5149,7 @@ (verilog-batch-execute-func `verilog-inject-auto)) (defun verilog-batch-indent () - "For use with --batch, reindent an a entire file as a stand-alone tool. + "For use with --batch, reindent an entire file as a stand-alone tool. This sets up the appropriate Verilog mode environment, calls \\[verilog-indent-buffer] on all command-line files, and saves the buffers." (unless noninteractive @@ -5219,7 +5280,7 @@ (verilog-beg-of-statement) ;; doesn't get to beginning (if (looking-at verilog-property-re) (throw 'nesting 'statement) ; We don't need an endproperty for these - (throw 'nesting 'block) ;We still need a endproperty + (throw 'nesting 'block) ;We still need an endproperty )) (t ; endblock ; try to leap back to matching outward block by striding across @@ -5312,7 +5373,6 @@ (t (setq depth (verilog-current-indent-level))))) (message "You are at nesting %s depth %d" type depth)))) - (defun verilog-calc-1 () (catch 'nesting (let ((re (concat "\\({\\|}\\|" verilog-indent-re "\\)"))) @@ -5370,9 +5430,10 @@ ; endfunction (verilog-beg-of-statement) (if (looking-at verilog-beg-block-re-ordered) - (throw 'nesting 'block) - (throw 'nesting 'defun))) + (throw 'nesting 'block) + (throw 'nesting 'defun))) + ;; ((looking-at "\\") ; *sigh* ; {assert|assume|cover} property (); are complete @@ -5382,7 +5443,7 @@ (verilog-beg-of-statement) (if (looking-at verilog-property-re) (throw 'continue 'statement) ; We don't need an endproperty for these - (throw 'nesting 'block) ;We still need a endproperty + (throw 'nesting 'block) ;We still need an endproperty )) (t (throw 'nesting 'block)))) @@ -5715,7 +5776,7 @@ (forward-comment (- (buffer-size)))) (defun verilog-backward-syntactic-ws-quick () - "As with `verilog-backward-syntactic-ws' but uses `verilog-scan' cache." + "As with `verilog-backward-syntactic-ws' but use `verilog-scan' cache." (while (cond ((bobp) nil) ; Done ((> (skip-syntax-backward " ") 0) @@ -5864,7 +5925,7 @@ (defun verilog-in-paren-quick () "Return true if in a parenthetical expression. -Always starts from point-min, to allow inserts with hooks disabled." +Always starts from `point-min', to allow inserts with hooks disabled." ;; The -quick refers to its use alongside the other -quick functions, ;; not that it's likely to be faster than verilog-in-paren. (let ((state (save-excursion (parse-partial-sexp (point-min) (point))))) @@ -6118,7 +6179,7 @@ (indent-line-to val) (if (and (not verilog-indent-lists) (verilog-in-paren)) - (verilog-pretty-declarations)) + (verilog-pretty-declarations-auto)) )) ((= (preceding-char) ?\) ) (goto-char here) @@ -6154,7 +6215,7 @@ (looking-at verilog-declaration-re)))) (indent-line-to val) (if decl - (verilog-pretty-declarations)))) + (verilog-pretty-declarations-auto)))) (;-- Handle the ends (or @@ -6285,6 +6346,12 @@ ;; +(defun verilog-pretty-declarations-auto (&optional quiet) + "Call `verilog-pretty-declarations' QUIET based on `verilog-auto-lineup'." + (when (or (eq 'all verilog-auto-lineup) + (eq 'declarations verilog-auto-lineup)) + (verilog-pretty-declarations quiet))) + (defun verilog-pretty-declarations (&optional quiet) "Line up declarations around point. Be verbose about progress unless optional QUIET set." @@ -6431,100 +6498,101 @@ (interactive) (if (not (verilog-in-comment-or-string-p)) (save-excursion - (let ((rexp (concat "^\\s-*" verilog-complete-reg))) - (beginning-of-line) - (if (and (not (looking-at rexp )) - (looking-at verilog-assignment-operation-re) - (save-excursion - (goto-char (match-end 2)) - (and (not (verilog-in-attribute-p)) - (not (verilog-in-parameter-p)) - (not (verilog-in-comment-or-string-p))))) - (let* ((here (point)) - (e) (r) - (start - (progn - (beginning-of-line) - (setq e (point)) - (verilog-backward-syntactic-ws) - (beginning-of-line) - (while (and (not (looking-at rexp )) - (looking-at verilog-assignment-operation-re) - (not (bobp)) - ) - (setq e (point)) - (verilog-backward-syntactic-ws) - (beginning-of-line) - ) ;Ack, need to grok `define - e)) - (end - (progn - (goto-char here) - (end-of-line) - (setq e (point)) ;Might be on last line - (verilog-forward-syntactic-ws) - (beginning-of-line) - (while (and - (not (looking-at rexp )) - (looking-at verilog-assignment-operation-re) - (progn - (end-of-line) - (not (eq e (point))))) - (setq e (point)) - (verilog-forward-syntactic-ws) - (beginning-of-line) - ) - e)) - (endpos (set-marker (make-marker) end)) - (ind) - ) - (goto-char start) - (verilog-do-indent (verilog-calculate-indent)) - (if (and (not quiet) - (> (- end start) 100)) - (message "Lining up expressions..(please stand by)")) - - ;; Set indent to minimum throughout region - (while (< (point) (marker-position endpos)) - (beginning-of-line) - (verilog-just-one-space verilog-assignment-operation-re) - (beginning-of-line) - (verilog-do-indent (verilog-calculate-indent)) - (end-of-line) - (verilog-forward-syntactic-ws) - ) - - ;; Now find biggest prefix - (setq ind (verilog-get-lineup-indent-2 verilog-assignment-operation-re start endpos)) - - ;; Now indent each line. - (goto-char start) - (while (progn (setq e (marker-position endpos)) - (setq r (- e (point))) - (> r 0)) - (setq e (point)) - (if (not quiet) (message "%d" r)) - (cond - ((looking-at verilog-assignment-operation-re) - (goto-char (match-beginning 2)) - (if (not (or (verilog-in-parenthesis-p) ;; leave attributes and comparisons alone - (verilog-in-coverage-p))) - (if (eq (char-after) ?=) - (indent-to (1+ ind)) ; line up the = of the <= with surrounding = - (indent-to ind) - )) - ) - ((verilog-continued-line-1 start) - (goto-char e) - (indent-line-to ind)) - (t ; Must be comment or white space - (goto-char e) - (verilog-forward-ws&directives) - (forward-line -1)) - ) - (forward-line 1)) - (unless quiet (message "")) - )))))) + (let ( (rexp (concat "^\\s-*" verilog-complete-reg)) + (rexp1 (concat "^\\s-*" verilog-basic-complete-re))) + (beginning-of-line) + (if (and (not (looking-at rexp )) + (looking-at verilog-assignment-operation-re) + (save-excursion + (goto-char (match-end 2)) + (and (not (verilog-in-attribute-p)) + (not (verilog-in-parameter-p)) + (not (verilog-in-comment-or-string-p))))) + (let* ((here (point)) + (e) (r) + (start + (progn + (beginning-of-line) + (setq e (point)) + (verilog-backward-syntactic-ws) + (beginning-of-line) + (while (and (not (looking-at rexp1)) + (looking-at verilog-assignment-operation-re) + (not (bobp)) + ) + (setq e (point)) + (verilog-backward-syntactic-ws) + (beginning-of-line) + ) ;Ack, need to grok `define + e)) + (end + (progn + (goto-char here) + (end-of-line) + (setq e (point)) ;Might be on last line + (verilog-forward-syntactic-ws) + (beginning-of-line) + (while (and + (not (looking-at rexp1 )) + (looking-at verilog-assignment-operation-re) + (progn + (end-of-line) + (not (eq e (point))))) + (setq e (point)) + (verilog-forward-syntactic-ws) + (beginning-of-line) + ) + e)) + (endpos (set-marker (make-marker) end)) + (ind) + ) + (goto-char start) + (verilog-do-indent (verilog-calculate-indent)) + (if (and (not quiet) + (> (- end start) 100)) + (message "Lining up expressions..(please stand by)")) + + ;; Set indent to minimum throughout region + (while (< (point) (marker-position endpos)) + (beginning-of-line) + (verilog-just-one-space verilog-assignment-operation-re) + (beginning-of-line) + (verilog-do-indent (verilog-calculate-indent)) + (end-of-line) + (verilog-forward-syntactic-ws) + ) + + ;; Now find biggest prefix + (setq ind (verilog-get-lineup-indent-2 verilog-assignment-operation-re start endpos)) + + ;; Now indent each line. + (goto-char start) + (while (progn (setq e (marker-position endpos)) + (setq r (- e (point))) + (> r 0)) + (setq e (point)) + (if (not quiet) (message "%d" r)) + (cond + ((looking-at verilog-assignment-operation-re) + (goto-char (match-beginning 2)) + (if (not (or (verilog-in-parenthesis-p) ;; leave attributes and comparisons alone + (verilog-in-coverage-p))) + (if (eq (char-after) ?=) + (indent-to (1+ ind)) ; line up the = of the <= with surrounding = + (indent-to ind) + )) + ) + ((verilog-continued-line-1 start) + (goto-char e) + (indent-line-to ind)) + (t ; Must be comment or white space + (goto-char e) + (verilog-forward-ws&directives) + (forward-line -1)) + ) + (forward-line 1)) + (unless quiet (message "")) + )))))) (defun verilog-just-one-space (myre) "Remove extra spaces around regular expression MYRE." @@ -7365,6 +7433,7 @@ ;; ;; Elements of a signal list +;; Unfortunately we use 'assoc' on this, so can't be a vector (defsubst verilog-sig-new (name bits comment mem enum signed type multidim modport) (list name bits comment mem enum signed type multidim modport)) (defsubst verilog-sig-name (sig) @@ -7381,6 +7450,8 @@ (nth 5 sig)) (defsubst verilog-sig-type (sig) (nth 6 sig)) +(defsubst verilog-sig-type-set (sig type) + (setcar (nthcdr 6 sig) type)) (defsubst verilog-sig-multidim (sig) (nth 7 sig)) (defsubst verilog-sig-multidim-string (sig) @@ -7396,17 +7467,17 @@ (verilog-make-width-expression (verilog-sig-bits sig))) (defsubst verilog-alw-new (outputs-del outputs-imm temps inputs) - (list outputs-del outputs-imm temps inputs)) + (vector outputs-del outputs-imm temps inputs)) (defsubst verilog-alw-get-outputs-delayed (sigs) - (nth 0 sigs)) + (aref sigs 0)) (defsubst verilog-alw-get-outputs-immediate (sigs) - (nth 1 sigs)) + (aref sigs 1)) (defsubst verilog-alw-get-temps (sigs) - (nth 2 sigs)) + (aref sigs 2)) (defsubst verilog-alw-get-inputs (sigs) - (nth 3 sigs)) + (aref sigs 3)) (defsubst verilog-alw-get-uses-delayed (sigs) - (nth 0 sigs)) + (aref sigs 0)) (defsubst verilog-modi-new (name fob pt type) (vector name fob pt type)) @@ -7459,6 +7530,11 @@ (defsubst verilog-subdecls-get-interfaced (subdecls) (aref subdecls 4)) +(defun verilog-signals-from-signame (signame-list) + "Return signals in standard form from SIGNAME-LIST, a simple list of names." + (mapcar (lambda (name) (verilog-sig-new name nil nil nil nil nil nil nil nil)) + signame-list)) + (defun verilog-signals-not-in (in-list not-list) "Return list of signals in IN-LIST that aren't also in NOT-LIST. Also remove any duplicates in IN-LIST. @@ -7471,17 +7547,17 @@ (puthash (car (car not-list)) t ht) (setq not-list (cdr not-list))) (while in-list - (when (not (gethash (car (car in-list)) ht)) + (when (not (gethash (verilog-sig-name (car in-list)) ht)) (setq out-list (cons (car in-list) out-list)) - (puthash (car (car in-list)) t ht)) + (puthash (verilog-sig-name (car in-list)) t ht)) (setq in-list (cdr in-list))) (nreverse out-list))) ;; Slower Fallback if no hash tables (pre Emacs 21.1/XEmacs 21.4) (t (let (out-list) (while in-list - (if (not (or (assoc (car (car in-list)) not-list) - (assoc (car (car in-list)) out-list))) + (if (not (or (assoc (verilog-sig-name (car in-list)) not-list) + (assoc (verilog-sig-name (car in-list)) out-list))) (setq out-list (cons (car in-list) out-list))) (setq in-list (cdr in-list))) (nreverse out-list))))) @@ -7499,13 +7575,22 @@ (defun verilog-signals-sort-compare (a b) "Compare signal A and B for sorting." - (string< (car a) (car b))) + (string< (verilog-sig-name a) (verilog-sig-name b))) (defun verilog-signals-not-params (in-list) "Return list of signals in IN-LIST that aren't parameters or numeric constants." (let (out-list) (while in-list - (unless (boundp (intern (concat "vh-" (car (car in-list))))) + (unless (boundp (intern (concat "vh-" (verilog-sig-name (car in-list))))) + (setq out-list (cons (car in-list) out-list))) + (setq in-list (cdr in-list))) + (nreverse out-list))) + +(defun verilog-signals-with (func in-list) + "Return IN-LIST with only signals where FUNC passed each signal is true." + (let (out-list) + (while in-list + (when (funcall func (car in-list)) (setq out-list (cons (car in-list) out-list))) (setq in-list (cdr in-list))) (nreverse out-list))) @@ -7594,20 +7679,67 @@ ;; out-list)) -(defun verilog-sig-tieoff (sig &optional no-width) +(defun verilog-sig-tieoff (sig) "Return tieoff expression for given SIG, with appropriate width. -Ignore width if optional NO-WIDTH is set." - (let* ((width (if no-width nil (verilog-sig-width sig)))) - (concat - (if (and verilog-active-low-regexp - (string-match verilog-active-low-regexp (verilog-sig-name sig))) - "~" "") - (cond ((not width) - "0") - ((string-match "^[0-9]+$" width) - (concat width (if (verilog-sig-signed sig) "'sh0" "'h0"))) - (t - (concat "{" width "{1'b0}}")))))) +Tieoff value uses `verilog-active-low-regexp' and +`verilog-auto-reset-widths'." + (concat + (if (and verilog-active-low-regexp + (string-match verilog-active-low-regexp (verilog-sig-name sig))) + "~" "") + (cond ((not verilog-auto-reset-widths) + "0") + ((equal verilog-auto-reset-widths 'unbased) + "'0") + ;; Else presume verilog-auto-reset-widths is true + (t + (let* ((width (verilog-sig-width sig))) + (if (string-match "^[0-9]+$" width) + (concat width (if (verilog-sig-signed sig) "'sh0" "'h0")) + (concat "{" width "{1'b0}}"))))))) + +;; +;; Dumping +;; + +(defun verilog-decls-princ (decls) + "For debug, dump the `verilog-read-decls' structure DECLS." + (verilog-signals-princ (verilog-decls-get-outputs decls) + "Outputs:\n" " ") + (verilog-signals-princ (verilog-decls-get-inouts decls) + "Inout:\n" " ") + (verilog-signals-princ (verilog-decls-get-inputs decls) + "Inputs:\n" " ") + (verilog-signals-princ (verilog-decls-get-vars decls) + "Vars:\n" " ") + (verilog-signals-princ (verilog-decls-get-assigns decls) + "Assigns:\n" " ") + (verilog-signals-princ (verilog-decls-get-consts decls) + "Consts:\n" " ") + (verilog-signals-princ (verilog-decls-get-gparams decls) + "Gparams:\n" " ") + (verilog-signals-princ (verilog-decls-get-interfaces decls) + "Interfaces:\n" " ") + (princ "\n")) + +(defun verilog-signals-princ (signals &optional header prefix) + "For debug, dump internal SIGNALS structures, with HEADER and PREFIX." + (when signals + (princ header) + (while signals + (let ((sig (car signals))) + (setq signals (cdr signals)) + (princ prefix) + (princ "\"") (princ (verilog-sig-name sig)) (princ "\"") + (princ " bits=") (princ (verilog-sig-bits sig)) + (princ " cmt=") (princ (verilog-sig-comment sig)) + (princ " mem=") (princ (verilog-sig-memory sig)) + (princ " enum=") (princ (verilog-sig-enum sig)) + (princ " sign=") (princ (verilog-sig-signed sig)) + (princ " type=") (princ (verilog-sig-type sig)) + (princ " dim=") (princ (verilog-sig-multidim sig)) + (princ " modp=") (princ (verilog-sig-modport sig)) + (princ "\n"))))) ;; ;; Port/Wire/Etc Reading @@ -7701,7 +7833,7 @@ (let ((olist)) (save-excursion ;; /*AUTOPUNT("parameter", "parameter")*/ - (search-backward "(") + (backward-sexp 1) (while (looking-at "(?\\s *\"\\([^\"]*\\)\"\\s *,?") (setq olist (cons (match-string 1) olist)) (goto-char (match-end 0)))) @@ -7716,10 +7848,10 @@ (defun verilog-read-decls () "Compute signal declaration information for the current module at point. -Return a array of [outputs inouts inputs wire reg assign const]." +Return an array of [outputs inouts inputs wire reg assign const]." (let ((end-mod-point (or (verilog-get-end-of-defun t) (point-max))) (functask 0) (paren 0) (sig-paren 0) (v2kargs-ok t) - in-modport ign-prop + in-modport ptype ign-prop sigs-in sigs-out sigs-inout sigs-var sigs-assign sigs-const sigs-gparam sigs-intf vec expect-signal keywd newsig rvalue enum io signed typedefed multidim @@ -7731,13 +7863,13 @@ ;;(if dbg (setq dbg (concat dbg (format "Pt %s Vec %s C%c Kwd'%s'\n" (point) vec (following-char) keywd)))) (cond ((looking-at "//") - (if (looking-at "[^\n]*synopsys\\s +enum\\s +\\([a-zA-Z0-9_]+\\)") - (setq enum (match-string 1))) + (if (looking-at "[^\n]*\\(auto\\|synopsys\\)\\s +enum\\s +\\([a-zA-Z0-9_]+\\)") + (setq enum (match-string 2))) (search-forward "\n")) ((looking-at "/\\*") (forward-char 2) - (if (looking-at "[^\n]*synopsys\\s +enum\\s +\\([a-zA-Z0-9_]+\\)") - (setq enum (match-string 1))) + (if (looking-at "[^\n]*\\(auto\\|synopsys\\)\\s +enum\\s +\\([a-zA-Z0-9_]+\\)") + (setq enum (match-string 2))) (or (search-forward "*/") (error "%s: Unmatched /* */, at char %d" (verilog-point-text) (point)))) ((looking-at "(\\*") @@ -7795,33 +7927,49 @@ (when (string-match "^\\\\" (match-string 1)) (setq keywd (concat keywd " ")))) ;; Escaped ID needs space at end (cond ((equal keywd "input") - (setq vec nil enum nil rvalue nil newsig nil signed nil typedefed nil multidim nil sig-paren paren - expect-signal 'sigs-in io t modport nil)) + (setq vec nil enum nil rvalue nil newsig nil signed nil + typedefed nil multidim nil ptype nil modport nil + expect-signal 'sigs-in io t sig-paren paren)) ((equal keywd "output") - (setq vec nil enum nil rvalue nil newsig nil signed nil typedefed nil multidim nil sig-paren paren - expect-signal 'sigs-out io t modport nil)) + (setq vec nil enum nil rvalue nil newsig nil signed nil + typedefed nil multidim nil ptype nil modport nil + expect-signal 'sigs-out io t sig-paren paren)) ((equal keywd "inout") - (setq vec nil enum nil rvalue nil newsig nil signed nil typedefed nil multidim nil sig-paren paren - expect-signal 'sigs-inout io t modport nil)) + (setq vec nil enum nil rvalue nil newsig nil signed nil + typedefed nil multidim nil ptype nil modport nil + expect-signal 'sigs-inout io t sig-paren paren)) ((equal keywd "parameter") - (setq vec nil enum nil rvalue nil signed nil typedefed nil multidim nil sig-paren paren - expect-signal 'sigs-gparam io t modport nil)) - ((member keywd '("wire" - "tri" "tri0" "tri1" "triand" "trior" "wand" "wor" - "reg" "trireg" + (setq vec nil enum nil rvalue nil signed nil + typedefed nil multidim nil ptype nil modport nil + expect-signal 'sigs-gparam io t sig-paren paren)) + ((member keywd '("wire" "reg" ; Fast + ;; net_type + "tri" "tri0" "tri1" "triand" "trior" "trireg" + "uwire" "wand" "wor" + ;; integer_atom_type "byte" "shortint" "int" "longint" "integer" "time" + "supply0" "supply1" + ;; integer_vector_type - "reg" above "bit" "logic" + ;; non_integer_type "shortreal" "real" "realtime" + ;; data_type "string" "event" "chandle")) - (unless io (setq vec nil enum nil rvalue nil signed nil typedefed nil multidim nil sig-paren paren - expect-signal 'sigs-var modport nil))) + (cond (io + (setq typedefed + (if typedefed (concat typedefed " " keywd) keywd))) + (t (setq vec nil enum nil rvalue nil signed nil + typedefed nil multidim nil sig-paren paren + expect-signal 'sigs-var modport nil)))) ((equal keywd "assign") - (setq vec nil enum nil rvalue nil signed nil typedefed nil multidim nil sig-paren paren - expect-signal 'sigs-assign modport nil)) - ((member keywd '("supply0" "supply1" "supply" - "localparam" "genvar")) - (unless io (setq vec nil enum nil rvalue nil signed nil typedefed nil multidim nil sig-paren paren - expect-signal 'sigs-const modport nil))) + (setq vec nil enum nil rvalue nil signed nil + typedefed nil multidim nil ptype nil modport nil + expect-signal 'sigs-assign sig-paren paren)) + ((member keywd '("localparam" "genvar")) + (unless io + (setq vec nil enum nil rvalue nil signed nil + typedefed nil multidim nil ptype nil modport nil + expect-signal 'sigs-const sig-paren paren))) ((member keywd '("signed" "unsigned")) (setq signed keywd)) ((member keywd '("assert" "assume" "cover" "expect" "restrict")) @@ -7835,11 +7983,14 @@ (setq functask (1- functask))) ((equal keywd "modport") (setq in-modport t)) + ((equal keywd "type") + (setq ptype t)) ;; Ifdef? Ignore name of define ((member keywd '("`ifdef" "`ifndef" "`elsif")) (setq rvalue t)) ;; Type? - ((verilog-typedef-name-p keywd) + ((unless ptype + (verilog-typedef-name-p keywd)) (setq typedefed keywd)) ;; Interface with optional modport in v2k arglist? ;; Skip over parsing modport, and take the interface name as the type @@ -7848,8 +7999,10 @@ (not rvalue) (looking-at "\\s-*\\(\\.\\(\\s-*[a-zA-Z`_$][a-zA-Z0-9`_$]*\\)\\|\\)\\s-*[a-zA-Z`_$][a-zA-Z0-9`_$]*")) (when (match-end 2) (goto-char (match-end 2))) - (setq vec nil enum nil rvalue nil newsig nil signed nil typedefed keywd multidim nil sig-paren paren - expect-signal 'sigs-intf io t modport (match-string 2))) + (setq vec nil enum nil rvalue nil signed nil + typedefed keywd multidim nil ptype nil modport (match-string 2) + newsig nil sig-paren paren + expect-signal 'sigs-intf io t )) ;; Ignore dotted LHS assignments: "assign foo.bar = z;" ((looking-at "\\s-*\\.") (goto-char (match-end 0)) @@ -7888,7 +8041,7 @@ (eval-when-compile ;; Prevent compile warnings; these are let's, not globals ;; Do not remove the eval-when-compile - ;; - we want a error when we are debugging this code if they are refed. + ;; - we want an error when we are debugging this code if they are refed. (defvar sigs-in) (defvar sigs-inout) (defvar sigs-out) @@ -7918,7 +8071,8 @@ (verilog-sig-memory portdata) nil (verilog-sig-signed portdata) - (verilog-sig-type portdata) + (unless (member (verilog-sig-type portdata) '("wire" "reg")) + (verilog-sig-type portdata)) multidim nil) sigs-inout))) ((or (setq portdata (assoc port (verilog-decls-get-outputs submoddecls))) @@ -7931,7 +8085,13 @@ (verilog-sig-memory portdata) nil (verilog-sig-signed portdata) - (verilog-sig-type portdata) + ;; Though ok in SV, in V2K code, propagating the + ;; "reg" in "output reg" upwards isn't legal. + ;; Also for backwards compatibility we don't propagate + ;; "input wire" upwards. + ;; See also `verilog-signals-edit-wire-reg'. + (unless (member (verilog-sig-type portdata) '("wire" "reg")) + (verilog-sig-type portdata)) multidim nil) sigs-out))) ((or (setq portdata (assoc port (verilog-decls-get-inputs submoddecls))) @@ -7944,7 +8104,8 @@ (verilog-sig-memory portdata) nil (verilog-sig-signed portdata) - (verilog-sig-type portdata) + (unless (member (verilog-sig-type portdata) '("wire" "reg")) + (verilog-sig-type portdata)) multidim nil) sigs-in))) ((setq portdata (assoc port (verilog-decls-get-interfaces submoddecls))) @@ -8110,9 +8271,9 @@ (defun verilog-read-sub-decls () "Internally parse signals going to modules under this module. -Return a array of [ outputs inouts inputs ] signals for modules that are +Return an array of [ outputs inouts inputs ] signals for modules that are instantiated in this module. For example if declare A A (.B(SIG)) and SIG -is a output, then SIG will be included in the list. +is an output, then SIG will be included in the list. This only works on instantiations created with /*AUTOINST*/ converted by \\[verilog-auto-inst]. Otherwise, it would have to read in the whole @@ -8245,7 +8406,7 @@ (setq verilog-cache-has-lisp (re-search-forward "\\" end-pt t) + (goto-char (point-min))) + (while (verilog-re-search-forward-quick + "`\\(define\\|undef\\)\\s-*\\([a-zA-Z_][a-zA-Z_0-9]*\\)" end-pt t) + (cond ((equal (match-string-no-properties 1) "define") + (setq def (match-string-no-properties 2)) + (when (and (or (not regexp) + (string-match regexp def)) + (not (member def defs))) ;; delete-dups not in 21.1 + (setq defs (cons def defs)))) + (t + (setq defs (delete (match-string-no-properties 2) defs)))))) + ;; Insert + (setq defs (sort defs 'string<)) + (when defs + (forward-line 1) + (verilog-insert-indent "// Beginning of automatic undefs\n") + (while defs + (verilog-insert-indent "`undef " (car defs) "\n") + (setq defs (cdr defs))) + (verilog-insert-indent "// End of automatics\n"))))) + (defun verilog-auto-unused () "Expand AUTOUNUSED statements, as part of \\[verilog-auto]. Replace the /*AUTOUNUSED*/ comment with a comma separated list of all unused @@ -11981,17 +12256,17 @@ (defun verilog-auto-ascii-enum () "Expand AUTOASCIIENUM statements, as part of \\[verilog-auto]. -Create a register to contain the ASCII decode of a enumerated signal type. +Create a register to contain the ASCII decode of an enumerated signal type. This will allow trace viewers to show the ASCII name of states. -First, parameters are built into a enumeration using the synopsys enum +First, parameters are built into an enumeration using the synopsys enum comment. The comment must be between the keyword and the symbol. \(Annoying, but that's what Synopsys's dc_shell FSM reader requires.) Next, registers which that enum applies to are also tagged with the same enum. -Finally, a AUTOASCIIENUM command is used. +Finally, an AUTOASCIIENUM command is used. The first parameter is the name of the signal to be decoded. @@ -12001,17 +12276,19 @@ tell viewers like Dinotrace to display in ASCII format. The third optional parameter is a string which will be removed - from the state names. It defaults to "" which removes nothing. + from the state names. It defaults to \"\" which removes nothing. The fourth optional parameter is \"onehot\" to force one-hot - decoding. If unspecified, if and only if the first parameter + decoding. If unspecified, if and only if the first parameter width is 2^(number of states in enum) and does NOT match the - width of the enum, the signal is assumed to be a one hot + width of the enum, the signal is assumed to be a one-hot decode. Otherwise, it's a normal encoded state vector. `verilog-auto-wire-type' may be used to change the datatype of the declarations. + \"auto enum\" may be used in place of \"synopsys enum\". + An example: //== State enumeration @@ -12066,7 +12343,7 @@ (undecode-sig (or (assoc undecode-name sig-list-all) (error "%s: Signal %s not found in design" (verilog-point-text) undecode-name))) (undecode-enum (or (verilog-sig-enum undecode-sig) - (error "%s: Signal %s does not have a enum tag" (verilog-point-text) undecode-name))) + (error "%s: Signal %s does not have an enum tag" (verilog-point-text) undecode-name))) ;; (enum-sigs (verilog-signals-not-in (or (verilog-signals-matching-enum sig-list-consts undecode-enum) @@ -12159,12 +12436,39 @@ (string-to-number (match-string 2))))) t t)))) +(defun verilog-auto-template-lint () + "Check AUTO_TEMPLATEs for unused lines. +Enable with `verilog-auto-template-warn-unused'." + (let ((name1 (or (buffer-file-name) (buffer-name)))) + (save-excursion + (goto-char (point-min)) + (while (re-search-forward + "^\\s-*/?\\*?\\s-*[a-zA-Z0-9`_$]+\\s-+AUTO_TEMPLATE" nil t) + (let* ((tpl-info (verilog-read-auto-template-middle)) + (tpl-list (aref tpl-info 1)) + (tlines (append (nth 0 tpl-list) (nth 1 tpl-list))) + tpl-ass) + (while tlines + (setq tpl-ass (car tlines) + tlines (cdr tlines)) + ;;; + (unless (or (not (eval-when-compile (fboundp 'make-hash-table))) ;; Not supported, no warning + (not verilog-auto-template-hits) + (gethash (vector (nth 2 tpl-ass) (nth 3 tpl-ass)) + verilog-auto-template-hits)) + (verilog-warn-error "%s:%d: AUTO_TEMPLATE line unused: \".%s (%s)\"" + name1 + (+ (elt tpl-ass 3) ;; Template line number + (count-lines (point-min) (point))) + (elt tpl-ass 0) (elt tpl-ass 1)) + ))))))) + ;; ;; Auto top level ;; -(defun verilog-auto (&optional inject) ; Use verilog-inject-auto instead of passing a arg +(defun verilog-auto (&optional inject) ; Use verilog-inject-auto instead of passing an arg "Expand AUTO statements. Look for any /*AUTO...*/ commands in the code, as used in instantiations or argument headers. Update the list of signals @@ -12219,6 +12523,7 @@ `verilog-auto-reset' for AUTORESET flop resets `verilog-auto-sense' for AUTOSENSE always sensitivity lists `verilog-auto-tieoff' for AUTOTIEOFF output tieoffs + `verilog-auto-undef' for AUTOUNDEF `undef of local `defines `verilog-auto-unused' for AUTOUNUSED unused inputs/inouts `verilog-auto-wire' for AUTOWIRE instantiation wires @@ -12232,21 +12537,15 @@ (unless noninteractive (message "Updating AUTOs...")) (if (fboundp 'dinotrace-unannotate-all) (dinotrace-unannotate-all)) - (let ((oldbuf (if (not (buffer-modified-p)) - (buffer-string))) - ;; Before version 20, match-string with font-lock returns a - ;; vector that is not equal to the string. IE if on "input" - ;; nil==(equal "input" (progn (looking-at "input") (match-string 0))) - (fontlocked (when (and (boundp 'font-lock-mode) - font-lock-mode) - (font-lock-mode 0) - t)) - ;; Cache directories; we don't write new files, so can't change - (verilog-dir-cache-preserving t) - ;; Cache current module - (verilog-modi-cache-current-enable t) - (verilog-modi-cache-current-max (point-min)) ; IE it's invalid - verilog-modi-cache-current) + (verilog-save-font-mods + (let ((oldbuf (if (not (buffer-modified-p)) + (buffer-string))) + ;; Cache directories; we don't write new files, so can't change + (verilog-dir-cache-preserving t) + ;; Cache current module + (verilog-modi-cache-current-enable t) + (verilog-modi-cache-current-max (point-min)) ; IE it's invalid + verilog-modi-cache-current) (unwind-protect ;; Disable change hooks for speed ;; This let can't be part of above let; must restore @@ -12257,6 +12556,8 @@ ;; Wipe cache; otherwise if we AUTOed a block above this one, ;; we'll misremember we have generated IOs, confusing AUTOOUTPUT (setq verilog-modi-cache-list nil) + ;; Local state + (setq verilog-auto-template-hits nil) ;; If we're not in verilog-mode, change syntax table so parsing works right (unless (eq major-mode `verilog-mode) (verilog-mode)) ;; Allow user to customize @@ -12272,6 +12573,8 @@ (when verilog-auto-read-includes (verilog-read-includes) (verilog-read-defines nil nil t)) + ;; Setup variables due to SystemVerilog expansion + (verilog-auto-re-search-do "/\\*AUTOLOGIC\\*/" 'verilog-auto-logic-setup) ;; This particular ordering is important ;; INST: Lower modules correct, no internal dependencies, FIRST (verilog-preserve-modi-cache @@ -12284,7 +12587,7 @@ (verilog-inject-arg)) ;; ;; Do user inserts first, so their code can insert AUTOs - ;; We may provide a AUTOINSERTLISPLAST if another cleanup pass is needed + ;; We may provide an AUTOINSERTLISPLAST if another cleanup pass is needed (verilog-auto-re-search-do "/\\*AUTOINSERTLISP(.*?)\\*/" 'verilog-auto-insert-lisp) ;; Expand instances before need the signals the instances input/output @@ -12313,6 +12616,8 @@ (verilog-auto-re-search-do "/\\*AUTOINOUT\\*/" 'verilog-auto-inout) ;; Then tie off those in/outs (verilog-auto-re-search-do "/\\*AUTOTIEOFF\\*/" 'verilog-auto-tieoff) + ;; These can be anywhere after AUTOINSERTLISP + (verilog-auto-re-search-do "/\\*AUTOUNDEF\\((\"[^\"]*\")\\)?\\*/" 'verilog-auto-undef) ;; Wires/regs must be after inputs/outputs (verilog-auto-re-search-do "/\\*AUTOLOGIC\\*/" 'verilog-auto-logic) (verilog-auto-re-search-do "/\\*AUTOWIRE\\*/" 'verilog-auto-wire) @@ -12326,7 +12631,9 @@ (verilog-auto-re-search-do "/\\*AUTOARG\\*/" 'verilog-auto-arg) ;; Fix line numbers (comments only) (when verilog-auto-inst-template-numbers - (verilog-auto-templated-rel)))) + (verilog-auto-templated-rel)) + (when verilog-auto-template-warn-unused + (verilog-auto-template-lint)))) ;; (verilog-run-hooks 'verilog-auto-hook) ;; @@ -12343,9 +12650,8 @@ ;; End of after-change protection ))) ;; Unwind forms - (progn - ;; Restore font-lock - (when fontlocked (font-lock-mode t)))))) + ;; Currently handled in verilog-save-font-mods + )))) ;; @@ -12650,7 +12956,7 @@ (define-skeleton verilog-sk-def-reg "Insert a reg definition." () - > "reg [" '(verilog-sk-prompt-width) | -1 verilog-sk-signal ";" \n (verilog-pretty-declarations) ) + > "reg [" '(verilog-sk-prompt-width) | -1 verilog-sk-signal ";" \n (verilog-pretty-declarations-auto) ) (defun verilog-sk-define-signal () "Insert a definition of signal under point at top of module." @@ -12914,9 +13220,12 @@ (concat "verilog-mode v" verilog-mode-version) '( verilog-active-low-regexp + verilog-after-save-font-hook verilog-align-ifelse verilog-assignment-delay verilog-auto-arg-sort + verilog-auto-declare-nettype + verilog-auto-delete-trailing-whitespace verilog-auto-endcomments verilog-auto-hook verilog-auto-ignore-concat @@ -12925,23 +13234,32 @@ verilog-auto-input-ignore-regexp verilog-auto-inst-column verilog-auto-inst-dot-name + verilog-auto-inst-interfaced-ports verilog-auto-inst-param-value + verilog-auto-inst-sort verilog-auto-inst-template-numbers verilog-auto-inst-vector verilog-auto-lineup verilog-auto-newline verilog-auto-output-ignore-regexp verilog-auto-read-includes + verilog-auto-reset-blocking-in-non verilog-auto-reset-widths verilog-auto-save-policy verilog-auto-sense-defines-constant verilog-auto-sense-include-inputs verilog-auto-star-expand verilog-auto-star-save + verilog-auto-template-warn-unused + verilog-auto-tieoff-declaration + verilog-auto-tieoff-ignore-regexp verilog-auto-unused-ignore-regexp + verilog-auto-wire-type verilog-before-auto-hook verilog-before-delete-auto-hook verilog-before-getopt-flags-hook + verilog-before-save-font-hook + verilog-cache-enabled verilog-case-indent verilog-cexp-indent verilog-compiler @@ -12949,6 +13267,8 @@ verilog-delete-auto-hook verilog-getopt-flags-hook verilog-highlight-grouping-keywords + verilog-highlight-includes + verilog-highlight-modules verilog-highlight-p1800-keywords verilog-highlight-translate-off verilog-indent-begin-after-if @@ -12966,11 +13286,15 @@ verilog-linter verilog-minimum-comment-distance verilog-mode-hook + verilog-mode-release-date + verilog-mode-release-emacs + verilog-mode-version verilog-preprocessor verilog-simulator verilog-tab-always-indent verilog-tab-to-comment verilog-typedef-regexp + verilog-warn-fatal ) nil nil (concat "Hi Mac, ------------------------------------------------------------ revno: 108113 committer: Glenn Morris branch nick: trunk timestamp: Thu 2012-05-03 06:20:40 -0400 message: Auto-commit of loaddefs files. diff: === modified file 'lisp/mail/rmail.el' --- lisp/mail/rmail.el 2012-05-02 07:20:29 +0000 +++ lisp/mail/rmail.el 2012-05-03 10:20:40 +0000 @@ -4575,7 +4575,7 @@ ;;;*** -;;;### (autoloads (rmail-mime) "rmailmm" "rmailmm.el" "be7f4b94a269f840b8707defd515c4f9") +;;;### (autoloads (rmail-mime) "rmailmm" "rmailmm.el" "cd7656f82944d0b92b0d093a5f3a4c36") ;;; Generated autoloads from rmailmm.el (autoload 'rmail-mime "rmailmm" "\ ------------------------------------------------------------ revno: 108112 committer: Glenn Morris branch nick: trunk timestamp: Thu 2012-05-03 06:17:27 -0400 message: Auto-commit of generated files. diff: === modified file 'autogen/configure' --- autogen/configure 2012-05-02 16:10:02 +0000 +++ autogen/configure 2012-05-03 10:17:27 +0000 @@ -8336,7 +8336,9 @@ ## Let `ld' find image libs and similar things in /usr/local/lib. ## The system compiler, GCC, has apparently been modified to not ## look there, contrary to what a stock GCC would do. - LD_SWITCH_SYSTEM=-L/usr/local/lib +### It's not our place to do this. See bug#10313#17. +### LD_SWITCH_SYSTEM=-L/usr/local/lib + : ;; gnu-linux) @@ -8345,7 +8347,9 @@ ;; netbsd) - LD_SWITCH_SYSTEM="-Wl,-rpath,/usr/pkg/lib -L/usr/pkg/lib -Wl,-rpath,/usr/local/lib -L/usr/local/lib" +### It's not our place to do this. See bug#10313#17. +### LD_SWITCH_SYSTEM="-Wl,-rpath,/usr/pkg/lib -L/usr/pkg/lib -Wl,-rpath,/usr/local/lib -L/usr/local/lib" + : ;; openbsd) ------------------------------------------------------------ revno: 108111 [merge] committer: Kenichi Handa branch nick: trunk timestamp: Thu 2012-05-03 15:59:11 +0900 message: mail/rmailmm.el (rmail-show-mime): Catch an error caused by text decoding, and show a warning message without signalling an error (Bug#11282). diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-05-03 02:39:23 +0000 +++ lisp/ChangeLog 2012-05-03 06:57:54 +0000 @@ -1,3 +1,9 @@ +2012-05-03 Kenichi Handa + + * mail/rmailmm.el (rmail-show-mime): Catch an error caused by text + decoding, and show a warning message without signalling an error + (Bug#11282). + 2012-05-03 Stefan Monnier * emacs-lisp/bytecomp.el === modified file 'lisp/mail/rmailmm.el' --- lisp/mail/rmailmm.el 2012-01-19 07:21:25 +0000 +++ lisp/mail/rmailmm.el 2012-05-03 05:47:24 +0000 @@ -1300,26 +1300,40 @@ (rmail-mime-mbox-buffer rmail-buffer) (rmail-mime-view-buffer rmail-view-buffer) (rmail-mime-coding-system nil)) + ;; If ENTITY is not a vector, it is a string describing an error. (if (vectorp entity) (with-current-buffer rmail-mime-view-buffer (erase-buffer) - (rmail-mime-insert entity) - (if (consp rmail-mime-coding-system) - ;; Decoding is done by rfc2047-decode-region only for a - ;; header. But, as the used coding system may have been - ;; overridden by mm-charset-override-alist, we can't - ;; trust (car rmail-mime-coding-system). So, here we - ;; try the decoding again with mm-charset-override-alist - ;; bound to nil. - (let ((mm-charset-override-alist nil)) - (setq rmail-mime-coding-system - (rmail-mime-find-header-encoding - (rmail-mime-entity-header entity))))) - (set-buffer-file-coding-system - (if rmail-mime-coding-system - (coding-system-base rmail-mime-coding-system) - 'undecided) - t t)) + ;; This condition-case is for catching an error in the + ;; internal MIME decoding (e.g. incorrect BASE64 form) that + ;; may be signaled by rmail-mime-insert. + ;; FIXME: The current code doesn't set a proper error symbol + ;; in ERR. We must find a way to propagate a correct error + ;; symbol that is caused in the very deep code of text + ;; decoding (e.g. an error by base64-decode-region called by + ;; post-read-conversion function of utf-7). + (condition-case err + (progn + (rmail-mime-insert entity) + (if (consp rmail-mime-coding-system) + ;; Decoding is done by rfc2047-decode-region only for a + ;; header. But, as the used coding system may have been + ;; overridden by mm-charset-override-alist, we can't + ;; trust (car rmail-mime-coding-system). So, here we + ;; try the decoding again with mm-charset-override-alist + ;; bound to nil. + (let ((mm-charset-override-alist nil)) + (setq rmail-mime-coding-system + (rmail-mime-find-header-encoding + (rmail-mime-entity-header entity))))) + (set-buffer-file-coding-system + (if rmail-mime-coding-system + (coding-system-base rmail-mime-coding-system) + 'undecided) + t t)) + (error (setq entity (format "%s" err)))))) + ;; Re-check ENTITY. It may be set to an error string. + (when (stringp entity) ;; Decoding failed. ENTITY is an error message. Insert the ;; original message body as is, and show warning. (let ((region (with-current-buffer rmail-mime-mbox-buffer ------------------------------------------------------------ Use --include-merges or -n0 to see merged revisions.