unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Your Emacs changes
@ 2002-06-15 14:13 Richard Stallman
  0 siblings, 0 replies; 33+ messages in thread
From: Richard Stallman @ 2002-06-15 14:13 UTC (permalink / raw)
  Cc: emacs-devel

The papers have arrived for your Emacs changes, so we can now install
your changes.  Could you please send the changes in diff -c format,
plus itemized change logs to go with them?

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Your Emacs changes
@ 2003-08-15 16:04 Richard Stallman
  2003-08-18 15:21 ` Peter 'Luna' Runestig
  0 siblings, 1 reply; 33+ messages in thread
From: Richard Stallman @ 2003-08-15 16:04 UTC (permalink / raw)
  Cc: emacs-devel

Now that we have your papers, we can install your changes.  Could you
send your changes once again to emacs-devel, together with change log
entries for them?

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: Your Emacs changes
  2003-08-15 16:04 Richard Stallman
@ 2003-08-18 15:21 ` Peter 'Luna' Runestig
  2003-08-19  7:51   ` Eli Zaretskii
  0 siblings, 1 reply; 33+ messages in thread
From: Peter 'Luna' Runestig @ 2003-08-18 15:21 UTC (permalink / raw)


Richard Stallman <rms@gnu.org> writes:
> Now that we have your papers, we can install your changes.  Could you
> send your changes once again to emacs-devel, together with change log
> entries for them?

Here it goes:

diff -burN emacs-cvs-20030817.orig/lispintro/ChangeLog emacs-cvs-20030817/lispintro/ChangeLog
--- emacs-cvs-20030817.orig/lispintro/ChangeLog	2002-02-03 11:15:46.000000000 +0100
+++ emacs-cvs-20030817/lispintro/ChangeLog	2003-08-18 16:27:23.000000000 +0200
@@ -1,3 +1,7 @@
+2003-08-18  Peter Runestig <peter@runestig.com>
+
+	* makefile.w32-in: New file.
+
 2001-11-29  Eli Zaretskii  <eliz@is.elta.co.il>
 
 	* emacs-lisp-intro.texi (Index): @ignore extraneous text.
diff -burN emacs-cvs-20030817.orig/lispintro/makefile.w32-in emacs-cvs-20030817/lispintro/makefile.w32-in
--- emacs-cvs-20030817.orig/lispintro/makefile.w32-in	1970-01-01 01:00:00.000000000 +0100
+++ emacs-cvs-20030817/lispintro/makefile.w32-in	2003-08-18 16:22:31.000000000 +0200
@@ -0,0 +1,70 @@
+#### Makefile for the Emacs Lisp Introduction manual
+
+# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+
+# This file is part of GNU Emacs.
+
+# GNU Emacs is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# GNU Emacs is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with GNU Emacs; see the file COPYING.  If not, write to
+# the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+
+SHELL = cmd
+
+srcdir = .
+
+infodir = $(srcdir)/../info
+
+INFO_SOURCES = $(srcdir)/emacs-lisp-intro.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
+DVI_TARGETS = emacs-lisp-intro.dvi
+
+MAKEINFO = makeinfo
+TEXI2DVI = texi2dvi
+DVIPS = dvips
+ENVADD = TEXINPUTS="$(srcdir):$(TEXINPUTS)" MAKEINFO="$(MAKEINFO) -I$(srcdir)"
+
+.SUFFIXES: .dvi .ps .texi
+
+info: $(INFO_TARGETS)
+
+dvi: $(DVI_TARGETS)
+
+$(infodir)/eintr: $(INFO_SOURCES)
+	$(MAKEINFO) -o $@ $(srcdir)/emacs-lisp-intro.texi
+
+emacs-lisp-intro.dvi: $(INFO_SOURCES)
+	$(ENVADD) $(TEXI2DVI) $(srcdir)/emacs-lisp-intro.texi
+
+emacs-lisp-intro.html: $(INFO_SOURCES)
+	$(MAKEINFO) --html -o $@ $(srcdir)/emacs-lisp-intro.texi
+
+.dvi.ps:
+	$(DVIPS) $< -o $@
+
+mostlyclean:
+	rm -f  *.log *.cp *.fn *.ky *.pg *.vr *.tp
+
+clean: mostlyclean
+	rm -f *.dvi
+
+distclean: clean
+
+maintainer-clean: distclean
+	rm -f *.aux *.cps *.fns *.kys *.pgs *.vrs *.toc
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff -burN emacs-cvs-20030817.orig/lispref/ChangeLog emacs-cvs-20030817/lispref/ChangeLog
--- emacs-cvs-20030817.orig/lispref/ChangeLog	2003-08-14 20:28:02.000000000 +0200
+++ emacs-cvs-20030817/lispref/ChangeLog	2003-08-18 16:29:50.000000000 +0200
@@ -1,3 +1,7 @@
+2003-08-18  Peter Runestig <peter@runestig.com>
+
+	* makefile.w32-in: New file.
+
 2003-08-14  John Paul Wallington  <jpw@gnu.org>
 
 	* modes.texi (Emulating Mode Line): Subsection, not section.
diff -burN emacs-cvs-20030817.orig/lispref/makefile.w32-in emacs-cvs-20030817/lispref/makefile.w32-in
--- emacs-cvs-20030817.orig/lispref/makefile.w32-in	1970-01-01 01:00:00.000000000 +0100
+++ emacs-cvs-20030817/lispref/makefile.w32-in	2003-08-18 16:22:31.000000000 +0200
@@ -0,0 +1,160 @@
+# Makefile for the GNU Emacs Lisp Reference Manual.
+
+# Copyright (C) 1990,1991,1992,1993,1994,1995,1996,1998,1999,2000,2001
+#  Free Software Foundation, Inc.
+
+# This file is part of GNU Emacs.
+
+# GNU Emacs is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# GNU Emacs is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with GNU Emacs; see the file COPYING.  If not, write to
+# the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+
+# Standard configure variables.
+srcdir = .
+
+infodir = $(srcdir)/../info
+
+# Redefine `TEX' if `tex' does not invoke plain TeX.  For example:
+# TEX=platex
+TEX=tex
+SHELL=cmd
+INSTALL_INFO = install-info
+MAKEINFO = makeinfo
+
+# The environment variable and its value to add $(srcdir) to the path
+# searched for TeX input files.
+texinputdir = TEXINPUTS=$(srcdir):"$(TEXINPUTS)"
+
+# The name of the manual:
+VERSION=2.9
+manual = elisp-manual-21-$(VERSION)
+
+# Uncomment this line for permuted index.
+# permuted_index = 1 
+
+# List of all the texinfo files in the manual:
+
+srcs = \
+  $(srcdir)/abbrevs.texi \
+  $(srcdir)/advice.texi \
+  $(srcdir)/anti.texi \
+  $(srcdir)/back.texi \
+  $(srcdir)/backups.texi \
+  $(srcdir)/buffers.texi \
+  $(srcdir)/calendar.texi \
+  $(srcdir)/commands.texi \
+  $(srcdir)/compile.texi \
+  $(srcdir)/control.texi \
+  $(srcdir)/customize.texi \
+  $(srcdir)/debugging.texi \
+  $(srcdir)/display.texi \
+  $(srcdir)/edebug.texi \
+  $(srcdir)/elisp.texi \
+  $(srcdir)/errors.texi \
+  $(srcdir)/eval.texi \
+  $(srcdir)/files.texi \
+  $(srcdir)/frames.texi \
+  $(srcdir)/functions.texi \
+  $(srcdir)/hash.texi \
+  $(srcdir)/help.texi \
+  $(srcdir)/hooks.texi \
+  $(srcdir)/internals.texi \
+  $(srcdir)/intro.texi \
+  $(srcdir)/keymaps.texi \
+  $(srcdir)/lists.texi \
+  $(srcdir)/loading.texi \
+  $(srcdir)/locals.texi \
+  $(srcdir)/macros.texi \
+  $(srcdir)/maps.texi \
+  $(srcdir)/markers.texi \
+  $(srcdir)/minibuf.texi \
+  $(srcdir)/modes.texi \
+  $(srcdir)/nonascii.texi \
+  $(srcdir)/numbers.texi \
+  $(srcdir)/objects.texi \
+  $(srcdir)/os.texi \
+  $(srcdir)/positions.texi \
+  $(srcdir)/processes.texi \
+  $(srcdir)/searching.texi \
+  $(srcdir)/sequences.texi \
+  $(srcdir)/streams.texi \
+  $(srcdir)/strings.texi \
+  $(srcdir)/symbols.texi \
+  $(srcdir)/syntax.texi \
+  $(srcdir)/text.texi \
+  $(srcdir)/tips.texi \
+  $(srcdir)/variables.texi \
+  $(srcdir)/windows.texi \
+  $(srcdir)/index.unperm \
+  $(srcdir)/index.perm \
+  $(srcdir)/gpl.texi \
+  $(srcdir)/doclicense.texi
+
+
+.PHONY: clean
+
+# The info file is named `elisp'.
+info: $(infodir)/elisp
+
+$(infodir)/elisp: $(srcs) index.texi
+	$(MAKEINFO) -I. -I$(srcdir) $(srcdir)/elisp.texi -o $(infodir)/elisp
+
+elisp.dvi: $(srcs) index.texi
+	# Avoid losing old contents of aux file entirely.
+	-mv elisp.aux elisp.oaux
+	# First shot to define xrefs.
+	$(texinputdir) $(TEX) $(srcdir)/elisp.texi
+	if [ a$(permuted_index) != a ]; \
+	then \
+	  $(srcdir)/permute-index; \
+	  mv permuted.fns elisp.fns; \
+	  texindex elisp.tp; \
+	else \
+	  texindex elisp.??; \
+	fi
+	$(texinputdir) $(TEX) $(srcdir)/elisp.texi
+
+index.texi:
+	  cp $(srcdir)/index.unperm index.texi
+
+install: elisp
+	$(srcdir)/mkinstalldirs $(infodir)
+	cp elisp elisp-* $(infodir)
+	$(INSTALL_INFO) --info-dir=$(infodir) $(infodir)/elisp
+
+clean:
+	rm -f *.toc *.aux *.log *.cp *.cps *.fn *.fns *.tp *.tps \
+              *.vr *.vrs *.pg *.pgs *.ky *.kys
+	rm -f make.out core 
+	rm -f index.texi
+
+distclean: clean
+
+maintainer-clean: clean
+	rm -f elisp elisp-* elisp.dvi elisp.oaux
+
+dist: elisp elisp.dvi
+	-rm -rf temp
+	-mkdir temp
+	-mkdir temp/$(manual)
+	-ln $(srcdir)/README $(srcdir)/configure.in $(srcdir)/configure \
+ $(srcdir)/Makefile.in $(srcdir)/permute-index $(srcs) \
+ $(srcdir)/../man/texinfo.tex \
+ elisp.dvi elisp.aux elisp.??s elisp elisp-[0-9] elisp-[0-9][0-9] \
+ temp/$(manual)
+	-(cd temp/$(manual); rm -f mkinstalldirs)
+	cp $(srcdir)/mkinstalldirs temp/$(manual)
+	(cd temp/$(manual); rm -f *~)
+	(cd temp; tar chf - $(manual)) | gzip > $(manual).tar.gz
+	-rm -rf temp
diff -burN emacs-cvs-20030817.orig/man/ChangeLog emacs-cvs-20030817/man/ChangeLog
--- emacs-cvs-20030817.orig/man/ChangeLog	2003-08-17 15:10:56.000000000 +0200
+++ emacs-cvs-20030817/man/ChangeLog	2003-08-18 16:30:30.000000000 +0200
@@ -1,3 +1,7 @@
+2003-08-18  Peter Runestig <peter@runestig.com>
+
+	* makefile.w32-in: New file.
+
 2003-08-17  Alex Schroeder  <alex@gnu.org>
 
 	* misc.texi (Saving Emacs Sessions): Manual M-x desktop-save not
diff -burN emacs-cvs-20030817.orig/man/makefile.w32-in emacs-cvs-20030817/man/makefile.w32-in
--- emacs-cvs-20030817.orig/man/makefile.w32-in	1970-01-01 01:00:00.000000000 +0100
+++ emacs-cvs-20030817/man/makefile.w32-in	2003-08-18 16:22:31.000000000 +0200
@@ -0,0 +1,295 @@
+#### Makefile for the Emacs Manual and other documentation.
+
+# Copyright (C) 1994, 1996, 1997, 1998, 1999, 2000, 2001
+#  Free Software Foundation, Inc.
+
+# This file is part of GNU Emacs.
+
+# GNU Emacs is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# GNU Emacs is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with GNU Emacs; see the file COPYING.  If not, write to
+# the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+
+# Where to find the source code.  The source code for Emacs's C kernel is
+# expected to be in ${srcdir}/src, and the source code for Emacs's
+# utility programs is expected to be in ${srcdir}/lib-src.  This is
+# set by the configure script's `--srcdir' option.
+srcdir=.
+
+
+# The makeinfo program is part of the Texinfo distribution.
+MAKEINFO = makeinfo
+INFO_TARGETS = ../info/emacs ../info/ccmode ../info/cl \
+	        ../info/dired-x ../info/ediff ../info/forms ../info/gnus \
+		../info/info ../info/message ../info/mh-e ../info/reftex \
+		../info/sc ../info/vip ../info/viper ../info/widget \
+		../info/efaq ../info/ada-mode ../info/autotype ../info/calc \
+		../info/idlwave ../info/eudc ../info/ebrowse ../info/pcl-cvs \
+		../info/woman ../info/emacs-mime ../info/eshell \
+		../info/speedbar ../info/tramp ../info/ses
+DVI_TARGETS = 	emacs.dvi calc.dvi cc-mode.dvi cl.dvi dired-x.dvi \
+		 ediff.dvi forms.dvi gnus.dvi message.dvi mh-e.dvi \
+		 reftex.dvi sc.dvi vip.dvi viper.dvi widget.dvi faq.dvi \
+		 ada-mode.dvi autotype.dvi idlwave.dvi eudc.dvi ebrowse.dvi \
+		 pcl-cvs.dvi woman.dvi emacs-mime.dvi eshell.dvi \
+		 speedbar.dvi tramp.dvi ses.dvi
+INFOSOURCES = info.texi
+
+# The following rule does not work with all versions of `make'.
+.SUFFIXES: .texi .dvi
+.texi.dvi:
+	texi2dvi $<
+
+TEXI2DVI = texi2dvi
+ENVADD = TEXINPUTS="$(srcdir):$(TEXINPUTS)" MAKEINFO="$(MAKEINFO) -I$(srcdir)" 
+
+EMACSSOURCES= \
+	$(srcdir)/emacs.texi \
+	$(srcdir)/doclicense.texi \
+	$(srcdir)/screen.texi \
+	$(srcdir)/commands.texi \
+	$(srcdir)/entering.texi \
+	$(srcdir)/basic.texi \
+	$(srcdir)/mini.texi \
+	$(srcdir)/m-x.texi \
+	$(srcdir)/help.texi \
+	$(srcdir)/mark.texi \
+	$(srcdir)/killing.texi \
+	$(srcdir)/regs.texi \
+	$(srcdir)/display.texi \
+	$(srcdir)/search.texi \
+	$(srcdir)/fixit.texi \
+	$(srcdir)/files.texi \
+	$(srcdir)/buffers.texi \
+	$(srcdir)/windows.texi \
+	$(srcdir)/frames.texi \
+	$(srcdir)/mule.texi \
+	$(srcdir)/major.texi \
+	$(srcdir)/indent.texi \
+	$(srcdir)/text.texi \
+	$(srcdir)/programs.texi \
+	$(srcdir)/building.texi \
+	$(srcdir)/maintaining.texi \
+	$(srcdir)/abbrevs.texi \
+	$(srcdir)/picture.texi \
+	$(srcdir)/sending.texi \
+	$(srcdir)/rmail.texi \
+	$(srcdir)/dired.texi \
+	$(srcdir)/calendar.texi \
+	$(srcdir)/misc.texi \
+	$(srcdir)/custom.texi \
+	$(srcdir)/trouble.texi \
+	$(srcdir)/cmdargs.texi \
+	$(srcdir)/xresources.texi \
+	$(srcdir)/anti.texi \
+	$(srcdir)/macos.texi \
+	$(srcdir)/msdog.texi \
+	$(srcdir)/gnu.texi \
+	$(srcdir)/glossary.texi \
+	$(srcdir)/ack.texi
+
+info: $(INFO_TARGETS)
+
+dvi: $(DVI_TARGETS)
+
+# Note that all the Info targets build the Info files
+# in srcdir.  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.
+
+# 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/info: $(INFOSOURCES)
+	$(MAKEINFO) --no-split info.texi -o $@
+
+info.dvi: $(INFOSOURCES)
+	$(ENVADD) $(TEXI2DVI) $(srcdir)/info.texi
+
+../info/emacs: $(EMACSSOURCES)
+	$(MAKEINFO) emacs.texi
+
+emacs.dvi: $(EMACSSOURCES)
+	$(ENVADD) $(TEXI2DVI) $(srcdir)/emacs.texi
+
+# This target is here so you could easily get the list of the *.texi
+# files which belong to the Emacs manual (as opposed to the separate
+# manuals for CL, CC Mode, Ebrowse, etc.).  With this target, you can
+# say things like "grep foo `make emacsman`".
+emacsman:
+	@echo $(EMACSSOURCES)
+
+../info/ccmode: cc-mode.texi
+	$(MAKEINFO) cc-mode.texi
+cc-mode.dvi: cc-mode.texi
+	$(ENVADD) $(TEXI2DVI) $(srcdir)/cc-mode.texi
+
+../info/ada-mode: ada-mode.texi
+	$(MAKEINFO) ada-mode.texi
+ada-mode.dvi: ada-mode.texi
+	$(ENVADD) $(TEXI2DVI) $(srcdir)/ada-mode.texi
+
+../info/pcl-cvs: pcl-cvs.texi
+	$(MAKEINFO) pcl-cvs.texi
+pcl-cvs.dvi: pcl-cvs.texi
+	$(ENVADD) $(TEXI2DVI) $(srcdir)/pcl-cvs.texi
+
+../info/eshell: eshell.texi
+	$(MAKEINFO) eshell.texi
+eshell.dvi: eshell.texi
+	$(ENVADD) $(TEXI2DVI) $(srcdir)/eshell.texi
+
+../info/cl: cl.texi
+	$(MAKEINFO) cl.texi
+cl.dvi: cl.texi
+	$(ENVADD) $(TEXI2DVI) $(srcdir)/cl.texi
+
+../info/dired-x: dired-x.texi
+	$(MAKEINFO) dired-x.texi
+dired-x.dvi: dired-x.texi
+	$(ENVADD) $(TEXI2DVI) $(srcdir)/dired-x.texi
+
+../info/ediff: ediff.texi
+	$(MAKEINFO) ediff.texi
+ediff.dvi: ediff.texi
+	$(ENVADD) $(TEXI2DVI) $(srcdir)/ediff.texi
+
+../info/forms: forms.texi
+	$(MAKEINFO) forms.texi
+forms.dvi: forms.texi
+	$(ENVADD) $(TEXI2DVI) $(srcdir)/forms.texi
+
+../info/gnus: gnus.texi
+	$(MAKEINFO) gnus.texi
+gnus.dvi: gnus.texi
+	sed -e '/@iflatex/,/@end iflatex/d' $(srcdir)/gnus.texi > gnustmp.texi 
+	$(ENVADD) $(TEXI2DVI) gnustmp.texi
+	cp gnustmp.dvi $*.dvi
+	rm gnustmp.*
+
+../info/message: message.texi
+	$(MAKEINFO) message.texi
+message.dvi: message.texi
+	$(ENVADD) $(TEXI2DVI) $(srcdir)/message.texi
+
+../info/mh-e: mh-e.texi
+	$(MAKEINFO) mh-e.texi
+mh-e.dvi: mh-e.texi
+	$(ENVADD) $(TEXI2DVI) $(srcdir)/mh-e.texi
+
+../info/reftex: reftex.texi
+	$(MAKEINFO) reftex.texi
+reftex.dvi: reftex.texi
+	$(ENVADD) $(TEXI2DVI) $(srcdir)/reftex.texi
+
+../info/sc: sc.texi
+	$(MAKEINFO) sc.texi
+sc.dvi: sc.texi
+	$(ENVADD) $(TEXI2DVI) $(srcdir)/sc.texi
+
+../info/vip: vip.texi
+	$(MAKEINFO) vip.texi
+vip.dvi: vip.texi
+	$(ENVADD) $(TEXI2DVI) $(srcdir)/vip.texi
+
+../info/viper: viper.texi
+	$(MAKEINFO) viper.texi
+viper.dvi: viper.texi
+	$(ENVADD) $(TEXI2DVI) $(srcdir)/viper.texi
+
+../info/widget: widget.texi
+	$(MAKEINFO) widget.texi
+widget.dvi: widget.texi
+	$(ENVADD) $(TEXI2DVI) $(srcdir)/widget.texi
+
+../info/efaq: faq.texi
+	$(MAKEINFO) faq.texi
+faq.dvi: faq.texi
+	$(ENVADD) $(TEXI2DVI) $(srcdir)/faq.texi
+
+../etc/GNU: gnu1.texi gnu.texi
+	cd $(srcdir) && makeinfo --no-headers -o ../etc/GNU gnu1.texi
+
+../info/autotype: autotype.texi
+	$(MAKEINFO) autotype.texi
+autotype.dvi: autotype.texi
+	$(ENVADD) $(TEXI2DVI) $(srcdir)/autotype.texi
+
+../info/calc: calc.texi
+	$(MAKEINFO) calc.texi
+
+calc.dvi: calc.texi
+	$(ENVADD) $(TEXI2DVI) $(srcdir)/calc.texi
+
+# This is produced with --no-split to avoid making files whose
+# names clash on DOS 8+3 filesystems
+../info/idlwave: idlwave.texi
+	$(MAKEINFO) --no-split idlwave.texi
+idlwave.dvi: idlwave.texi
+	$(ENVADD) $(TEXI2DVI) $(srcdir)/idlwave.texi
+
+../info/eudc: eudc.texi
+	$(MAKEINFO) eudc.texi
+eudc.dvi: eudc.texi
+	$(ENVADD) $(TEXI2DVI) $(srcdir)/eudc.texi
+
+../info/ebrowse: ebrowse.texi
+	$(MAKEINFO) ebrowse.texi
+ebrowse.dvi: ebrowse.texi
+	$(ENVADD) $(TEXI2DVI) $(srcdir)/ebrowse.texi
+
+../info/woman: woman.texi
+	$(MAKEINFO) woman.texi
+woman.dvi: woman.texi
+	$(ENVADD) $(TEXI2DVI) $(srcdir)/woman.texi
+
+../info/speedbar: speedbar.texi
+	$(MAKEINFO) speedbar.texi
+speedbar.dvi: speedbar.texi
+	$(ENVADD) $(TEXI2DVI) $(srcdir)/speedbar.texi
+
+../info/emacs-mime: emacs-mime.texi
+	$(MAKEINFO) emacs-mime.texi
+emacs-mime.dvi: emacs-mime.texi
+	$(ENVADD) $(TEXI2DVI) $(srcdir)/emacs-mime.texi
+
+../info/tramp: tramp.texi
+	$(MAKEINFO) tramp.texi
+tramp.dvi: tramp.texi
+	$(ENVADD) $(TEXI2DVI) $(srcdir)/tramp.texi
+
+../info/ses: ses.texi
+	$(MAKEINFO) ses.texi
+ses.dvi: ses.texi
+	$(ENVADD) $(TEXI2DVI) $(srcdir)/ses.texi
+
+mostlyclean:
+	rm -f *.log *.cp *.fn *.ky *.pg *.vr core *.tp *.core gnustmp.*
+
+clean: mostlyclean
+	rm -f *.dvi
+
+distclean: clean
+
+maintainer-clean: distclean
+	rm -f *.aux *.cps *.fns *.kys *.pgs *.vrs *.toc
+# Don't delete these, because they are outside the current directory.
+#	for file in $(INFO_TARGETS); do rm -f $${file}*; done
+
+
+# Formerly this directory had texindex.c and getopt.c in it
+# and this makefile built them to make texindex.
+# That caused trouble because this is run entirely in the source directory.
+# Since we expect to get texi2dvi from elsewhere,
+# it is ok to expect texindex from elsewhere also.
diff -burN emacs-cvs-20030817.orig/nt/ChangeLog emacs-cvs-20030817/nt/ChangeLog
--- emacs-cvs-20030817.orig/nt/ChangeLog	2003-07-10 16:28:04.000000000 +0200
+++ emacs-cvs-20030817/nt/ChangeLog	2003-08-18 16:43:41.000000000 +0200
@@ -1,3 +1,10 @@
+2003-08-18  Peter Runestig <peter@runestig.com>
+
+	* configure.bat: Create ``makefile'' in directories man, lispref and
+	lispintro.
+
+	* makefile.w32-in (force-info, info): New targets.
+
 2003-06-27  Jan D.  <jan.h.d@swipnet.se>
 
 	* config.nt (my_strftime): New define.
diff -burN emacs-cvs-20030817.orig/nt/configure.bat emacs-cvs-20030817/nt/configure.bat
--- emacs-cvs-20030817.orig/nt/configure.bat	2003-02-07 09:04:54.000000000 +0100
+++ emacs-cvs-20030817/nt/configure.bat	2003-08-18 16:22:31.000000000 +0200
@@ -433,6 +433,9 @@
 copy /b config.settings+%MAKECMD%.defs+..\nt\makefile.w32-in ..\nt\makefile
 copy /b config.settings+%MAKECMD%.defs+..\lib-src\makefile.w32-in ..\lib-src\makefile
 copy /b config.settings+%MAKECMD%.defs+..\src\makefile.w32-in ..\src\makefile
+copy /b config.settings+%MAKECMD%.defs+..\man\makefile.w32-in ..\man\makefile
+copy /b config.settings+%MAKECMD%.defs+..\lispref\makefile.w32-in ..\lispref\makefile
+copy /b config.settings+%MAKECMD%.defs+..\lispintro\makefile.w32-in ..\lispintro\makefile
 if not exist ..\lisp\Makefile.unix rename ..\lisp\Makefile.in Makefile.unix
 if exist ..\lisp\makefile rm -f ../lisp/[Mm]akefile
 copy /b config.settings+%MAKECMD%.defs+..\lisp\makefile.w32-in ..\lisp\makefile
diff -burN emacs-cvs-20030817.orig/nt/makefile.w32-in emacs-cvs-20030817/nt/makefile.w32-in
--- emacs-cvs-20030817.orig/nt/makefile.w32-in	2003-02-07 09:04:54.000000000 +0100
+++ emacs-cvs-20030817/nt/makefile.w32-in	2003-08-18 16:22:31.000000000 +0200
@@ -214,6 +214,15 @@
 	$(MAKE) $(MFLAGS) -C ../lisp install
 	$(MAKE) $(MFLAGS) -C ../leim install
 
+force-info:
+# Note that man/makefile knows how to
+# put the info files in $(srcdir),
+# so we can do ok running make in the build dir.
+info: force-info
+	(cd ..\man && $(MAKE) $(MFLAGS) info)
+	(cd ..\lispref && $(MAKE) $(MFLAGS) info)
+	(cd ..\lispintro && $(MAKE) $(MFLAGS) info)
+
 #
 # Maintenance
 #

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: Your Emacs changes
  2003-08-19  7:51   ` Eli Zaretskii
@ 2003-08-19  7:36     ` Jason Rumney
  2003-08-19 17:32       ` Eli Zaretskii
  2003-08-22 11:13       ` Peter 'Luna' Runestig
  2003-08-19  7:59     ` Peter 'Luna' Runestig
  1 sibling, 2 replies; 33+ messages in thread
From: Jason Rumney @ 2003-08-19  7:36 UTC (permalink / raw)
  Cc: peter, emacs-devel

"Eli Zaretskii" <eliz@elta.co.il> writes:

> Is it really your intent here to allow only Cygwin-compiled ports to
> be used?  If so, I'd suggest to say so in some prominent place, since
> other makefile-w32.in files (e.g., in the `src' directory) don't make
> those assumptions.  (They also take care to use available Windows
> commands for operations such as rm, mv and cp.)

rm, mv and cp are used already, even when cmd is the shell. The
Windows versions of these commands are deficient, so Andrew decided
long ago to use these instead. We have had no complaints about this
policy.

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: Your Emacs changes
  2003-08-18 15:21 ` Peter 'Luna' Runestig
@ 2003-08-19  7:51   ` Eli Zaretskii
  2003-08-19  7:36     ` Jason Rumney
  2003-08-19  7:59     ` Peter 'Luna' Runestig
  0 siblings, 2 replies; 33+ messages in thread
From: Eli Zaretskii @ 2003-08-19  7:51 UTC (permalink / raw)
  Cc: emacs-devel

> From: "Peter 'Luna' Runestig" <peter@runestig.com>
> Date: 18 Aug 2003 17:21:58 +0200
> 
> Richard Stallman <rms@gnu.org> writes:
> > Now that we have your papers, we can install your changes.  Could you
> > send your changes once again to emacs-devel, together with change log
> > entries for them?
> 
> Here it goes:
> [...]

Hmm, bother:

> +SHELL = cmd
> [...]
> +MAKEINFO = makeinfo
> +TEXI2DVI = texi2dvi
> +DVIPS = dvips
> +ENVADD = TEXINPUTS="$(srcdir):$(TEXINPUTS)" MAKEINFO="$(MAKEINFO) -I$(srcdir)"
> [...]
> +mostlyclean:
> +	rm -f  *.log *.cp *.fn *.ky *.pg *.vr *.tp
> +
> +clean: mostlyclean
> +	rm -f *.dvi
> +
> +distclean: clean
> +
> +maintainer-clean: distclean
> +	rm -f *.aux *.cps *.fns *.kys *.pgs *.vrs *.toc

These patches will probably work only with the Cygwin-compiled ports
of Texinfo and programs such as dvips and rm.  

[There's the fpTeX project which produces native Windows ports of TeX,
DVIware, and related programs, so the assumption that only Cygwin
ports of those programs exist is incorrect.  fpTeX is included on the
annual releases of the "TeX Live" CDROM.]

Also, the Makefile says "SHELL = cmd", but commands such as this:

> +emacs-lisp-intro.dvi: $(INFO_SOURCES)
> +	$(ENVADD) $(TEXI2DVI) $(srcdir)/emacs-lisp-intro.texi

and this:

> +elisp.dvi: $(srcs) index.texi
> +	# Avoid losing old contents of aux file entirely.
> +	-mv elisp.aux elisp.oaux
> +	# First shot to define xrefs.
> +	$(texinputdir) $(TEX) $(srcdir)/elisp.texi
> +	if [ a$(permuted_index) != a ]; \
> +	then \
> +	  $(srcdir)/permute-index; \
> +	  mv permuted.fns elisp.fns; \
> +	  texindex elisp.tp; \
> +	else \
> +	  texindex elisp.??; \
> +	fi
> +	$(texinputdir) $(TEX) $(srcdir)/elisp.texi

will only work if the shell is actually a port of a Unix shell, such
as Bash, since (AFAIK) CMD doesn't understand the syntax

   "foo=bar some-command"

and also because texi2dvi is a Unix shell script that CMD cannot run
directly, and because "if [ something" will totally confuse CMD.

> +dist: elisp elisp.dvi
> +	-rm -rf temp
> +	-mkdir temp
> +	-mkdir temp/$(manual)
> +	-ln $(srcdir)/README $(srcdir)/configure.in $(srcdir)/configure \
> + $(srcdir)/Makefile.in $(srcdir)/permute-index $(srcs) \
> + $(srcdir)/../man/texinfo.tex \
> + elisp.dvi elisp.aux elisp.??s elisp elisp-[0-9] elisp-[0-9][0-9] \
> + temp/$(manual)
> +	-(cd temp/$(manual); rm -f mkinstalldirs)
> +	cp $(srcdir)/mkinstalldirs temp/$(manual)
> +	(cd temp/$(manual); rm -f *~)
> +	(cd temp; tar chf - $(manual)) | gzip > $(manual).tar.gz
> +	-rm -rf temp

Since no one will ever prepare an Emacs tarball on Windows, targets
such as this seems unnecessary (it will also not work, since Windows
doesn't support hard links).

Is it really your intent here to allow only Cygwin-compiled ports to
be used?  If so, I'd suggest to say so in some prominent place, since
other makefile-w32.in files (e.g., in the `src' directory) don't make
those assumptions.  (They also take care to use available Windows
commands for operations such as rm, mv and cp.)

Better still, make these Makefiles work with stock Windows shells, if
you are prepared to invest an extra effort.  E.g., the ENVADD stuff
can be replaced with Make's own "export foo=bar" directives.  Or at
least detect that the Makefile is being used with non-Cygwin ports and
refuse to run.

The line "SHELL = CMD" is erroneous in any case, I think.

All these considerations are important especially in the `man'
directory, since the absence of Cygwin ports will prevent people from
building and changing the user manual, which is essential for proper
usage of Emacs.

In any case, thank you for your work.

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: Your Emacs changes
  2003-08-19  7:51   ` Eli Zaretskii
  2003-08-19  7:36     ` Jason Rumney
@ 2003-08-19  7:59     ` Peter 'Luna' Runestig
  2003-08-19 17:46       ` Eli Zaretskii
  1 sibling, 1 reply; 33+ messages in thread
From: Peter 'Luna' Runestig @ 2003-08-19  7:59 UTC (permalink / raw)
  Cc: emacs-devel

On 2003-08-19 09:51, Eli Zaretskii wrote:
[...]
> These patches will probably work only with the Cygwin-compiled ports
> of Texinfo and programs such as dvips and rm.  
> 
> [There's the fpTeX project which produces native Windows ports of TeX,
> DVIware, and related programs, so the assumption that only Cygwin
> ports of those programs exist is incorrect.  fpTeX is included on the
> annual releases of the "TeX Live" CDROM.]

I didn't know that, so this is only tested with Cygwin versions of the
TeX stuff.

> Also, the Makefile says "SHELL = cmd", but commands such as this:
> 
>> +emacs-lisp-intro.dvi: $(INFO_SOURCES)
>> +	$(ENVADD) $(TEXI2DVI) $(srcdir)/emacs-lisp-intro.texi
> 
> and this:
> 
>> +elisp.dvi: $(srcs) index.texi
>> +	# Avoid losing old contents of aux file entirely.
>> +	-mv elisp.aux elisp.oaux
>> +	# First shot to define xrefs.
>> +	$(texinputdir) $(TEX) $(srcdir)/elisp.texi
>> +	if [ a$(permuted_index) != a ]; \
>> +	then \
>> +	  $(srcdir)/permute-index; \
>> +	  mv permuted.fns elisp.fns; \
>> +	  texindex elisp.tp; \
>> +	else \
>> +	  texindex elisp.??; \
>> +	fi
>> +	$(texinputdir) $(TEX) $(srcdir)/elisp.texi
> 
> will only work if the shell is actually a port of a Unix shell, such
> as Bash, since (AFAIK) CMD doesn't understand the syntax
> 
>    "foo=bar some-command"
> 
> and also because texi2dvi is a Unix shell script that CMD cannot run
> directly, and because "if [ something" will totally confuse CMD.
> 
>> +dist: elisp elisp.dvi
>> +	-rm -rf temp
>> +	-mkdir temp
>> +	-mkdir temp/$(manual)
>> +	-ln $(srcdir)/README $(srcdir)/configure.in $(srcdir)/configure \
>> + $(srcdir)/Makefile.in $(srcdir)/permute-index $(srcs) \
>> + $(srcdir)/../man/texinfo.tex \
>> + elisp.dvi elisp.aux elisp.??s elisp elisp-[0-9] elisp-[0-9][0-9] \
>> + temp/$(manual)
>> +	-(cd temp/$(manual); rm -f mkinstalldirs)
>> +	cp $(srcdir)/mkinstalldirs temp/$(manual)
>> +	(cd temp/$(manual); rm -f *~)
>> +	(cd temp; tar chf - $(manual)) | gzip > $(manual).tar.gz
>> +	-rm -rf temp
> 
> Since no one will ever prepare an Emacs tarball on Windows, targets
> such as this seems unnecessary (it will also not work, since Windows
> doesn't support hard links).

I based makefile-w32.in on makefile.in, and forgot to clean them up
properly, I should do that. Those targets is probably not normally used,
since I have no problem running this with "nmake info" from CMD.EXE.

On a side note, NTFS does support hard links (AFAIK there's no native
tool for it though, but Cygwin's "ln" works).

-- 
Peter 'Luna' Runestig (fd. Altberg), Sweden <peter@runestig.com>
PGP Key ID: 0xD07BBE13
Fingerprint: 7B5C 1F48 2997 C061 DE4B  42EA CB99 A35C D07B BE13
AOL Instant Messenger Screen name: PRunestig
Yahoo! Messenger profile name: altberg

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: Your Emacs changes
  2003-08-19  7:36     ` Jason Rumney
@ 2003-08-19 17:32       ` Eli Zaretskii
  2003-08-22  9:58         ` Jason Rumney
  2003-08-22 11:13       ` Peter 'Luna' Runestig
  1 sibling, 1 reply; 33+ messages in thread
From: Eli Zaretskii @ 2003-08-19 17:32 UTC (permalink / raw)
  Cc: peter, emacs-devel

> From: Jason Rumney <jasonr@gnu.org>
> Date: 19 Aug 2003 08:36:48 +0100
> 
> rm, mv and cp are used already, even when cmd is the shell.

Sorry, I forgot about that.

However, I don't think we assume the Cygwin ports of these, do we?

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: Your Emacs changes
  2003-08-19  7:59     ` Peter 'Luna' Runestig
@ 2003-08-19 17:46       ` Eli Zaretskii
  2003-08-21  7:45         ` Jason Rumney
  2003-08-21  7:59         ` Jason Rumney
  0 siblings, 2 replies; 33+ messages in thread
From: Eli Zaretskii @ 2003-08-19 17:46 UTC (permalink / raw)
  Cc: emacs-devel

> Date: Tue, 19 Aug 2003 09:59:08 +0200
> From: "Peter 'Luna' Runestig" <peter@runestig.com>
> > 
> > [There's the fpTeX project which produces native Windows ports of TeX,
> > DVIware, and related programs, so the assumption that only Cygwin
> > ports of those programs exist is incorrect.  fpTeX is included on the
> > annual releases of the "TeX Live" CDROM.]
> 
> I didn't know that, so this is only tested with Cygwin versions of the
> TeX stuff.

I believe that with some caution, we could make it work with native
Windows ports as well.  The ENVADD stuff can be replaced with Make
directirves, and Unixy shell commands can be replaced with more or
less equivalent CMD commands.  Targets such as `dist' should be simply
removed, as they are not needed on Windows.

Colon-separated paths are a PITA, as I don't think Cygwin programs
support semi-colons there.  If indeed they don't, the only way out of
this mess I see is to tell people to edit the resultant Makefile by
hand, as much as I hate that.

> On a side note, NTFS does support hard links (AFAIK there's no native
> tool for it though, but Cygwin's "ln" works).

I knew that, but since native Windows programs don't support links,
their presence in NTFS is currently useless unless one works in a
Cygwin environment.

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: Your Emacs changes
  2003-08-19 17:46       ` Eli Zaretskii
@ 2003-08-21  7:45         ` Jason Rumney
  2003-08-21  7:59         ` Jason Rumney
  1 sibling, 0 replies; 33+ messages in thread
From: Jason Rumney @ 2003-08-21  7:45 UTC (permalink / raw)
  Cc: peter, emacs-devel

"Eli Zaretskii" <eliz@elta.co.il> writes:

> Colon-separated paths are a PITA, as I don't think Cygwin programs
> support semi-colons there.  If indeed they don't, the only way out of
> this mess I see is to tell people to edit the resultant Makefile by
> hand, as much as I hate that.

There are compiler specific files in nt, which should be included in
all w32 makefiles. This sort of thing could go there.

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: Your Emacs changes
  2003-08-19 17:46       ` Eli Zaretskii
  2003-08-21  7:45         ` Jason Rumney
@ 2003-08-21  7:59         ` Jason Rumney
  1 sibling, 0 replies; 33+ messages in thread
From: Jason Rumney @ 2003-08-21  7:59 UTC (permalink / raw)
  Cc: peter, emacs-devel

"Eli Zaretskii" <eliz@elta.co.il> writes:

> Colon-separated paths are a PITA, as I don't think Cygwin programs
> support semi-colons there.  If indeed they don't, the only way out of
> this mess I see is to tell people to edit the resultant Makefile by
> hand, as much as I hate that.

There are compiler specific files in nt, which should be included in
all w32 makefiles. This sort of thing could go there.

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: Your Emacs changes
  2003-08-19 17:32       ` Eli Zaretskii
@ 2003-08-22  9:58         ` Jason Rumney
  0 siblings, 0 replies; 33+ messages in thread
From: Jason Rumney @ 2003-08-22  9:58 UTC (permalink / raw)
  Cc: peter, emacs-devel

Eli Zaretskii wrote:

>>From: Jason Rumney <jasonr@gnu.org>
>>Date: 19 Aug 2003 08:36:48 +0100
>>
>>rm, mv and cp are used already, even when cmd is the shell.
> 
> 
> Sorry, I forgot about that.
> 
> However, I don't think we assume the Cygwin ports of these, do we?

No. But "rm -f *.log *.cp *.fn *.ky *.pg *.vr *.tp" does not use 
anything that is specific to Cygwin, so this is a non-issue.

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: Your Emacs changes
  2003-08-19  7:36     ` Jason Rumney
  2003-08-19 17:32       ` Eli Zaretskii
@ 2003-08-22 11:13       ` Peter 'Luna' Runestig
  1 sibling, 0 replies; 33+ messages in thread
From: Peter 'Luna' Runestig @ 2003-08-22 11:13 UTC (permalink / raw)
  Cc: Eli Zaretskii

On 2003-08-19 09:36, Jason Rumney wrote:
> "Eli Zaretskii" <eliz@elta.co.il> writes:
> 
>> Is it really your intent here to allow only Cygwin-compiled ports to
>> be used?  If so, I'd suggest to say so in some prominent place, since
>> other makefile-w32.in files (e.g., in the `src' directory) don't make
>> those assumptions.  (They also take care to use available Windows
>> commands for operations such as rm, mv and cp.)
> 
> rm, mv and cp are used already, even when cmd is the shell. The
> Windows versions of these commands are deficient, so Andrew decided
> long ago to use these instead. We have had no complaints about this
> policy.

FYI, while testing building emacs without Cygwin, but with other Windows
versions of rm and cp (which worked fine), I noticed that "touch" is
used in lisp/makefile.w32-in. A little dirty Windows replacement for
touch might be "echo. >>" (echo. sends a newline to stdout).
Also, I managed to "nmake bootstrap && nmake install" without having "mv".

-- 
Peter 'Luna' Runestig (fd. Altberg), Sweden <peter@runestig.com>
PGP Key ID: 0xD07BBE13
Fingerprint: 7B5C 1F48 2997 C061 DE4B  42EA CB99 A35C D07B BE13
AOL Instant Messenger Screen name: PRunestig
Yahoo! Messenger profile name: altberg

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Your Emacs changes
@ 2004-05-02 11:19 Richard Stallman
  0 siblings, 0 replies; 33+ messages in thread
From: Richard Stallman @ 2004-05-02 11:19 UTC (permalink / raw)
  Cc: emacs-devel

Since your papers have arrived, we can install them now; could you
resend them to emacs-devel?

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Your Emacs changes
@ 2004-05-10 17:55 Richard Stallman
  0 siblings, 0 replies; 33+ messages in thread
From: Richard Stallman @ 2004-05-10 17:55 UTC (permalink / raw)
  Cc: emacs-devel

Since your Emacs papers have arrived, how about if you send the latest
version of your changes to emacs-devel@gnu.org.

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Your Emacs changes
@ 2004-06-02 17:37 Richard Stallman
  0 siblings, 0 replies; 33+ messages in thread
From: Richard Stallman @ 2004-06-02 17:37 UTC (permalink / raw)
  Cc: emacs-devel

We have recorded your papers; now we can install your changes.  Please
send the latest version of your changes (with change log entries) to
this list, and people who work on Mac support can install them.

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: Your Emacs changes
       [not found] <E1CuNEB-0000sr-V7@fencepost.gnu.org>
@ 2005-01-31 14:50 ` Matt Hodges
  2005-02-03  6:40   ` Richard Stallman
  0 siblings, 1 reply; 33+ messages in thread
From: Matt Hodges @ 2005-01-31 14:50 UTC (permalink / raw)


[-- Attachment #1: Type: text/plain, Size: 356 bytes --]

>>>>> Richard Stallman writes:

 > We can install your Emacs changes now.  Could you send them to
 > emacs-devel again, with ChangeLog entries?

This is mainly calendar stuff.

There is also a suggestion to add an optional argument to
list-faces-display, and a few doc fixes.

(Is the reference to dired-marked-files in man/dired.texi obsolete?)

Thanks.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Emacs diffs. --]
[-- Type: text/x-patch, Size: 14600 bytes --]

Index: man/fixit.texi
===================================================================
RCS file: /cvsroot/emacs/emacs/man/fixit.texi,v
retrieving revision 1.17
diff -u -r1.17 fixit.texi
--- man/fixit.texi	13 Aug 2004 01:26:44 -0000	1.17
+++ man/fixit.texi	31 Jan 2005 14:32:58 -0000
@@ -159,7 +159,7 @@
 @table @kbd
 @item M-x flyspell-mode
 Enable Flyspell mode, which highlights all misspelled words.
-@item M-x flyspell-progmode
+@item M-x flyspell-prog-mode
 Enable Flyspell mode for comments and strings only.
 @item M-$
 Check and correct spelling of the word at point (@code{ispell-word}).
Index: man/calendar.texi
===================================================================
RCS file: /cvsroot/emacs/emacs/man/calendar.texi,v
retrieving revision 1.24
diff -u -r1.24 calendar.texi
--- man/calendar.texi	21 Jan 2005 20:49:30 -0000	1.24
+++ man/calendar.texi	31 Jan 2005 14:32:58 -0000
@@ -291,7 +291,9 @@
 @item C-c C-l
 Regenerate the calendar window (@code{redraw-calendar}).
 @item SPC
-Scroll the next window (@code{scroll-other-window}).
+Scroll the next window up (@code{scroll-other-window}).
+@item DEL
+Scroll the next window down (@code{scroll-other-window-down}).
 @item q
 Exit from calendar (@code{exit-calendar}).
 @end table
@@ -314,8 +316,9 @@
 
 @kindex SPC @r{(Calendar mode)}
   In Calendar mode, you can use @kbd{SPC} (@code{scroll-other-window})
-to scroll the other window.  This is handy when you display a list of
-holidays or diary entries in another window.
+to scroll the other window up and @kbd{DEL} (@code{scroll-other-window-down})
+to scroll the other window down.  This is handy when you display a list
+of holidays or diary entries in another window.
 
 @kindex q @r{(Calendar mode)}
 @findex exit-calendar
@@ -437,8 +440,8 @@
 @findex list-calendar-holidays
   To get even more detailed information, use the @kbd{a} command, which
 displays a separate buffer containing a list of all holidays in the
-current three-month range.  You can use @key{SPC} in the calendar window
-to scroll that list.
+current three-month range.  You can use @key{SPC} and @key{DEL} in the
+calendar window to scroll that list up and down.
 
 @findex holidays
   The command @kbd{M-x holidays} displays the list of holidays for the
@@ -861,7 +864,7 @@
 @noindent
 Thus, the long count date 12.16.11.16.6 means 12 baktun, 16 katun, 11
 tun, 16 uinal, and 6 kin.  The Emacs calendar can handle Mayan long
-count dates as early as 7.17.18.13.1, but no earlier.  When you use the
+count dates as early as 7.17.18.13.3, but no earlier.  When you use the
 @kbd{g m l} command, type the Mayan long count date with the baktun,
 katun, tun, uinal, and kin separated by periods.
 
@@ -1510,11 +1513,14 @@
 
 @findex timeclock-in
 @findex timeclock-out
+@findex timeclock-change
 @findex timeclock-workday-remaining
 @findex timeclock-when-to-leave
   Use the @kbd{M-x timeclock-in} command when you start working on a
 project, and @kbd{M-x timeclock-out} command when you're done.  Each
-time you do this, it adds one time interval to the record of the project.
+time you do this, it adds one time interval to the record of the
+project.  You can change to working on a different project with @kbd{M-x
+timeclock-change}.
 
   Once you've collected data from a number of time intervals, you can use
 @kbd{M-x timeclock-workday-remaining} to see how much time is left to
@@ -1529,12 +1535,13 @@
 @code{t}, or invoke the @kbd{M-x timeclock-modeline-display} command.
 
 @vindex timeclock-ask-before-exiting
-  Terminating the current Emacs session might or might not mean that
-you have stopped working on the project.  If you'd like Emacs to ask
-you about this, set the value of the variable
-@code{timeclock-ask-before-exiting} to @code{t} (via @kbd{M-x
-customize}).  By default, only an explicit @kbd{M-x timeclock-out}
-tells Emacs that the current interval is over.
+  Terminating the current Emacs session might or might not mean that you
+have stopped working on the project and, by default, Emacs queries this.
+However, you can set the value of the variable
+@code{timeclock-ask-before-exiting} to @code{nil} (via @kbd{M-x
+customize}) to avoid this behaviour; then, only an explicit @kbd{M-x
+timeclock-out} or @kbd{M-x timeclock-change} will tell Emacs that the
+current interval is over.
 
 @cindex @file{.timelog} file
 @vindex timeclock-file
Index: man/ChangeLog
===================================================================
RCS file: /cvsroot/emacs/emacs/man/ChangeLog,v
retrieving revision 1.451
diff -u -r1.451 ChangeLog
--- man/ChangeLog	30 Jan 2005 14:47:11 -0000	1.451
+++ man/ChangeLog	31 Jan 2005 14:32:58 -0000
@@ -1,3 +1,15 @@
+2005-01-31  Matt Hodges  <MPHodges@member.fsf.org>
+
+	* fixit.texi (Spelling): Fix typo.
+
+2005-01-31  Matt Hodges <MPHodges@member.fsf.org>
+	
+	* calendar.texi (General Calendar): Document binding of
+	scroll-other-window-down.
+	(Mayan Calendar): Fix earliest date.
+	(Time Intervals): Document timeclock-change.
+	(Time Intervals): Fix timeclock-ask-before-exiting documentation.
+
 2005-01-30  Luc Teirlinck  <teirllm@auburn.edu>
 
 	* custom.texi (Easy Customization): Adapt menu to node name change.
Index: lispref/edebug.texi
===================================================================
RCS file: /cvsroot/emacs/emacs/lispref/edebug.texi,v
retrieving revision 1.23
diff -u -r1.23 edebug.texi
--- lispref/edebug.texi	16 Feb 2004 22:16:53 -0000	1.23
+++ lispref/edebug.texi	31 Jan 2005 14:32:58 -0000
@@ -801,7 +801,7 @@
 
 @defopt edebug-print-circle
 If non-@code{nil}, Edebug binds @code{print-circle} to this value while
-printing results.  The default value is @code{nil}.
+printing results.  The default value is @code{t}.
 @end defopt
 
   Other programs can also use custom printing; see @file{cust-print.el}
@@ -909,7 +909,7 @@
 @example
 (defun fac (n)
   (if (= n 0) (edebug))
-;#6           1      0 =5
+;#6           1      = =5
   (if (< 0 n)
 ;#5         =
       (* n (fac (1- n)))
Index: lispref/ChangeLog
===================================================================
RCS file: /cvsroot/emacs/emacs/lispref/ChangeLog,v
retrieving revision 1.305
diff -u -r1.305 ChangeLog
--- lispref/ChangeLog	29 Jan 2005 14:05:34 -0000	1.305
+++ lispref/ChangeLog	31 Jan 2005 14:32:59 -0000
@@ -1,3 +1,9 @@
+2005-01-31  Matt Hodges  <MPHodges@member.fsf.org>
+
+	* edebug.texi (Printing in Edebug): Fix default value of
+	edebug-print-circle.
+	(Coverage Testing): Fix displayed frequency count data.
+
 2005-01-29  Eli Zaretskii  <eliz@gnu.org>
 
 	* commands.texi (Misc Events): Describe the help-echo event.
Index: lisp/calendar/calendar.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/calendar/calendar.el,v
retrieving revision 1.160
diff -u -r1.160 calendar.el
--- lisp/calendar/calendar.el	20 Dec 2004 18:09:46 -0000	1.160
+++ lisp/calendar/calendar.el	31 Jan 2005 14:32:59 -0000
@@ -140,12 +140,25 @@
   :prefix "calendar-"
   :group 'calendar)
 
+(defconst calendar-buffer "*Calendar*"
+  "Name of the buffer used for the calendar.")
 
 ;;;###autoload
 (defcustom calendar-week-start-day 0
   "*The day of the week on which a week in the calendar begins.
-0 means Sunday (default), 1 means Monday, and so on."
+0 means Sunday (default), 1 means Monday, and so on.
+
+If you change this variable directly after starting `calendar',
+you should call `redraw-calendar' to update the calendar display
+to reflect the change, otherwise movement commands will not work
+correctly."
   :type 'integer
+  :set (lambda (sym val)
+         (set sym val)
+         (let ((buffer (get-buffer calendar-buffer)))
+           (when (buffer-live-p buffer)
+             (with-current-buffer buffer
+               (redraw-calendar)))))
   :group 'calendar)
 
 ;;;###autoload
@@ -1303,9 +1316,6 @@
   :type 'sexp
   :group 'holidays)
 
-(defconst calendar-buffer "*Calendar*"
-  "Name of the buffer used for the calendar.")
-
 (defconst holiday-buffer "*Holidays*"
   "Name of the buffer used for the displaying the holidays.")
 
@@ -1572,6 +1582,11 @@
           (const :tag "use current frame" nil))
   :group 'calendar)
 
+(defcustom calendar-minimum-window-height 8
+  "Minimum height that the calendar window should use."
+  :type 'integer
+  :group 'calendar)
+
 ;;;###autoload
 (defun calendar (&optional arg)
   "Choose between the one frame, two frame, or basic calendar displays.
@@ -2039,28 +2054,33 @@
           (or (not mon)
               (let ((offset (calendar-interval mon yr month year)))
                 (and (<= offset 1) (>= offset -1)))))
-         (day-in-week (calendar-day-of-week today)))
+         (day-in-week (calendar-day-of-week today))
+         (in-calendar-window (eq (window-buffer (selected-window))
+                                 (get-buffer calendar-buffer))))
     (update-calendar-mode-line)
     (if mon
         (generate-calendar mon yr)
-        (generate-calendar month year))
+      (generate-calendar month year))
     (calendar-cursor-to-visible-date
      (if today-visible today (list displayed-month 1 displayed-year)))
     (set-buffer-modified-p nil)
-    (if (or (one-window-p t) (/= (frame-width) (window-width)))
-	;; Don't mess with the window size, but ensure that the first
-	;; line is fully visible
-	(set-window-vscroll nil 0)
-      ;; Adjust the window to exactly fit the displayed calendar
-      (fit-window-to-buffer))
-    (sit-for 0)
+    ;; Don't do any window-related stuff if we weren't called from a
+    ;; window displaying the calendar
+    (when in-calendar-window
+      (if (or (one-window-p t) (/= (frame-width) (window-width)))
+          ;; Don't mess with the window size, but ensure that the first
+          ;; line is fully visible
+          (set-window-vscroll nil 0)
+        ;; Adjust the window to exactly fit the displayed calendar
+        (fit-window-to-buffer nil nil calendar-minimum-window-height))
+      (sit-for 0))
     (if (and (boundp 'font-lock-mode)
 	     font-lock-mode)
 	(font-lock-fontify-buffer))
     (and mark-holidays-in-calendar
 ;;;         (calendar-date-is-legal-p today) ; useful for BC dates
          (mark-calendar-holidays)
-         (sit-for 0))
+         (when in-calendar-window (sit-for 0)))
     (unwind-protect
         (if mark-diary-entries-in-calendar (mark-diary-entries))
       (if today-visible
@@ -2074,7 +2094,7 @@
 ;;; stands, almost all other calendar functions (eg holidays) would 
 ;;; at best have unpredictable results for such dates.
   (if (< (+ month (* 12 (1- year))) 2)
-      (error "Months before February, 1 AD are not available"))
+      (error "Months before January, 1 AD cannot be displayed"))
   (setq displayed-month month
         displayed-year year)
   (erase-buffer)
@@ -2229,6 +2249,7 @@
   (define-key calendar-mode-map "S"   'calendar-sunrise-sunset)
   (define-key calendar-mode-map "M"   'calendar-phases-of-moon)
   (define-key calendar-mode-map " "   'scroll-other-window)
+  (define-key calendar-mode-map "\C-?" 'scroll-other-window-down)
   (define-key calendar-mode-map "\C-c\C-l" 'redraw-calendar)
   (define-key calendar-mode-map "."   'calendar-goto-today)
   (define-key calendar-mode-map "o"   'calendar-other-month)
Index: lisp/faces.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/faces.el,v
retrieving revision 1.299
diff -u -r1.299 faces.el
--- lisp/faces.el	1 Jan 2005 14:21:37 -0000	1.299
+++ lisp/faces.el	31 Jan 2005 14:32:59 -0000
@@ -1143,15 +1143,26 @@
 ;; conflict with Lucid, which uses that name differently.
 
 (defvar help-xref-stack)
-(defun list-faces-display ()
+(defun list-faces-display (&optional regexp)
   "List all faces, using the same sample text in each.
 The sample text is a string that comes from the variable
-`list-faces-sample-text'."
-  (interactive)
+`list-faces-sample-text'.
+
+If REGEXP is non-nil, list only those faces with names matching
+this regular expression.  When called interactively with a prefix
+arg, prompt for a regular expression."
+  (interactive (list (and current-prefix-arg
+                          (read-string "List faces matching regexp: "))))
   (let ((faces (sort (face-list) #'string-lessp))
-	(face nil)
 	(frame (selected-frame))
 	disp-frame window face-name)
+    (when (> (length regexp) 0)
+      (setq faces
+            (delq nil
+                  (mapcar (lambda (f)
+                            (when (string-match regexp (symbol-name f))
+                              f))
+                          faces))))
     (with-output-to-temp-buffer "*Faces*"
       (save-excursion
 	(set-buffer standard-output)
@@ -1164,9 +1175,7 @@
 	   "\\[help-follow] on a face name to customize it\n"
 	   "or on its sample text for a description of the face.\n\n")))
 	(setq help-xref-stack nil)
-	(while faces
-	  (setq face (car faces))
-	  (setq faces (cdr faces))
+	(dolist (face faces)
 	  (setq face-name (symbol-name face))
 	  (insert (format "%25s " face-name))
 	  ;; Hyperlink to a customization buffer for the face.  Using
@@ -1203,10 +1212,8 @@
     (setq disp-frame (if window (window-frame window)
 		       (car (frame-list))))
     (or (eq frame disp-frame)
-	(let ((faces (face-list)))
-	  (while faces
-	    (copy-face (car faces) (car faces) frame disp-frame)
-	    (setq faces (cdr faces)))))))
+        (dolist (face faces)
+          (copy-face face face frame disp-frame)))))
 
 (defun describe-face (face &optional frame)
   "Display the properties of face FACE on FRAME.
Index: lisp/ChangeLog
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/ChangeLog,v
retrieving revision 1.6940
diff -u -r1.6940 ChangeLog
--- lisp/ChangeLog	31 Jan 2005 11:54:36 -0000	1.6940
+++ lisp/ChangeLog	31 Jan 2005 14:33:01 -0000
@@ -1,3 +1,19 @@
+2005-01-31  Matt Hodges  <MPHodges@member.fsf.org>
+
+	* faces.el (list-faces-display): Add optional argument.
+
+2005-01-31  Matt Hodges <MPHodges@member.fsf.org>
+
+	* calendar/calendar.el (calendar-buffer): Move above
+	calendar-week-start-day.
+	(calendar-week-start-day): Doc fix.  Add :set function.
+	(generate-calendar-window): Don't resize window if selected-window
+	is not displaying the calendar buffer.
+	(calendar-minimum-window-height): New variable.
+	(generate-calendar-window): Use it.
+	(calendar-mode-map): Bind DEL to scroll-other-window-down.
+	(generate-calendar): More precise error message.
+
 2005-01-31  Richard M. Stallman  <rms@gnu.org>
 
 	* textmodes/ispell.el (ispell-local-dictionary-overridden): New var.

[-- Attachment #3: Type: text/plain, Size: 142 bytes --]

_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: Your Emacs changes
  2005-01-31 14:50 ` Matt Hodges
@ 2005-02-03  6:40   ` Richard Stallman
  0 siblings, 0 replies; 33+ messages in thread
From: Richard Stallman @ 2005-02-03  6:40 UTC (permalink / raw)
  Cc: emacs-devel

    (Is the reference to dired-marked-files in man/dired.texi obsolete?)

I guess so.

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: Your Emacs changes
       [not found] <E1D7MTJ-0002Jj-BJ@fencepost.gnu.org>
@ 2005-04-26 12:07 ` Arne Jørgensen
  2005-04-28 11:58   ` Thien-Thi Nguyen
  0 siblings, 1 reply; 33+ messages in thread
From: Arne Jørgensen @ 2005-04-26 12:07 UTC (permalink / raw)


[-- Attachment #1: Type: text/plain, Size: 923 bytes --]

Richard Stallman <rms@gnu.org> wrote March 4, 2005:

> We can now install them.  Could you send me the latest version of your
> changes, with change log entries?

First of all: pardon me for answering the above e-mail on this list. I
have however tried to answer it privately several times since I
received it without succes (I used to having problems with
gnu.org-mailserver). So now I'm trying to post to list via Gmane
instead.

The mentioned changes where the coding system recognition for LaTeX
files.

If it will not be commited to Emacs 22 (which I would understand) I
will probably post it to gnu.emacs.sources.

This is a ChangeLog entry for the change:

2005-04-26  Arne Jørgensen  <arne@arnested.dk>

	* international/latexenc.el: New file. Guess correct coding system
	of LaTeX files.

	* international/mule-conf.el (file-coding-system-alist): Use it.

Kind regards,
-- 
Arne Jørgensen <http://arnested.dk/>


[-- Attachment #2: lisp/international/latexenc.el --]
[-- Type: application/emacs-lisp, Size: 7287 bytes --]

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: Patch for lisp/international/mule-conf.el --]
[-- Type: text/x-patch, Size: 706 bytes --]

Index: lisp/international/mule-conf.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/international/mule-conf.el,v
retrieving revision 1.78
diff -u -p -r1.78 mule-conf.el
--- lisp/international/mule-conf.el	20 Apr 2005 14:31:24 -0000	1.78
+++ lisp/international/mule-conf.el	26 Apr 2005 11:47:26 -0000
@@ -501,6 +501,7 @@ for decoding and encoding files, process
 	("\\(\\`\\|/\\)loaddefs.el\\'" . (raw-text . raw-text-unix))
 	("\\.tar\\'" . (no-conversion . no-conversion))
 	( "\\.po[tx]?\\'\\|\\.po\\." . po-find-file-coding-system)
+	("\\.tex\\|\\.ltx\\|\\.dtx\\|\\.drv\\'" . latexenc-find-file-coding-system)
 	("" . (undecided . nil))))
 
 \f

[-- Attachment #4: Type: text/plain, Size: 142 bytes --]

_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: Your Emacs changes
  2005-04-26 12:07 ` Your Emacs changes Arne Jørgensen
@ 2005-04-28 11:58   ` Thien-Thi Nguyen
  2005-04-29 12:11     ` latexenc-find-file-coding-system is slow. (was: Your Emacs changes) Lute Kamstra
  0 siblings, 1 reply; 33+ messages in thread
From: Thien-Thi Nguyen @ 2005-04-28 11:58 UTC (permalink / raw)
  Cc: emacs-devel

Arne Jørgensen <arne@arnested.dk> writes:

> Richard Stallman <rms@gnu.org> wrote March 4, 2005:
> 
> > We can now install them.  Could you send me the
> > latest version of your changes, with change log
> > entries?
> 
> So now I'm trying to post to list

i have installed the files w/ the suggested names;
only modification was to re-indent latexenc.el.

thi

^ permalink raw reply	[flat|nested] 33+ messages in thread

* latexenc-find-file-coding-system is slow. (was: Your Emacs changes)
  2005-04-28 11:58   ` Thien-Thi Nguyen
@ 2005-04-29 12:11     ` Lute Kamstra
  2005-04-29 14:57       ` latexenc-find-file-coding-system is slow Arne Jørgensen
                         ` (4 more replies)
  0 siblings, 5 replies; 33+ messages in thread
From: Lute Kamstra @ 2005-04-29 12:11 UTC (permalink / raw)
  Cc: emacs-devel, Arne Jørgensen

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=utf-8, Size: 2121 bytes --]

Thien-Thi Nguyen <ttn@gnu.org> writes:

> Arne Jørgensen <arne@arnested.dk> writes:
>
>> Richard Stallman <rms@gnu.org> wrote March 4, 2005:
>> 
>> > We can now install them.  Could you send me the
>> > latest version of your changes, with change log
>> > entries?
>> 
>> So now I'm trying to post to list
>
> i have installed the files w/ the suggested names;
> only modification was to re-indent latexenc.el.

Since this change, opening a 117k .texi file takes seconds.  It used
to take a fraction of a second.  I did a debug-on-quit during the wait
a couple of times and that consistently gave me one of these two
backtraces:

Debugger entered--Lisp error: (quit)
  re-search-forward("^[^%$]*\\inputencoding{\\(.*\\)}" nil t)
  latexenc-find-file-coding-system((insert-file-contents "/soft/careful/emacs/lispref/modes.texi" t 0 117151 nil))
  insert-file-contents("/soft/careful/emacs/lispref/modes.texi" t)
  byte-code("Â.Ã	Â\".)‡" [inhibit-read-only filename t insert-file-contents] 3)
  find-file-noselect-1(#<buffer modes.texi> "/soft/careful/emacs/lispref/modes.texi" nil nil "/soft/careful/emacs/lispref/modes.texi" (185464 775))
  find-file-noselect("/soft/careful/emacs/lispref/modes.texi" nil nil t)
  find-file("/soft/careful/emacs/lispref/modes.texi" t)
  call-interactively(find-file)

Debugger entered--Lisp error: (quit)
  re-search-forward("^[^%$]*\\usepackage\\[\\(.*\\)\\]{inputenc}" nil t)
  latexenc-find-file-coding-system((insert-file-contents "/soft/careful/emacs/lispref/modes.texi" t 0 117151 nil))
  insert-file-contents("/soft/careful/emacs/lispref/modes.texi" t)
  byte-code("Â.Ã	Â\".)‡" [inhibit-read-only filename t insert-file-contents] 3)
  find-file-noselect-1(#<buffer modes.texi<3>> "/soft/careful/emacs/lispref/modes.texi" nil nil "/soft/careful/emacs/lispref/modes.texi" (185464 775))
  find-file-noselect("/soft/careful/emacs/lispref/modes.texi" nil nil t)
  find-file("/soft/careful/emacs/lispref/modes.texi" t)
  call-interactively(find-file)

I guess the re-searching in latexenc-find-file-coding-system needs to
be improved.

Lute.

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: latexenc-find-file-coding-system is slow.
  2005-04-29 12:11     ` latexenc-find-file-coding-system is slow. (was: Your Emacs changes) Lute Kamstra
@ 2005-04-29 14:57       ` Arne Jørgensen
  2005-04-29 15:48         ` Lute Kamstra
  2005-04-29 16:13       ` Stefan Monnier
                         ` (3 subsequent siblings)
  4 siblings, 1 reply; 33+ messages in thread
From: Arne Jørgensen @ 2005-04-29 14:57 UTC (permalink / raw)
  Cc: Lute Kamstra

Lute Kamstra <Lute.Kamstra.lists@xs4all.nl> writes:

> Thien-Thi Nguyen <ttn@gnu.org> writes:
>
>> Arne Jørgensen <arne@arnested.dk> writes:
>>
>>> Richard Stallman <rms@gnu.org> wrote March 4, 2005:
>>> 
>>> > We can now install them.  Could you send me the
>>> > latest version of your changes, with change log
>>> > entries?
>>> 
>>> So now I'm trying to post to list
>>
>> i have installed the files w/ the suggested names;
>> only modification was to re-indent latexenc.el.
>
> Since this change, opening a 117k .texi file takes seconds. 

First of all latexenc-find-file-coding-system shouldn't search .texi
files. I just tested it and in my emacs it is not called on .texi
files, but there could be something wrong with the entry in
file-coding-system-alist:

 ("\\.tex\\|\\.ltx\\|\\.dtx\\|\\.drv\\'" . latexenc-find-file-coding-system)

Does that entry match .texi files?

Secondly the problem will of course still be there on large .tex files
etc. which latexenc-find-file-coding-system is supposed search. See
below.

But my guess is .tex files normally doesn't grow as large as .texi
files. YMMV.

> It used
> to take a fraction of a second.  I did a debug-on-quit during the wait
> a couple of times and that consistently gave me one of these two
> backtraces:

[...]

> I guess the re-searching in latexenc-find-file-coding-system needs to
> be improved.

latexenc-find-file-coding-system re-searches all of the files for an
\inputencoding{...} command and if none is found it re-searches all of
the file for an \usepackage[...]{inputenc} command.

The two re-search-forward's could of course be limited to only search
the first n positions of the buffer. The problem is though to find
decent defaults for these limits.

It would be possible to introduce some variables for these limits and
let people customize them for their individual needs/tastes.

Kind regards,
-- 
Arne Jørgensen <http://arnested.dk/>

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: latexenc-find-file-coding-system is slow.
  2005-04-29 14:57       ` latexenc-find-file-coding-system is slow Arne Jørgensen
@ 2005-04-29 15:48         ` Lute Kamstra
  0 siblings, 0 replies; 33+ messages in thread
From: Lute Kamstra @ 2005-04-29 15:48 UTC (permalink / raw)
  Cc: emacs-devel

Arne Jørgensen <arne@arnested.dk> writes:

> Lute Kamstra <Lute.Kamstra.lists@xs4all.nl> writes:

[...]

>> Since this change, opening a 117k .texi file takes seconds. 
>
> First of all latexenc-find-file-coding-system shouldn't search .texi
> files. I just tested it and in my emacs it is not called on .texi
> files, but there could be something wrong with the entry in
> file-coding-system-alist:
>
>  ("\\.tex\\|\\.ltx\\|\\.dtx\\|\\.drv\\'" . latexenc-find-file-coding-system)
>
> Does that entry match .texi files?

Yup, you probably mean "\\.\\(tex\\|ltx\\|dtx\\|drv\\)\\'".  I'll fix that.

> Secondly the problem will of course still be there on large .tex files
> etc. which latexenc-find-file-coding-system is supposed search. See
> below.
>
> But my guess is .tex files normally doesn't grow as large as .texi
> files. YMMV.

My LaTeX files are typically 100k, sometimes even 200k.

>> It used to take a fraction of a second.  I did a debug-on-quit
>> during the wait a couple of times and that consistently gave me one
>> of these two backtraces:
>
> [...]
>
>> I guess the re-searching in latexenc-find-file-coding-system needs to
>> be improved.
>
> latexenc-find-file-coding-system re-searches all of the files for an
> \inputencoding{...} command and if none is found it re-searches all of
> the file for an \usepackage[...]{inputenc} command.
>
> The two re-search-forward's could of course be limited to only search
> the first n positions of the buffer. The problem is though to find
> decent defaults for these limits.
>
> It would be possible to introduce some variables for these limits and
> let people customize them for their individual needs/tastes.

That seems like a good approach.

There is no need to search beyond a \begin{document}, is it?  Maybe
that can be used as well: first search the first N characters for
\begin{document} and then search backward for \inputencoding{...} and
\usepackage[...]{inputenc}.  You probably have to test this on a
number of files to see if it really helps.

Would you like to work on this?

Another idea is to change the regexps and search only for
\inputencoding{...} and \usepackage[...]{inputenc} at the start of a
line.  That's where they typically are.  This will speed up the search
dramatically.  If you agree with it, I'll apply this fix for now.

Lute.

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: latexenc-find-file-coding-system is slow.
  2005-04-29 12:11     ` latexenc-find-file-coding-system is slow. (was: Your Emacs changes) Lute Kamstra
  2005-04-29 14:57       ` latexenc-find-file-coding-system is slow Arne Jørgensen
@ 2005-04-29 16:13       ` Stefan Monnier
       [not found]         ` <877jil8rz5.fsf@arnested.dk>
  2005-04-30  8:08       ` David Kastrup
                         ` (2 subsequent siblings)
  4 siblings, 1 reply; 33+ messages in thread
From: Stefan Monnier @ 2005-04-29 16:13 UTC (permalink / raw)
  Cc: Thien-Thi Nguyen, Arne Jørgensen, emacs-devel

>   re-search-forward("^[^%$]*\\usepackage\\[\\(.*\\)\\]{inputenc}" nil t)
                              ^^
shouldn't this be \\\\ ?

> I guess the re-searching in latexenc-find-file-coding-system needs to
> be improved.

I see two obvious ways to speed it up:
- use (re-search-forward "\\\\usepackage\\[\\(.*\\)\\]{inputenc}")
  and once it matched, check if it's inside a comment.  This should be
  *much* faster because of how the regexp-engine works (basically,
  it will backtrack much less).  The search as it is coded now could very
  well fail with "regexp stack overflow".
- don't search through the whole buffer but only though the first part (10K
  or so) of it.

> Since this change, opening a 117k .texi file takes seconds.  It used

The filename regexp was broken, I've adjusted it so it doesn't get triggered
for .texi files.


        Stefan

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: latexenc-find-file-coding-system is slow.
       [not found]         ` <877jil8rz5.fsf@arnested.dk>
@ 2005-04-29 17:19           ` Lute Kamstra
  0 siblings, 0 replies; 33+ messages in thread
From: Lute Kamstra @ 2005-04-29 17:19 UTC (permalink / raw)
  Cc: Thien-Thi Nguyen, Stefan Monnier, emacs-devel

Arne Jørgensen <arne@arnested.dk> writes:

> Stefan Monnier <monnier@iro.umontreal.ca> writes:

[...]

>> - use (re-search-forward "\\\\usepackage\\[\\(.*\\)\\]{inputenc}")
>>   and once it matched, check if it's inside a comment.  This should be
>>   *much* faster because of how the regexp-engine works (basically,
>>   it will backtrack much less).  The search as it is coded now could very
>>   well fail with "regexp stack overflow".

[...]

> Lute Kamstra <Lute.Kamstra.lists@xs4all.nl> writes:

[...]

>> Another idea is to change the regexps and search only for
>> \inputencoding{...} and \usepackage[...]{inputenc} at the start of a
>> line.  That's where they typically are.  This will speed up the search
>> dramatically.
>
> That would probably be an ok compromise (between what is actually
> legal LaTeX and what is normally used). But the other approaches can
> do the trick I would prefer to avoid this.

You can avoid it by using Stefan's suggestion above.  It is probably
faster than my idea, but a bit more work to implement.

Lute.

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: latexenc-find-file-coding-system is slow.
  2005-04-29 12:11     ` latexenc-find-file-coding-system is slow. (was: Your Emacs changes) Lute Kamstra
  2005-04-29 14:57       ` latexenc-find-file-coding-system is slow Arne Jørgensen
  2005-04-29 16:13       ` Stefan Monnier
@ 2005-04-30  8:08       ` David Kastrup
  2005-05-01 11:08         ` Lute Kamstra
  2005-05-01 12:07       ` latexenc-find-file-coding-system is slow. (was: Your Emacs changes) Richard Stallman
       [not found]       ` <871x8m96p6.fsf@arnested.dk>
  4 siblings, 1 reply; 33+ messages in thread
From: David Kastrup @ 2005-04-30  8:08 UTC (permalink / raw)
  Cc: Thien-Thi Nguyen, Arne =?utf-8?Q?J=C3=B8rgensen?=, emacs-devel

Lute Kamstra <Lute.Kamstra.lists@xs4all.nl> writes:

> Thien-Thi Nguyen <ttn@gnu.org> writes:
>
>> Arne Jørgensen <arne@arnested.dk> writes:
>>
>>> Richard Stallman <rms@gnu.org> wrote March 4, 2005:
>>> 
>>> > We can now install them.  Could you send me the
>>> > latest version of your changes, with change log
>>> > entries?
>>> 
>>> So now I'm trying to post to list
>>
>> i have installed the files w/ the suggested names;
>> only modification was to re-indent latexenc.el.
>
> Since this change, opening a 117k .texi file takes seconds.  It used
> to take a fraction of a second.  I did a debug-on-quit during the wait
> a couple of times and that consistently gave me one of these two
> backtraces:
>
> Debugger entered--Lisp error: (quit)
>   re-search-forward("^[^%$]*\\inputencoding{\\(.*\\)}" nil t)
>
> Debugger entered--Lisp error: (quit)
>   re-search-forward("^[^%$]*\\usepackage\\[\\(.*\\)\\]{inputenc}" nil t)
>
> I guess the re-searching in latexenc-find-file-coding-system needs to
> be improved.

It simply needs to get limited: if the string is not in the first 3k
or so, don't look further for it.

However, if a 117k file already takes seconds, this also is a sign
that the regular expressions are faulty (even searching the whole file
should not take seconds at this size).  And it certainly is a bug that
the inverted character range contains $ instead of \n: $ is not
special in the expression.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: latexenc-find-file-coding-system is slow.
  2005-04-30  8:08       ` David Kastrup
@ 2005-05-01 11:08         ` Lute Kamstra
  0 siblings, 0 replies; 33+ messages in thread
From: Lute Kamstra @ 2005-05-01 11:08 UTC (permalink / raw)
  Cc: Thien-Thi Nguyen, Arne =?utf-8?Q?J=C3=B8rgensen?=, Stefan Monnier,
	emacs-devel

David Kastrup <dak@gnu.org> writes:

[...]

> However, if a 117k file already takes seconds, this also is a sign
> that the regular expressions are faulty (even searching the whole file
> should not take seconds at this size).  And it certainly is a bug that
> the inverted character range contains $ instead of \n: $ is not
> special in the expression.

For now, I've installed the fix below.

Lute.


*** lisp/international/latexenc.el      28 Apr 2005 20:58:55 -0000      1.2
--- lisp/international/latexenc.el      1 May 2005 10:49:43 -0000
***************
*** 121,128 ****
          ;; try to find the coding system in this file
          (goto-char (point-min))
          (if (or
!              (re-search-forward "^[^%$]*\\inputencoding{\\(.*\\)}" nil t)
!              (re-search-forward "^[^%$]*\\usepackage\\[\\(.*\\)\\]{inputenc}" nil t))
              (let* ((match (match-string 1))
                     (sym (intern match)))
                (when (latexenc-inputenc-to-coding-system match)
--- 121,128 ----
          ;; try to find the coding system in this file
          (goto-char (point-min))
          (if (or
!              (re-search-forward "^[^%\n]*\\\\inputencoding{\\(.*\\)}" nil t)
!              (re-search-forward "^[^%\n]*\\\\usepackage\\[\\(.*\\)\\]{inputenc}" nil t))
              (let* ((match (match-string 1))
                     (sym (intern match)))
                (when (latexenc-inputenc-to-coding-system match)

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: latexenc-find-file-coding-system is slow. (was: Your Emacs changes)
  2005-04-29 12:11     ` latexenc-find-file-coding-system is slow. (was: Your Emacs changes) Lute Kamstra
                         ` (2 preceding siblings ...)
  2005-04-30  8:08       ` David Kastrup
@ 2005-05-01 12:07       ` Richard Stallman
       [not found]       ` <871x8m96p6.fsf@arnested.dk>
  4 siblings, 0 replies; 33+ messages in thread
From: Richard Stallman @ 2005-05-01 12:07 UTC (permalink / raw)
  Cc: ttn, arne, emacs-devel

    I guess the re-searching in latexenc-find-file-coding-system needs to
    be improved.

It would be faster to search for the strings "\\inputencoding{" and
"\\usepackage\\[" using search-forward, and each time it finds an
occurrence, do string-match at the beginning of the line to see if the
line is a real match.  It would need to do this loop once for each
string.  Such a loop could easily be 100 times faster than the call to
re-search-forward.

   (while (and (not found) (search-forward string nil t))
     (save-excursion
       (beginning-of-line)
       (if (looking-at entire-regexp)
           (setq found (point))))
     (forward-line 1))

There's another way to speed this up, if there is some rule about
where in the file those constructs should occur.  For instance, if the
rule is that they should occur before the first \foo, and \foo is
commonly found in LaTeX files, it could be faster to search first for
\foo, then use the position of the first \foo as a bound in the other
searches.

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: latexenc-find-file-coding-system is slow.
       [not found]       ` <871x8m96p6.fsf@arnested.dk>
@ 2005-05-11 11:48         ` Lute Kamstra
  2005-05-11 17:21           ` Arne Jørgensen
  0 siblings, 1 reply; 33+ messages in thread
From: Lute Kamstra @ 2005-05-11 11:48 UTC (permalink / raw)
  Cc: Thien-Thi Nguyen, Stefan Monnier, Richard Stallman, emacs-devel

[For some reason, I didn't see your message on emacs-devel.]

Arne Jørgensen <arne@arnested.dk> writes:

> Lute Kamstra <Lute.Kamstra.lists@xs4all.nl> writes:
>
>> I guess the re-searching in latexenc-find-file-coding-system needs to
>> be improved.
>
> I have made a try at speeding up the search for input encoding.

Thanks.

> What is does now is search for "inputenc" with `search-forward' until
> the first match also matches (with `looking-at') an
> \inputencoding{...} or \usepackage[...]{inputenc} (that is not inside
> a comment).

That should speed things up.

> For now I have not added a limit for how far to search for this
> because I still see no way to decide this for all common cases. And
> then I would like to hear if the change has any effect on the speed as
> it is.

It's probably fast enough now.

> I limitied the search for a TeX-master/tex-main-file in the local
> variables section though. The limit is borrowed from
> `hack-local-variables'.

That should work.

[...]

I think there a some minor problems with the details of the
implementation:

> Index: lisp/international/latexenc.el
> ===================================================================
> RCS file: /cvsroot/emacs/emacs/lisp/international/latexenc.el,v
> retrieving revision 1.3
> diff -u -p -r1.3 latexenc.el
> --- lisp/international/latexenc.el	1 May 2005 11:01:49 -0000	1.3
> +++ lisp/international/latexenc.el	4 May 2005 18:12:23 -0000
> @@ -120,24 +120,33 @@ coding system names is determined from `
>        (save-excursion
>          ;; try to find the coding system in this file
>          (goto-char (point-min))
> -        (if (or
> -             (re-search-forward "^[^%\n]*\\\\inputencoding{\\(.*\\)}" nil t)
> -             (re-search-forward "^[^%\n]*\\\\usepackage\\[\\(.*\\)\\]{inputenc}" nil t))
> -            (let* ((match (match-string 1))
> -                   (sym (intern match)))
> -              (when (latexenc-inputenc-to-coding-system match)
> -                (setq sym (latexenc-inputenc-to-coding-system match))
> -                (when (coding-system-p sym)
> -		  sym
> -                  (if (and (require 'code-pages nil t) (coding-system-p sym))
> -                      sym
> -                    'undecided))))
> +	(if (catch 'cs
> +	      (let ((case-fold-search nil))
> +		(while (search-forward "inputenc" nil t)
> +		  (goto-char (match-beginning 0))
> +		  (beginning-of-line)
> +		  (if (or (looking-at "[^%\n]*\\\\usepackage\\[\\(.*\\)\\]{\\(.*,\\)?inputenc\\(,.*\\)?}")

That also matches something like:

\usepackage[opt]{package} % don't use {package,inputenc}

> +			  (looking-at "[^%\n]*\\\\inputencoding{\\(.*\\)}"))
> +		      (throw 'cs (match-string 1))

Why throw (match-string 1) instead of t?

> +		    (goto-char (match-end 0))))))
> +	    (let* ((match (match-string 1))
> +		   (sym (intern match)))
> +	      (when (latexenc-inputenc-to-coding-system match)
> +		(setq sym (latexenc-inputenc-to-coding-system match)))
> +	      (when (coding-system-p sym)
> +		sym
> +		(if (and (require 'code-pages nil t) (coding-system-p sym))
> +		    sym
> +		  'undecided)))
>            ;; else try to find it in the master/main file
> -          (let (latexenc-main-file)
> +          (let (latexenc-main-file
> +		bound)
>              ;; is there a TeX-master or tex-main-file in the local variable section
>              (unless latexenc-dont-use-TeX-master-flag
>                (goto-char (point-max))
> -              (when (re-search-backward "^%+ *\\(TeX-master\\|tex-main-file\\): *\"\\(.+\\)\"" nil t)
> +	      (search-backward "\n\^L" (max (- (point-max) 3000) (point-min)) 'move)
> +	      (setq bound (search-forward "Local Variables:" nil t))
> +              (when (re-search-forward "^%+ *\\(TeX-master\\|tex-main-file\\): *\"\\(.+\\)\"" nil t)
>                  (let ((file (concat (file-name-directory (nth 1 arg-list)) (match-string 2))))
>                    (if (file-exists-p file)
>                        (setq latexenc-main-file file)

You don't seem to use the variable bound.

Could you also write a ChangeLog entry for your patch?

Lute.

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: latexenc-find-file-coding-system is slow.
  2005-05-11 11:48         ` latexenc-find-file-coding-system is slow Lute Kamstra
@ 2005-05-11 17:21           ` Arne Jørgensen
  2005-05-11 23:07             ` Lute Kamstra
  0 siblings, 1 reply; 33+ messages in thread
From: Arne Jørgensen @ 2005-05-11 17:21 UTC (permalink / raw)
  Cc: Thien-Thi Nguyen, Stefan Monnier, Lute Kamstra, Richard Stallman

[-- Attachment #1: Type: text/plain, Size: 3661 bytes --]

Lute Kamstra <Lute.Kamstra.lists@xs4all.nl> writes:

> [For some reason, I didn't see your message on emacs-devel.]

Neither did I. It got lost again as most of my mail to @gnu.org
addresses do. This is posted through Gmane instead.

> Arne Jørgensen <arne@arnested.dk> writes:

[...]

> I think there a some minor problems with the details of the
> implementation:
>
>> Index: lisp/international/latexenc.el
>> ===================================================================
>> RCS file: /cvsroot/emacs/emacs/lisp/international/latexenc.el,v
>> retrieving revision 1.3
>> diff -u -p -r1.3 latexenc.el
>> --- lisp/international/latexenc.el	1 May 2005 11:01:49 -0000	1.3
>> +++ lisp/international/latexenc.el	4 May 2005 18:12:23 -0000
>> @@ -120,24 +120,33 @@ coding system names is determined from `
>>        (save-excursion
>>          ;; try to find the coding system in this file
>>          (goto-char (point-min))
>> -        (if (or
>> -             (re-search-forward "^[^%\n]*\\\\inputencoding{\\(.*\\)}" nil t)
>> -             (re-search-forward "^[^%\n]*\\\\usepackage\\[\\(.*\\)\\]{inputenc}" nil t))
>> -            (let* ((match (match-string 1))
>> -                   (sym (intern match)))
>> -              (when (latexenc-inputenc-to-coding-system match)
>> -                (setq sym (latexenc-inputenc-to-coding-system match))
>> -                (when (coding-system-p sym)
>> -		  sym
>> -                  (if (and (require 'code-pages nil t) (coding-system-p sym))
>> -                      sym
>> -                    'undecided))))
>> +	(if (catch 'cs
>> +	      (let ((case-fold-search nil))
>> +		(while (search-forward "inputenc" nil t)
>> +		  (goto-char (match-beginning 0))
>> +		  (beginning-of-line)
>> +		  (if (or (looking-at "[^%\n]*\\\\usepackage\\[\\(.*\\)\\]{\\(.*,\\)?inputenc\\(,.*\\)?}")
>
> That also matches something like:
>
> \usepackage[opt]{package} % don't use {package,inputenc}

Right. I should be fixed now.

>> +			  (looking-at "[^%\n]*\\\\inputencoding{\\(.*\\)}"))
>> +		      (throw 'cs (match-string 1))
>
> Why throw (match-string 1) instead of t?

You're right.

>> +		    (goto-char (match-end 0))))))
>> +	    (let* ((match (match-string 1))
>> +		   (sym (intern match)))
>> +	      (when (latexenc-inputenc-to-coding-system match)
>> +		(setq sym (latexenc-inputenc-to-coding-system match)))
>> +	      (when (coding-system-p sym)
>> +		sym
>> +		(if (and (require 'code-pages nil t) (coding-system-p sym))
>> +		    sym
>> +		  'undecided)))
>>            ;; else try to find it in the master/main file
>> -          (let (latexenc-main-file)
>> +          (let (latexenc-main-file
>> +		bound)
>>              ;; is there a TeX-master or tex-main-file in the local variable section
>>              (unless latexenc-dont-use-TeX-master-flag
>>                (goto-char (point-max))
>> -              (when (re-search-backward "^%+ *\\(TeX-master\\|tex-main-file\\): *\"\\(.+\\)\"" nil t)
>> +	      (search-backward "\n\^L" (max (- (point-max) 3000) (point-min)) 'move)
>> +	      (setq bound (search-forward "Local Variables:" nil t))
>> +              (when (re-search-forward "^%+ *\\(TeX-master\\|tex-main-file\\): *\"\\(.+\\)\"" nil t)
>>                  (let ((file (concat (file-name-directory (nth 1 arg-list)) (match-string 2))))
>>                    (if (file-exists-p file)
>>                        (setq latexenc-main-file file)
>
> You don't seem to use the variable bound.

No. It's gone now. (I was probably tired).

> Could you also write a ChangeLog entry for your patch?

Done.

New patch attached.

Thanks and kind regard,
-- 
Arne Jørgensen <http://arnested.dk/>


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: latexenc.patch --]
[-- Type: text/x-patch, Size: 3415 bytes --]

Index: lisp/ChangeLog
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/ChangeLog,v
retrieving revision 1.7484
diff -u -p -r1.7484 ChangeLog
--- lisp/ChangeLog	11 May 2005 16:42:40 -0000	1.7484
+++ lisp/ChangeLog	11 May 2005 17:14:03 -0000
@@ -1,3 +1,11 @@
+2005-05-11  Arne J^[,Ax^[(Brgensen  <arne@arnested.dk>
+
+	* international/latexenc.el (latexenc-find-file-coding-system):
+	Avoid `re-search-forward' when looking for input encoding because
+	of speed and safety. Better regexp's for recognizing input
+	encoding. Limit a search for TeX-master/tex-main-file to the local
+	variable section.
+
 2005-05-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 
 	* files.el (executable-find): Move from executable.el. Use locate-file.
Index: lisp/international/latexenc.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/international/latexenc.el,v
retrieving revision 1.3
diff -u -p -r1.3 latexenc.el
--- lisp/international/latexenc.el	1 May 2005 11:01:49 -0000	1.3
+++ lisp/international/latexenc.el	11 May 2005 17:14:03 -0000
@@ -120,24 +120,32 @@ coding system names is determined from `
       (save-excursion
         ;; try to find the coding system in this file
         (goto-char (point-min))
-        (if (or
-             (re-search-forward "^[^%\n]*\\\\inputencoding{\\(.*\\)}" nil t)
-             (re-search-forward "^[^%\n]*\\\\usepackage\\[\\(.*\\)\\]{inputenc}" nil t))
-            (let* ((match (match-string 1))
-                   (sym (intern match)))
-              (when (latexenc-inputenc-to-coding-system match)
-                (setq sym (latexenc-inputenc-to-coding-system match))
-                (when (coding-system-p sym)
-		  sym
-                  (if (and (require 'code-pages nil t) (coding-system-p sym))
-                      sym
-                    'undecided))))
+	(if (catch 'cs
+	      (let ((case-fold-search nil))
+		(while (search-forward "inputenc" nil t)
+		  (goto-char (match-beginning 0))
+		  (beginning-of-line)
+		  (if (or (looking-at "[^%\n]*\\\\usepackage\\[\\([^]]*\\)\\]{\\([^}]*,\\)?inputenc\\(,[^}]*\\)?}")
+			  (looking-at "[^%\n]*\\\\inputencoding{\\([^}]*\\)}"))
+		      (throw 'cs t)
+		    (goto-char (match-end 0))))))
+	    (let* ((match (match-string 1))
+		   (sym (intern match)))
+	      (when (latexenc-inputenc-to-coding-system match)
+		(setq sym (latexenc-inputenc-to-coding-system match)))
+	      (when (coding-system-p sym)
+		sym
+		(if (and (require 'code-pages nil t) (coding-system-p sym))
+		    sym
+		  'undecided)))
           ;; else try to find it in the master/main file
           (let (latexenc-main-file)
             ;; is there a TeX-master or tex-main-file in the local variable section
             (unless latexenc-dont-use-TeX-master-flag
               (goto-char (point-max))
-              (when (re-search-backward "^%+ *\\(TeX-master\\|tex-main-file\\): *\"\\(.+\\)\"" nil t)
+	      (search-backward "\n\^L" (max (- (point-max) 3000) (point-min)) 'move)
+	      (search-forward "Local Variables:" nil t)
+              (when (re-search-forward "^%+ *\\(TeX-master\\|tex-main-file\\): *\"\\(.+\\)\"" nil t)
                 (let ((file (concat (file-name-directory (nth 1 arg-list)) (match-string 2))))
                   (if (file-exists-p file)
                       (setq latexenc-main-file file)

[-- Attachment #3: Type: text/plain, Size: 142 bytes --]

_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: latexenc-find-file-coding-system is slow.
  2005-05-11 17:21           ` Arne Jørgensen
@ 2005-05-11 23:07             ` Lute Kamstra
  0 siblings, 0 replies; 33+ messages in thread
From: Lute Kamstra @ 2005-05-11 23:07 UTC (permalink / raw)
  Cc: Thien-Thi Nguyen, Stefan Monnier, Richard Stallman, emacs-devel

Arne Jørgensen <arne@arnested.dk> writes:

[...]

> New patch attached.

Committed.

Thanks for your work,

  Lute.

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: Your Emacs changes
       [not found]   ` <E1GvflW-00045v-Tx@fencepost.gnu.org>
@ 2006-12-18 11:13     ` Mark Davies
  0 siblings, 0 replies; 33+ messages in thread
From: Mark Davies @ 2006-12-18 11:13 UTC (permalink / raw)


[-- Attachment #1: Type: text/plain, Size: 1111 bytes --]

On Sunday 17 December 2006 09:04, Richard Stallman wrote:
> Could you please update your changes for the current sources, then
> send to emacs-devel@gnu.org the diff -c plus change log entries?
>
> Then we will install the changes.

Updated patch is attached. Change log entries are:

*** ChangeLog.orig	Mon Dec 18 23:46:51 2006
--- ChangeLog	Tue Dec 19 00:06:43 2006
***************
*** 1,3 ****
--- 1,10 ----
+ 2006-12-18  Mark Davies  <mark@mcs.vuw.ac.nz>
+ 
+ 	* configure.in: Add support for NetBSD on x86-64, hp800 and sh3el.
+ 	Remove redundant entry for powerpc-apple-netbsd.
+ 
+ 	* configure: Regenerate.
+ 
  2006-12-10  Andreas Schwab  <schwab@suse.de>
  
  	* configure.in: Remove check for struct timezone, its result is
*** src/ChangeLog.orig	Mon Dec 18 23:52:01 2006
--- src/ChangeLog	Mon Dec 18 23:54:34 2006
***************
*** 1,3 ****
--- 1,7 ----
+ 2006-12-18  Mark Davies  <mark@mcs.vuw.ac.nz>
+ 
+ 	* m/amdx86-64.h, m/hp800.h, m/sh3el.h: Add support for NetBSD.
+ 
  2006-12-17  Richard Stallman  <rms@gnu.org>
  
  	* fileio.c (Fread_file_name_internal): Pass 
Vread_file_name_predicate

[-- Attachment #2: patch --]
[-- Type: text/x-diff, Size: 6840 bytes --]

*** src/m/amdx86-64.h.orig	Sat Dec  9 04:45:49 2006
--- src/m/amdx86-64.h	Mon Dec 18 23:43:48 2006
***************
*** 125,136 ****
  #undef LIB_STANDARD
  #define LIB_STANDARD -lgcc -lc -lgcc /usr/lib/crtend.o
  
  #elif defined(sun)
  
  #undef START_FILES
  #undef LIB_STANDARD
  
! #else /* !__OpenBSD__ && !__FreeBSD__ && !sun */
  
  #undef START_FILES
  #ifdef HAVE_X86_64_LIB64_DIR
--- 125,140 ----
  #undef LIB_STANDARD
  #define LIB_STANDARD -lgcc -lc -lgcc /usr/lib/crtend.o
  
+ #elif defined(__NetBSD__)
+ 
+ /* LIB_STANDARD and START_FILES set correctly in s/netbsd.h */
+ 
  #elif defined(sun)
  
  #undef START_FILES
  #undef LIB_STANDARD
  
! #else /* !__OpenBSD__ && !__FreeBSD__ && !__NetBSD__ && !sun */
  
  #undef START_FILES
  #ifdef HAVE_X86_64_LIB64_DIR
*** src/m/hp800.h.orig	Tue Feb  7 04:23:23 2006
--- src/m/hp800.h	Mon Dec 18 23:39:32 2006
***************
*** 174,179 ****
--- 174,187 ----
  #define rindex strrchr
  
  #endif /* __hpux */
+ \f
+ /* Systems with GCC don't need to lose. */
+ #ifdef __NetBSD__
+ # ifdef __GNUC__
+ #  define alloca __builtin_alloca
+ #  define HAVE_ALLOCA
+ # endif /* __GNUC__ */
+ #endif /* __NetBSD__ */
  
  /* arch-tag: 809436e6-1645-4b92-b40d-2de5d6e7227c
     (do not change this comment) */
*** src/m/sh3el.h.orig	Mon Dec 18 23:39:32 2006
--- src/m/sh3el.h	Mon Dec 18 23:56:06 2006
***************
*** 0 ****
--- 1,107 ----
+ /* machine description file for sh3el
+    Copyright (C) 1985, 1986 Free Software Foundation, Inc.
+ 
+ This file is part of GNU Emacs.
+ 
+ GNU Emacs is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+ 
+ GNU Emacs is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with GNU Emacs; see the file COPYING.  If not, write to
+ the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.  */
+ 
+ 
+ /* The following line tells the configuration script what sort of 
+    operating system this machine is likely to run.
+    USUAL-OPSYS="<name of system .h file here, without the s- or .h>"  */
+ 
+ /* Define WORDS_BIG_ENDIAN iff lowest-numbered byte in a word
+    is the most significant byte.  */
+ 
+ #undef WORDS_BIG_ENDIAN
+ 
+ /* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+  * group of arguments and treat it as an array of the arguments.  */
+ 
+ #define NO_ARG_ARRAY
+ 
+ /* Define WORD_MACHINE if addresses and such have
+  * to be corrected before they can be used as byte counts.  */
+ 
+ #undef WORD_MACHINE
+ 
+ /* Now define a symbol for the cpu type, if your compiler
+    does not define it automatically:
+    Ones defined so far include vax, m68000, ns16000, pyramid,
+    orion, tahoe, APOLLO and many others */
+ 
+ /* Use type int rather than a union, to represent Lisp_Object */
+ /* This is desirable for most machines.  */
+ 
+ #define NO_UNION_TYPE
+ 
+ /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
+    the 24-bit bit field into an int.  In other words, if bit fields
+    are always unsigned.
+ 
+    If you use NO_UNION_TYPE, this flag does not matter.  */
+ 
+ #define EXPLICIT_SIGN_EXTEND
+ 
+ /* Data type of load average, as read out of kmem.  */
+ 
+ #define LOAD_AVE_TYPE long
+ 
+ /* Convert that into an integer that is 100 for a load average of 1.0  */
+ 
+ #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
+ 
+ /* Define CANNOT_DUMP on machines where unexec does not work.
+    Then the function dump-emacs will not be defined
+    and temacs will do (load "loadup") automatically unless told otherwise.  */
+ 
+ #undef CANNOT_DUMP
+ 
+ /* Define VIRT_ADDR_VARIES if the virtual addresses of
+    pure and impure space as loaded can vary, and even their
+    relative order cannot be relied on.
+ 
+    Otherwise Emacs assumes that text space precedes data space,
+    numerically.  */
+ 
+ #define VIRT_ADDR_VARIES
+ 
+ /* Define C_ALLOCA if this machine does not support a true alloca
+    and the one written in C should be used instead.
+    Define HAVE_ALLOCA to say that the system provides a properly
+    working alloca function and it should be used.
+    Define neither one if an assembler-language alloca
+    in the file alloca.s should be used.  */
+ 
+ /* #define C_ALLOCA */
+ #define HAVE_ALLOCA
+ 
+ /* Define NO_REMAP if memory segmentation makes it not work well
+    to change the boundary between the text section and data section
+    when Emacs is dumped.  If you define this, the preloaded Lisp
+    code will not be sharable; but that's better than failing completely.  */
+ 
+ #define NO_REMAP
+ 
+ /* After adding support for a new system, modify the large case
+    statement in the `configure' script to recognize reasonable
+    configuration names, and add a description of the system to
+    `etc/MACHINES'.
+ 
+    If you've just fixed a problem in an existing configuration file,
+    you should also check `etc/MACHINES' to make sure its descriptions
+    of known problems in that configuration should be updated.  */
+ 
*** configure.in.orig	Mon Dec 11 05:24:36 2006
--- configure.in	Mon Dec 18 23:39:32 2006
***************
*** 260,266 ****
        m68k-*-netbsd*)
  			# This is somewhat bogus.
  			machine=hp9000s300 ;;
-       powerpc-apple-netbsd*) machine=macppc ;;
        mips-*-netbsd*)	machine=pmax ;;
        mipsel-*-netbsd*)	machine=pmax ;;
        mipseb-*-netbsd*)	machine=pmax ;;
--- 260,265 ----
***************
*** 269,274 ****
--- 268,276 ----
        sparc*-*-netbsd*)	machine=sparc ;;
        vax-*-netbsd*)	machine=vax ;;
        arm-*-netbsd*)	machine=arm ;;
+       x86_64-*-netbsd*)	machine=amdx86-64 ;;
+       hppa-*-netbsd*)	machine=hp800 ;;
+       shle-*-netbsd*)	machine=sh3el ;;
      esac
    ;;
  
*** configure.orig	Mon Dec 11 05:25:17 2006
--- configure	Mon Dec 18 23:51:27 2006
***************
*** 1742,1748 ****
        m68k-*-netbsd*)
  			# This is somewhat bogus.
  			machine=hp9000s300 ;;
-       powerpc-apple-netbsd*) machine=macppc ;;
        mips-*-netbsd*)	machine=pmax ;;
        mipsel-*-netbsd*)	machine=pmax ;;
        mipseb-*-netbsd*)	machine=pmax ;;
--- 1742,1747 ----
***************
*** 1751,1756 ****
--- 1750,1758 ----
        sparc*-*-netbsd*)	machine=sparc ;;
        vax-*-netbsd*)	machine=vax ;;
        arm-*-netbsd*)	machine=arm ;;
+       x86_64-*-netbsd*)	machine=amdx86-64 ;;
+       hppa-*-netbsd*)	machine=hp800 ;;
+       shle-*-netbsd*)	machine=sh3el ;;
      esac
    ;;
  

[-- Attachment #3: Type: text/plain, Size: 142 bytes --]

_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: Your Emacs changes
       [not found] <E1IM8Gf-0005ZW-Qc@fencepost.gnu.org>
@ 2007-08-21 14:42 ` Dmitry Antipov
  2007-08-21 16:58   ` Stefan Monnier
  0 siblings, 1 reply; 33+ messages in thread
From: Dmitry Antipov @ 2007-08-21 14:42 UTC (permalink / raw)
  To: rms; +Cc: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 433 bytes --]

Richard Stallman wrote:

> Now that we have your papers, what changes should we install now?

Probably the thing described at http://lists.gnu.org/archive/html/emacs-devel/2007-07/msg00094.html.
Attached is the latest stuff on this.

Note the same optimization may be performed on sweeping floats.  But, since an amount of allocated
floats is too small in comparison with conses, an effect is expected to be very negligible.

Dmitry

[-- Attachment #2: fast_cons_sweep.patch --]
[-- Type: text/x-patch, Size: 1859 bytes --]

Index: alloc.c
===================================================================
RCS file: /sources/emacs/emacs/src/alloc.c,v
retrieving revision 1.414
diff -u -r1.414 alloc.c
--- alloc.c	19 Aug 2007 00:15:26 -0000	1.414
+++ alloc.c	21 Aug 2007 14:31:37 -0000
@@ -5974,23 +5974,53 @@
 
     for (cblk = cons_block; cblk; cblk = *cprev)
       {
-	register int i;
+	register int i = 0;
 	int this_free = 0;
-	for (i = 0; i < lim; i++)
-	  if (!CONS_MARKED_P (&cblk->conses[i]))
-	    {
-	      this_free++;
-	      cblk->conses[i].u.chain = cons_free_list;
-	      cons_free_list = &cblk->conses[i];
+
+	while (1)
+	  {
+	    if (cblk->gcmarkbits[i] == -1)
+	      {
+		/* Fast path - everything is marked.  */
+		cblk->gcmarkbits[i++] = 0;
+		num_used += BITS_PER_INT;
+	      }
+	    else
+	      {
+		/* Slow path - scan over each bit, from the beginning
+		   of current word to 'min (word boundary, LIM)'.  */
+		int start, stop;
+
+		start = i * BITS_PER_INT;
+		stop = lim - start;
+		if (stop > BITS_PER_INT)
+		  stop = BITS_PER_INT;
+		stop += start;
+
+		while (start < stop)
+		  {
+		    if (!CONS_MARKED_P (&cblk->conses[start]))
+		      {
+			this_free++;
+			cblk->conses[start].u.chain = cons_free_list;
+			cons_free_list = &cblk->conses[start];
 #if GC_MARK_STACK
-	      cons_free_list->car = Vdead;
+			cons_free_list->car = Vdead;
 #endif
-	    }
-	  else
-	    {
-	      num_used++;
-	      CONS_UNMARK (&cblk->conses[i]);
-	    }
+		      }
+		    else
+		      {
+			num_used++;
+			CONS_UNMARK (&cblk->conses[start]);
+		      }
+		    start++;
+		  }
+		if (stop < (++i) * BITS_PER_INT)
+		  /* Whole bitmap is scanned or LIM is reached.  */
+		  break;
+	      }
+	  }
+
 	lim = CONS_BLOCK_SIZE;
 	/* If this block contains only free conses and we have already
 	   seen more than two blocks worth of free conses then deallocate

[-- Attachment #3: Type: text/plain, Size: 142 bytes --]

_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: Your Emacs changes
  2007-08-21 14:42 ` Your Emacs changes Dmitry Antipov
@ 2007-08-21 16:58   ` Stefan Monnier
  0 siblings, 0 replies; 33+ messages in thread
From: Stefan Monnier @ 2007-08-21 16:58 UTC (permalink / raw)
  To: Dmitry Antipov; +Cc: rms, emacs-devel

> Note the same optimization may be performed on sweeping floats.  But,
> since an amount of allocated floats is too small in comparison with
> conses, an effect is expected to be very negligible.

Ideally, we should share the code, so even tho the effect is usually small,
it would be worth it since it wouldn't cost any extra maintenance burden.


        Stefan

^ permalink raw reply	[flat|nested] 33+ messages in thread

end of thread, other threads:[~2007-08-21 16:58 UTC | newest]

Thread overview: 33+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <E1D7MTJ-0002Jj-BJ@fencepost.gnu.org>
2005-04-26 12:07 ` Your Emacs changes Arne Jørgensen
2005-04-28 11:58   ` Thien-Thi Nguyen
2005-04-29 12:11     ` latexenc-find-file-coding-system is slow. (was: Your Emacs changes) Lute Kamstra
2005-04-29 14:57       ` latexenc-find-file-coding-system is slow Arne Jørgensen
2005-04-29 15:48         ` Lute Kamstra
2005-04-29 16:13       ` Stefan Monnier
     [not found]         ` <877jil8rz5.fsf@arnested.dk>
2005-04-29 17:19           ` Lute Kamstra
2005-04-30  8:08       ` David Kastrup
2005-05-01 11:08         ` Lute Kamstra
2005-05-01 12:07       ` latexenc-find-file-coding-system is slow. (was: Your Emacs changes) Richard Stallman
     [not found]       ` <871x8m96p6.fsf@arnested.dk>
2005-05-11 11:48         ` latexenc-find-file-coding-system is slow Lute Kamstra
2005-05-11 17:21           ` Arne Jørgensen
2005-05-11 23:07             ` Lute Kamstra
     [not found] <E1IM8Gf-0005ZW-Qc@fencepost.gnu.org>
2007-08-21 14:42 ` Your Emacs changes Dmitry Antipov
2007-08-21 16:58   ` Stefan Monnier
     [not found] <E1Gv1Kf-0002ME-7u@fencepost.gnu.org>
     [not found] ` <200612160806.16403.mark@mcs.vuw.ac.nz>
     [not found]   ` <E1GvflW-00045v-Tx@fencepost.gnu.org>
2006-12-18 11:13     ` Mark Davies
     [not found] <E1CuNEB-0000sr-V7@fencepost.gnu.org>
2005-01-31 14:50 ` Matt Hodges
2005-02-03  6:40   ` Richard Stallman
2004-06-02 17:37 Richard Stallman
  -- strict thread matches above, loose matches on Subject: below --
2004-05-10 17:55 Richard Stallman
2004-05-02 11:19 Richard Stallman
2003-08-15 16:04 Richard Stallman
2003-08-18 15:21 ` Peter 'Luna' Runestig
2003-08-19  7:51   ` Eli Zaretskii
2003-08-19  7:36     ` Jason Rumney
2003-08-19 17:32       ` Eli Zaretskii
2003-08-22  9:58         ` Jason Rumney
2003-08-22 11:13       ` Peter 'Luna' Runestig
2003-08-19  7:59     ` Peter 'Luna' Runestig
2003-08-19 17:46       ` Eli Zaretskii
2003-08-21  7:45         ` Jason Rumney
2003-08-21  7:59         ` Jason Rumney
2002-06-15 14:13 Richard Stallman

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).