Commit 6dacdad5 authored by Tom Tromey's avatar Tom Tromey
Browse files

merge from trunk

this merges frmo trunk and fixes various build issues.
this needed a few ugly tweaks.
this hangs in "make check" now
parents 0a6f2ff0 219afb88
2013-07-03 Christoph Egger <christoph@debian.org> (tiny change)
* configure.ac (emacs_broken_SIGIO): Set on gnu-kfreebsd to avoid hang.
http://bugs.debian.org/712974
2013-07-02 Paul Eggert <eggert@cs.ucla.edu>
Remove some unused macros from 'configure'.
* configure.ac (HAVE_SOUNDCARD_H, HAVE_LINUX_VERSION_H, HAVE_SPEED_T)
(HAVE_GNUTLS_CALLBACK_CERTIFICATE_VERIFY)
(HAVE_GNUTLS_CERTIFICATE_SET_VERIFY_FUNCTION, HAVE_UTIMES)
(HAVE_LIBHESIOD, HAVE_LIBRESOLV, HAVE_LIBCOM_ERR, HAVE_LIBCRYPTO)
(HAVE_LIBK5CRYPTO, HAVE_LIBKRB5, HAVE_LIBDES425, HAVE_LIBDES)
(HAVE_LIBKRB4, HAVE_LIBKRB, HAVE_DES_H, HAVE_KERBEROSIV_DES_H)
(HAVE_DEV_PTMX, DEVICE_SEP, USG5):
Remove these macros, as they are not used.
(sys_siglist): Remove macro; src/sysdep.c now does this.
* configure.ac (GTK_COMPILES): Check API a bit more carefully.
Also check that it links. Say whether it compiled and linked.
2013-07-01 Paul Eggert <eggert@cs.ucla.edu>
Merge from gnulib, incorporating:
2013-06-23 ignore-value: port to gcc -pedantic
2013-06-21 extern-inline: port to gcc -std=c89
2013-06-30 Paul Eggert <eggert@cs.ucla.edu>
Do not use GTK 3 if it exists but cannot be compiled.
* configure.ac: Leave GTK_OBJ and term_header alone if GTK 3
exists but cannot be compiled.
2013-06-27 Juanma Barranquero <lekktu@gmail.com>
* Makefile.in (install-arch-indep): Do not create directories passed
with --enable-locallisppath.
2013-06-24 Glenn Morris <rgm@fencepost.gnu.org>
* configure.ac: Include X11/X.h when testing for Xft.h. (Bug#14684)
2013-06-22 Juanma Barranquero <lekktu@gmail.com>
* .bzrignore: Add GNU idutils ID database file.
2013-06-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
* configure.ac (HAVE_LIBXML2): Try built-in libxml2 on OS X 10.8
as a fallback.
2013-06-20 Stefan Monnier <monnier@iro.umontreal.ca>
* .bzrignore: Don't unignore cl-loaddefs.el.
2013-06-20 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
* configure.ac (log2): Check for this function.
2013-06-19 Juanma Barranquero <lekktu@gmail.com>
* .bzrignore: Add GNU GLOBAL files.
2013-06-17 Paul Eggert <eggert@cs.ucla.edu>
Use functions, not macros, for XINT etc. (Bug#11935).
* configure.ac (WARN_CFLAGS): Remove -Wbad-function-cast,
as it generates bogus warnings about reasonable casts of calls.
2013-06-16 Paul Eggert <eggert@cs.ucla.edu>
* configure.ac: Report ACL usage at the end (Bug#14612).
2013-06-11 Paul Eggert <eggert@cs.ucla.edu>
--without-all should imply --with-file-notification=no. (Bug#14569)
......@@ -383,7 +456,7 @@
2013-01-23 Giorgos Keramidas <gkeramidas@gmail.com> (tiny change)
* .bzrignore: add lib-src/blessmail.
* .bzrignore: Add lib-src/blessmail.
2013-01-23 Paul Eggert <eggert@cs.ucla.edu>
......@@ -532,7 +605,7 @@
2012-12-10 Daniel Colascione <dancol@dancol.org>
* .bzrignore: add src/emacs.res.
* .bzrignore: Add src/emacs.res.
* configure.ac (W32_RES, W32_RES_LINK, WINDRES): Teach the cygw32
build how to compile Windows resource files; use these variables
......
......@@ -548,13 +548,9 @@ set_installuser=for installuser in $${LOGNAME} $${USERNAME} $${USER} \
## Note that the Makefiles in the etc directory are potentially useful
## in an installed Emacs, so should not be excluded.
## I'm not sure creating locallisppath here serves any useful purpose.
## If it has the default value, then the later write_subdir commands
## will ensure all these components exist.
## This will only do something if locallisppath has a non-standard value.
## Is it really Emacs's job to create those directories?
## Should we also be ensuring they contain subdirs.el files?
## It would be easy to do, just use write_subdir.
## We used to create locallisppath, but if it points to non-standard
## locations, is not really Emacs's job to create these directories,
## so it is no longer done.
## Note that we use tar instead of plain old cp -R/-r because the latter
## is apparently not portable (even in 2012!).
......@@ -564,12 +560,6 @@ set_installuser=for installuser in $${LOGNAME} $${USERNAME} $${USER} \
## See also these comments from 2004 about cp -r working fine:
## http://lists.gnu.org/archive/html/autoconf-patches/2004-11/msg00005.html
install-arch-indep: lisp leim install-info install-man ${INSTALL_ARCH_INDEP_EXTRA}
umask 022 ; \
locallisppath='${locallisppath}'; \
IFS=:; \
for d in $$locallisppath; do \
${MKDIR_P} "$(DESTDIR)$$d"; \
done
-set ${COPYDESTS} ; \
unset CDPATH; \
$(set_installuser); \
......
......@@ -24,7 +24,6 @@ _MSC_VER Compiling the W32 port with the Microsoft C compiler.
DARWIN_OS Compiling on Mac OS X or pure Darwin (and using s/darwin.h).
SOLARIS2
USG
USG5
USG5_4
** Distinguishing GUIs **
......@@ -135,8 +134,6 @@ HAVE_DECL_STRTOUMAX
HAVE_DECL_SYS_SIGLIST
HAVE_DECL_TZNAME
HAVE_DECL___SYS_SIGLIST
HAVE_DES_H
HAVE_DEV_PTMX
HAVE_DIALOGS
HAVE_DIFFTIME
HAVE_DUP2
......@@ -174,8 +171,6 @@ HAVE_GET_CURRENT_DIR_NAME
HAVE_GHOSTSCRIPT
HAVE_GIF
HAVE_GNUTLS
HAVE_GNUTLS_CALLBACK_CERTIFICATE_VERIFY
HAVE_GNUTLS_CERTIFICATE_SET_VERIFY_FUNCTION
HAVE_GPM
HAVE_GRANTPT
HAVE_GSETTINGS
......@@ -198,26 +193,15 @@ HAVE_IMAGEMAGICK
HAVE_INET_SOCKETS
HAVE_INTTYPES_H
HAVE_JPEG
HAVE_KERBEROSIV_DES_H
HAVE_KERBEROSIV_KRB_H
HAVE_KERBEROS_DES_H
HAVE_KERBEROS_KRB_H
HAVE_KRB5_ERROR_E_TEXT
HAVE_KRB5_ERROR_TEXT
HAVE_KRB5_H
HAVE_KRB_H
HAVE_LANGINFO_CODESET
HAVE_LIBCOM_ERR
HAVE_LIBCRYPTO
HAVE_LIBDES
HAVE_LIBDES425
HAVE_LIBDGC
HAVE_LIBDNET
HAVE_LIBHESIOD
HAVE_LIBK5CRYPTO
HAVE_LIBKRB
HAVE_LIBKRB4
HAVE_LIBKRB5
HAVE_LIBKSTAT
HAVE_LIBLOCKFILE
HAVE_LIBM
......@@ -226,12 +210,10 @@ HAVE_LIBOTF
HAVE_LIBPERFSTAT
HAVE_LIBPNG_PNG_H
HAVE_LIBPTHREADS
HAVE_LIBRESOLV
HAVE_LIBSELINUX
HAVE_LIBXEXT
HAVE_LIBXML2
HAVE_LIBXMU
HAVE_LINUX_VERSION_H
HAVE_LOCALTIME_R
HAVE_LOCAL_SOCKETS
HAVE_LONG_FILE_NAMES
......@@ -298,7 +280,6 @@ HAVE_SNPRINTF
HAVE_SOCKETS
HAVE_SOUND
HAVE_SOUNDCARD_H
HAVE_SPEED_T
HAVE_STDINT_H
HAVE_STDIO_EXT_H
HAVE_STDLIB_H
......
2013-07-06 Glenn Morris <rgm@gnu.org>
* admin.el (manual-misc-manuals): New function.
(make-manuals): Avoid hard-coding list of misc manuals.
Add the option to only make certain type(s) of output.
(manual-misc-html): Special-case ccmode and efaq.
(manual-html-mono, manual-html-node, manual-pdf, manual-ps):
Move creation of output directory here from make-manuals.
(manual-html-fix-index-2): Avoid dynamic reference to `f'.
2013-07-05 Glenn Morris <rgm@gnu.org>
* admin.el (make-manuals): Use a standard location for lispintro.
Use a pdf/ subdirectory for pdf versions.
2013-06-29 Glenn Morris <rgm@gnu.org>
* admin.el (make-manuals): Don't bother with txt or dvi any more.
(manual-txt): Remove.
(manual-pdf): Doc fix.
(manual-ps): Rename from manual-dvi.
(manual-pdf, manual-ps): Work in the directory with the texi file,
so that TeX intermediate files go there rather than to PWD.
2013-06-15 Xue Fuqiao <xfq.free@gmail.com>
* notes/changelogs: Mention trivial changes in Change Log.
2013-06-13 Glenn Morris <rgm@gnu.org>
* admin.el (manual-style-string): Use new file manual.css.
2013-06-02 Eric Ludlam <zappo@gnu.org>
2013-06-02 Eric Ludlam <zappo@gnu.org>
* grammars/srecode-template.wy (variable): Accept a single number
as a variable value. Allows the 'priority' to be set to a number.
......@@ -154,7 +182,7 @@
2012-12-14 Paul Eggert <eggert@cs.ucla.edu>
Fix permissions bugs with setgid directories etc. (Bug#13125)
Fix permissions bugs with setgid directories etc. (Bug#13125)
* CPP-DEFINES (BSD4_2): Remove.
2012-12-08 Paul Eggert <eggert@cs.ucla.edu>
......@@ -286,7 +314,7 @@
* grammars/grammar.wy (semantic-grammar-lexer): Remove, since it
was copied to grammar.el. New %provide token to generate prefix
which conforms with Emacs conventions. Remove lexer definition,
which conforms with Emacs conventions. Remove lexer definition,
which is now in grammar.el.
2012-09-27 Glenn Morris <rgm@gnu.org>
......
......@@ -10,6 +10,28 @@ directory in the Emacs build tree:
emacs -Q --eval "(progn (require 'info) (setq Info-directory-list '(\".\")))" \
-f info-xref-check-all
Setting Info-directory-list avoids having system info pages confuse
things. References to external manuals will be flagged as
uncheckable. You should still check these, and also that each
external manual has an appropriate redirect in the file manual/.htaccess
in the web pages repository. E.g.:
Redirect /software/emacs/manual/html_mono/automake.html /software/automake/manual/automake.html
Redirect /software/emacs/manual/html_node/automake/ /software/automake/manual/html_node/
Another tool you can use to check links is gnu.org's linc.py:
http://www.gnu.org/server/source/
You run this something like:
cd /path/to/cvs/emacs-www
linc.py -o /path/to/output-dir --url http://www.gnu.org/software/emacs/ .
Be warned that it is really, really slow (as in, can take ~ a full day
to check the manual/ directory). It is probably best to run it on a
single directory at a time from eg manual/html_node. It is very
inefficient, but may reveal a few things that info-xref does not.
make emacs.dvi, elisp.dvi, and deal with any errors (undefined
references etc) in the output. Break any overfull lines.
Underfull hboxes are not serious, but it can be nice to get rid of
......
......@@ -193,70 +193,82 @@ Root must be the root of an Emacs source tree."
;;; Various bits of magic for generating the web manuals
(defun make-manuals (root)
"Generate the web manuals for the Emacs webpage."
(interactive "DEmacs root directory: ")
(defun manual-misc-manuals (root)
"Return doc/misc manuals as list of strings."
;; Like `make -C doc/misc echo-info', but works if unconfigured.
(with-temp-buffer
(insert-file-contents (expand-file-name "doc/misc/Makefile.in" root))
(search-forward "INFO_TARGETS = ")
(let ((start (point))
res)
(end-of-line)
(while (and (looking-back "\\\\")
(zerop (forward-line 1)))
(end-of-line))
(split-string (replace-regexp-in-string
"\\(\\\\\\|\\.info\\)" ""
(buffer-substring start (point)))))))
(defun make-manuals (root &optional type)
"Generate the web manuals for the Emacs webpage.
Interactively with a prefix argument, prompt for TYPE.
Optional argument TYPE is type of output (nil means all)."
(interactive (let ((root (read-directory-name "Emacs root directory: "
source-directory nil t)))
(list root
(if current-prefix-arg
(completing-read
"Type: "
(append
'("misc" "pdf" "ps")
(let (res)
(dolist (i '("emacs" "elisp" "eintr") res)
(dolist (j '("" "-mono" "-node" "-ps" "-pdf"))
(push (concat i j) res))))
(manual-misc-manuals root)))))))
(let* ((dest (expand-file-name "manual" root))
(html-node-dir (expand-file-name "html_node" dest))
(html-mono-dir (expand-file-name "html_mono" dest))
(txt-dir (expand-file-name "text" dest))
(dvi-dir (expand-file-name "dvi" dest))
(ps-dir (expand-file-name "ps" dest)))
(ps-dir (expand-file-name "ps" dest))
(pdf-dir (expand-file-name "pdf" dest))
(emacs (expand-file-name "doc/emacs/emacs.texi" root))
(elisp (expand-file-name "doc/lispref/elisp.texi" root))
(eintr (expand-file-name "doc/lispintro/emacs-lisp-intro.texi" root))
(misc (manual-misc-manuals root)))
;; TODO this makes it non-continuable.
;; Instead, delete the individual dest directory each time.
(when (file-directory-p dest)
(if (y-or-n-p (format "Directory %s exists, delete it first?" dest))
(if (y-or-n-p (format "Directory %s exists, delete it first? " dest))
(delete-directory dest t)
(error "Aborted")))
(make-directory dest)
(make-directory html-node-dir)
(make-directory html-mono-dir)
(make-directory txt-dir)
(make-directory dvi-dir)
(make-directory ps-dir)
;; Emacs manual
(let ((texi (expand-file-name "doc/emacs/emacs.texi" root)))
(manual-html-node texi (expand-file-name "emacs" html-node-dir))
(manual-html-mono texi (expand-file-name "emacs.html" html-mono-dir))
(manual-txt texi (expand-file-name "emacs.txt" txt-dir))
(manual-pdf texi (expand-file-name "emacs.pdf" dest))
(manual-dvi texi (expand-file-name "emacs.dvi" dvi-dir)
(expand-file-name "emacs.ps" ps-dir)))
;; Lisp manual
(let ((texi (expand-file-name "doc/lispref/elisp.texi" root)))
(manual-html-node texi (expand-file-name "elisp" html-node-dir))
(manual-html-mono texi (expand-file-name "elisp.html" html-mono-dir))
(manual-txt texi (expand-file-name "elisp.txt" txt-dir))
(manual-pdf texi (expand-file-name "elisp.pdf" dest))
(manual-dvi texi (expand-file-name "elisp.dvi" dvi-dir)
(expand-file-name "elisp.ps" ps-dir)))
(let ((texi (expand-file-name "doc/lispintro/emacs-lisp-intro.texi" root))
(dest (expand-file-name "emacs-lisp-intro" dest))
dest2 dest3)
;; Mimic the atypical directory layout used for emacs-lisp-intro.
(make-directory dest)
(make-directory (setq dest2 (expand-file-name "html_node" dest)))
(manual-html-node texi dest2)
(make-directory (setq dest2 (expand-file-name "html_mono" dest)))
(manual-html-mono texi (expand-file-name "emacs-lisp-intro.html" dest2))
(make-directory (setq dest2 (expand-file-name "txt" dest)))
(manual-txt texi (expand-file-name "emacs-lisp-intro.txt" dest2))
(manual-pdf texi (expand-file-name "emacs-lisp-intro.pdf" dest))
(make-directory (setq dest2 (expand-file-name "dvi" dest)))
(make-directory (setq dest3 (expand-file-name "ps" dest)))
(manual-dvi texi (expand-file-name "emacs-lisp-intro.dvi" dest2)
(expand-file-name "emacs-lisp-intro.ps" dest3)))
(user-error "Aborted")))
(if (member type '(nil "emacs" "emacs-node"))
(manual-html-node emacs (expand-file-name "emacs" html-node-dir)))
(if (member type '(nil "emacs" "emacs-mono"))
(manual-html-mono emacs (expand-file-name "emacs.html" html-mono-dir)))
(if (member type '(nil "emacs" "emacs-pdf" "pdf"))
(manual-pdf emacs (expand-file-name "emacs.pdf" pdf-dir)))
(if (member type '(nil "emacs" "emacs-ps" "ps"))
(manual-ps emacs (expand-file-name "emacs.ps" ps-dir)))
(if (member type '(nil "elisp" "elisp-node"))
(manual-html-node elisp (expand-file-name "elisp" html-node-dir)))
(if (member type '(nil "elisp" "elisp-mono"))
(manual-html-mono elisp (expand-file-name "elisp.html" html-mono-dir)))
(if (member type '(nil "elisp" "elisp-pdf" "pdf"))
(manual-pdf elisp (expand-file-name "elisp.pdf" pdf-dir)))
(if (member type '(nil "elisp" "elisp-ps" "ps"))
(manual-ps elisp (expand-file-name "elisp.ps" ps-dir)))
(if (member type '(nil "eintr" "eintr-node"))
(manual-html-node eintr (expand-file-name "eintr" html-node-dir)))
(if (member type '(nil "eintr" "eintr-node"))
(manual-html-mono eintr (expand-file-name "eintr.html" html-mono-dir)))
(if (member type '(nil "eintr" "eintr-pdf" "pdf"))
(manual-pdf eintr (expand-file-name "eintr.pdf" pdf-dir)))
(if (member type '(nil "eintr" "eintr-ps" "ps"))
(manual-ps eintr (expand-file-name "eintr.ps" ps-dir)))
;; Misc manuals
(let ((manuals '("ada-mode" "auth" "autotype" "bovine" "calc" "cc-mode"
"cl" "dbus" "dired-x" "ebrowse" "ede" "ediff"
"edt" "eieio" "emacs-gnutls" "emacs-mime" "epa" "erc" "ert"
"eshell" "eudc" "faq" "flymake" "forms"
"gnus" "htmlfontify" "idlwave" "info"
"mairix-el" "message" "mh-e" "newsticker"
"nxml-mode" "org" "pcl-cvs" "pgg" "rcirc"
"reftex" "remember" "sasl" "sc" "semantic"
"ses" "sieve" "smtpmail" "speedbar" "srecode" "tramp"
"url" "vip" "viper" "widget" "wisent" "woman")))
(dolist (manual manuals)
(manual-misc-html manual root html-node-dir html-mono-dir)))
(dolist (manual misc)
(if (member type `(nil ,manual "misc"))
(manual-misc-html manual root html-node-dir html-mono-dir)))
(message "Manuals created in %s" dest)))
(defconst manual-doctype-string
......@@ -274,7 +286,12 @@ Root must be the root of an Emacs source tree."
@import url('/s/emacs/manual.css');\n</style>\n")
(defun manual-misc-html (name root html-node-dir html-mono-dir)
(let ((texi (expand-file-name (format "doc/misc/%s.texi" name) root)))
;; Hack to deal with the cases where .texi creates a different .info.
;; Blech. TODO Why not just rename the .texi files?
(let* ((texiname (cond ((equal name "ccmode") "cc-mode")
((equal name "efaq") "faq")
(t name)))
(texi (expand-file-name (format "doc/misc/%s.texi" texiname) root)))
(manual-html-node texi (expand-file-name name html-node-dir))
(manual-html-mono texi (expand-file-name (concat name ".html")
html-mono-dir))))
......@@ -284,6 +301,7 @@ Root must be the root of an Emacs source tree."
This function also edits the HTML files so that they validate as
HTML 4.01 Transitional, and pulls in the gnu.org stylesheet using
the @import directive."
(make-directory (or (file-name-directory dest) ".") t)
(call-process "makeinfo" nil nil nil
"-D" "WWW_GNU_ORG"
"-I" (expand-file-name "../emacs"
......@@ -310,6 +328,7 @@ HTML 4.01 Transitional, and pulls in the gnu.org stylesheet using
the @import directive."
(unless (file-exists-p texi-file)
(error "Manual file %s not found" texi-file))
(make-directory dir t)
(call-process "makeinfo" nil nil nil
"-D" "WWW_GNU_ORG"
"-I" (expand-file-name "../emacs"
......@@ -344,37 +363,25 @@ the @import directive."
(manual-html-fix-node-div))
(save-buffer))))))
(defun manual-txt (texi-file dest)
"Run Makeinfo on TEXI-FILE, emitting plaintext output to DEST."
(call-process "makeinfo" nil nil nil
"-I" (expand-file-name "../emacs"
(file-name-directory texi-file))
"-I" (expand-file-name "../misc"
(file-name-directory texi-file))
"--plaintext" "--no-split" texi-file "-o" dest)
(shell-command (concat "gzip -c " dest " > " (concat dest ".gz"))))
(defun manual-pdf (texi-file dest)
"Run texi2pdf on TEXI-FILE, emitting plaintext output to DEST."
(call-process "texi2pdf" nil nil nil
"-I" (expand-file-name "../emacs"
(file-name-directory texi-file))
"-I" (expand-file-name "../misc"
(file-name-directory texi-file))
texi-file "-o" dest))
(defun manual-dvi (texi-file dest ps-dest)
"Run texi2dvi on TEXI-FILE, emitting dvi output to DEST.
Also generate PostScript output in PS-DEST."
(call-process "texi2dvi" nil nil nil
"-I" (expand-file-name "../emacs"
(file-name-directory texi-file))
"-I" (expand-file-name "../misc"
(file-name-directory texi-file))
texi-file "-o" dest)
(call-process "dvips" nil nil nil dest "-o" ps-dest)
(call-process "gzip" nil nil nil dest)
(call-process "gzip" nil nil nil ps-dest))
"Run texi2pdf on TEXI-FILE, emitting pdf output to DEST."
(make-directory (or (file-name-directory dest) ".") t)
(let ((default-directory (file-name-directory texi-file)))
(call-process "texi2pdf" nil nil nil
"-I" "../emacs" "-I" "../misc"
texi-file "-o" dest)))
(defun manual-ps (texi-file dest)
"Generate a PostScript version of TEXI-FILE as DEST."
(make-directory (or (file-name-directory dest) ".") t)
(let ((dvi-dest (concat (file-name-sans-extension dest) ".dvi"))
(default-directory (file-name-directory texi-file)))
(call-process "texi2dvi" nil nil nil
"-I" "../emacs" "-I" "../misc"
texi-file "-o" dvi-dest)
(call-process "dvips" nil nil nil dvi-dest "-o" dest)
(delete-file dvi-dest)
(call-process "gzip" nil nil nil dest)))
(defun manual-html-fix-headers ()
"Fix up HTML headers for the Emacs manual in the current buffer."
......@@ -478,7 +485,8 @@ Also generate PostScript output in PS-DEST."
(setq done t))
(t
(if (eobp)
(error "Parse error in %s" f)) ; f is bound in manual-html-node
(error "Parse error in %s"
(file-name-nondirectory buffer-file-name)))
(unless open-td
(setq done t))))
(forward-line 1))))
......
......@@ -3,8 +3,9 @@ entry in their name, not yours.
http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg00793.html
There is no need to make change log entries for files such as NEWS,
MAINTAINERS, and FOR-RELEASE.
http://lists.gnu.org/archive/html/emacs-devel/2013-06/msg00485.html
There is no need to make trivial change log entries for files such
as NEWS, MAINTAINERS, and FOR-RELEASE.
http://lists.gnu.org/archive/html/emacs-devel/2006-12/msg01135.html
There is no need to indicate regeneration of files such as configure
......
-*- outline -*-
Copyright (C) 2013 Free Software Foundation, Inc.
See the end of the file for license conditions.
NOTES FOR EMACS WWW PAGES
* Renaming pages, redirects
Sometimes you want to move a page to a new location.
If the old location might be referenced somewhere else, you should add
some form of redirect to the new location. There are several ways to
do this:
** Use a refresh directive in the old file
https://www.gnu.org/server/standards/README.webmastering.html#htaccess
Change the entire contents of the old file to be something like:
<meta http-equiv="refresh" content="0; url=/software/emacs/manual/elisp.html">
I can't think of any reason to use this method.
** Use a .symlinks file
https://www.gnu.org/server/standards/README.webmastering.html#symlinks
This is really an interface to mod_rewrite rules, but it acts like
symlinks. Remove old-page.html altogether, and create a ".symlinks"
file in the relevant directory, with contents of the form:
# This is a comment line.
old-page.html new-page.html
Anyone visiting old-page.html will be shown the contents of new-page.html.
Note that changes to .symlinks file are only updated periodically on
the server via cron (twice an hour?). So there will be a delay (of up
to 30 minutes?) before you see your changes take effect.
This method is ok, but:
i) a person visiting old-page.html has no idea that the page has moved.
They still see old-page.html in their address bar. (In other words,
the mod_rewrite rule does not use the [R] flag.) Sometimes this is
what you want, sometimes not.
ii) it doesn't work right if the new page is in a different directory
to the old page: relative links from the visited page will break.
** Use a .htaccess file
Remove old-page.html altogether, and create a ".htaccess" file in the
relevant directory, with contents of the form:
# This is a comment line.
Redirect 301 /software/emacs/old-page.html /software/emacs/dir/new-page.html
Use "301" for a permanent redirection, otherwise you can omit the number.
Note that paths must (?) be relative to the top-level www.gnu.org.
I think this is the best method. You can specify temporary or
permanent redirects, and changes go live more-or-less straight away.
This method is useful for making cross-references to non-Emacs manuals
work; see manual/.htaccess in the repository. You only have to add a
single redirect for every given external manual, you can redirect
html_node to hmtl_node and html_mono to html_mono.
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 3 of the License, 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. If not, see <http://www.gnu.org/licenses/>.
Copyright (C) 2001-2013 Free Software Foundation, Inc.
Copyright (C) 2001-2013 Free Software Foundation, Inc.
See the end of the file for license conditions.
Precompiled Distributions of
Emacs for Windows
Version 24.1
Version 24.3
January 1, 2011
March 18, 2013
This directory contains precompiled distributions for GNU Emacs on
Windows (versions before Windows 95 and NT4 are not supported).
......@@ -14,7 +14,7 @@ See the end of the file for license conditions.
Free Software Foundation; the precompiled distributions are provided
here for convenience since the majority of Windows users are not
accustomed to compiling programs themselves. Corresponding source
can be found in the parent directory in emacs-24.1.tar.gz.
can be found in the parent directory in emacs-24.3.tar.gz.
If you have access to the World Wide Web, I would recommend pointing
your favorite web browser to the following document (if you haven't
......@@ -26,9 +26,9 @@ See the end of the file for license conditions.
If you want to redistribute any of the precompiled distributions of
Emacs, be careful to check the implications of the GPL. For instance,
if you put the emacs-24.1-bin-i386.tar.gz file from this directory on
if you put the emacs-24.3-bin-i386.zip file from this directory on
an Internet site, you must arrange to distribute the source files of
the SAME version (i.e. ../emacs-24.1.tar.gz).
the SAME version (i.e. ../emacs-24.3.tar.gz).
Making a link to our copy of the source is NOT sufficient, since we
might upgrade to a new version while you are still distributing the
......@@ -37,8 +37,8 @@ See the end of the file for license conditions.
* Files in this directory