# HG changeset patch # User Gerd Moellmann # Date 1003509225 0 # Node ID 9b5a774d579b5a970eb73480640eec457efb8f5a # Parent 52d45d481082f04705010fa5829855aded3cf56e *** empty log message *** diff -r 52d45d481082 -r 9b5a774d579b admin/ChangeLog --- a/admin/ChangeLog Fri Oct 19 16:32:49 2001 +0000 +++ b/admin/ChangeLog Fri Oct 19 16:33:45 2001 +0000 @@ -1,5 +1,7 @@ 2001-10-19 Gerd Moellmann + * admin.el: New file. + * build-configs: Add --help option. Add support for building in arbitrary source trees. diff -r 52d45d481082 -r 9b5a774d579b admin/README --- a/admin/README Fri Oct 19 16:32:49 2001 +0000 +++ b/admin/README Fri Oct 19 16:33:45 2001 +0000 @@ -5,8 +5,9 @@ Brief description of scripts found here: +admin.el utilities for setting version numbers and alike alloc-color.c a utility program that allocates a given number of - colors on X. May be used it to debug Emacs with + colors on X. Can be used to debug Emacs with dense colormaps (PseudoColor). build-configs build Emacs in various configurations check-doc-strings check doc strings against documentation diff -r 52d45d481082 -r 9b5a774d579b admin/admin.el --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/admin/admin.el Fri Oct 19 16:33:45 2001 +0000 @@ -0,0 +1,89 @@ +;;; admin.el --- utilities for Emacs administration + +;; Copyright (C) 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. + +;;; Commentary: + +;; add-release-log add ``Version X released'' change log entries +;; set-version change Emacs version number in source tree. + +;;; Code: + +(defun process-lines (program &rest args) + "Execute PROGRAM with ARGS, returning its output as a list of lines. +Signal an error if the program returns with a non-zero exit status." + (with-temp-buffer + (let ((status (apply 'call-process program nil (current-buffer) nil args))) + (unless (eq status 0) + (error "%s exited with status %s" program status)) + (goto-char (point-min)) + (let (lines) + (while (not (eobp)) + (setq lines (cons (buffer-substring-no-properties + (line-beginning-position) + (line-end-position)) + lines)) + (forward-line 1)) + (nreverse lines))))) + + +(defun add-release-logs (root version) + "Add \"Version VERSION released.\" change log entries in ROOT. +Root must be the root of an Emacs source tree." + (interactive "DEmacs root directory: \nNVersion number: ") + (unless (file-exists-p (expand-file-name "src/emacs.c" root)) + (error "%s doesn't seem to be the root of an Emacs source tree" root)) + (let* ((logs (process-lines "find" root "-name" "ChangeLog")) + (entry (format "%s %s <%s>\n\n\t* Version %s released.\n\n" + (format-time-string "%Y-%m-%d") + (user-full-name) user-mail-address version))) + (dolist (log logs) + (unless (or (string-match "/gnus/" log) + (string-match "/lispref/" log)) + (find-file log) + (goto-char (point-min)) + (insert entry))))) + + +(defun set-version-in-file (root file version rx) + (find-file (expand-file-name file root)) + (goto-char (point-min)) + (unless (re-search-forward rx nil t) + (error "Version not found in %s" file)) + (replace-match (format "%s" version) nil nil nil 1)) + + +(defun set-version (root version) + "Set Emacs version to VERSION in relevant files under ROOT. +Root must be the root of an Emacs source tree." + (interactive "DEmacs root directory: \nNVersion number: ") + (unless (file-exists-p (expand-file-name "src/emacs.c" root)) + (error "%s doesn't seem to be the root of an Emacs source tree" root)) + (set-version-in-file root "lisp/version.el" version + (rx (and "emacs-version" (0+ space) + ?\" (submatch (1+ (not (in ?\")))) ?\"))) + (set-version-in-file root "README" version + (rx (and "version" (1+ space) + (submatch (1+ (in "0-9.")))))) + (set-version-in-file root "man/emacs.texi" version + (rx (and "EMACSVER" (1+ space) + (submatch (1+ (in "0-9."))))))) + +;; admin.el ends here.