aboutsummaryrefslogtreecommitdiffstats
path: root/admin/admin.el
diff options
context:
space:
mode:
authorK. Handa2016-01-14 21:55:43 +0900
committerK. Handa2016-01-14 21:55:43 +0900
commit641a3472ef245157ebcb2114f2d608cb3cb401a7 (patch)
tree85e524c8d12caca29588382205f536b2008edc55 /admin/admin.el
parent9835757013569673854b692ccbb58bfb3c3ed1f7 (diff)
parentee83b77f5ddede0fed518d0c23cf0ae38ce5b745 (diff)
downloademacs-641a3472ef245157ebcb2114f2d608cb3cb401a7.tar.gz
emacs-641a3472ef245157ebcb2114f2d608cb3cb401a7.zip
Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
Diffstat (limited to 'admin/admin.el')
-rw-r--r--admin/admin.el77
1 files changed, 69 insertions, 8 deletions
diff --git a/admin/admin.el b/admin/admin.el
index 6b213a7e42c..fe807ff96fe 100644
--- a/admin/admin.el
+++ b/admin/admin.el
@@ -1,6 +1,6 @@
1;;; admin.el --- utilities for Emacs administration 1;;; admin.el --- utilities for Emacs administration
2 2
3;; Copyright (C) 2001-2015 Free Software Foundation, Inc. 3;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
4 4
5;; This file is part of GNU Emacs. 5;; This file is part of GNU Emacs.
6 6
@@ -96,13 +96,74 @@ Root must be the root of an Emacs source tree."
96 (submatch (1+ (in "0-9.")))))) 96 (submatch (1+ (in "0-9."))))))
97 ;; Major version only. 97 ;; Major version only.
98 (when (string-match "\\([0-9]\\{2,\\}\\)" version) 98 (when (string-match "\\([0-9]\\{2,\\}\\)" version)
99 (setq version (match-string 1 version)) 99 (let ((newmajor (match-string 1 version)))
100 (set-version-in-file root "src/msdos.c" version 100 (set-version-in-file root "src/msdos.c" newmajor
101 (rx (and "Vwindow_system_version" (1+ not-newline) 101 (rx (and "Vwindow_system_version" (1+ not-newline)
102 ?\( (submatch (1+ (in "0-9"))) ?\)))) 102 ?\( (submatch (1+ (in "0-9"))) ?\))))
103 (set-version-in-file root "etc/refcards/ru-refcard.tex" version 103 (set-version-in-file root "etc/refcards/ru-refcard.tex" newmajor
104 "\\\\newcommand{\\\\versionemacs}\\[0\\]\ 104 "\\\\newcommand{\\\\versionemacs}\\[0\\]\
105{\\([0-9]\\{2,\\}\\)}.+%.+version of Emacs")) 105{\\([0-9]\\{2,\\}\\)}.+%.+version of Emacs")))
106 (let* ((oldversion
107 (with-temp-buffer
108 (insert-file-contents (expand-file-name "README" root))
109 (if (re-search-forward "version \\([0-9.]*\\)" nil t)
110 (version-to-list (match-string 1)))))
111 (oldmajor (if oldversion (car oldversion)))
112 (newversion (version-to-list version))
113 (newmajor (car newversion))
114 (newshort (format "%s.%s" newmajor
115 (+ (cadr newversion)
116 (if (eq 2 (length newversion)) 0 1))))
117 (majorbump (and oldversion (not (equal oldmajor newmajor))))
118 (minorbump (and oldversion (not majorbump)
119 (not (equal (cadr oldversion) (cadr newversion)))))
120 (newsfile (expand-file-name "etc/NEWS" root))
121 (oldnewsfile (expand-file-name (format "etc/NEWS.%s" oldmajor) root)))
122 (when (and majorbump
123 (not (file-exists-p oldnewsfile)))
124 (rename-file newsfile oldnewsfile)
125 (find-file oldnewsfile) ; to prompt you to commit it
126 (copy-file oldnewsfile newsfile)
127 (with-temp-buffer
128 (insert-file-contents newsfile)
129 (re-search-forward "is about changes in Emacs version \\([0-9]+\\)")
130 (replace-match (number-to-string newmajor) nil nil nil 1)
131 (re-search-forward "^See files \\(NEWS\\)")
132 (replace-match (format "NEWS.%s, NEWS" oldmajor) nil nil nil 1)
133 (let ((start (line-beginning-position)))
134 (search-forward "in older Emacs versions")
135 (or (equal start (line-beginning-position))
136 (fill-region start (line-beginning-position 2))))
137 (re-search-forward "^ $")
138 (forward-line -1)
139 (let ((start (point)))
140 (goto-char (point-max))
141 (re-search-backward "^ $" nil nil 2)
142 (delete-region start (line-beginning-position 0)))
143 (write-region nil nil newsfile)))
144 (when (or majorbump minorbump)
145 (find-file newsfile)
146 (goto-char (point-min))
147 (if (re-search-forward (format "^\\* .*in Emacs %s" newshort) nil t)
148 (progn
149 (kill-buffer)
150 (message "No need to update etc/NEWS"))
151 (goto-char (point-min))
152 (re-search-forward "^ $")
153 (forward-line -1)
154 (dolist (s '("Installation Changes" "Startup Changes" "Changes"
155 "Editing Changes"
156 "Changes in Specialized Modes and Packages"
157 "New Modes and Packages"
158 "Incompatible Lisp Changes"
159 "Lisp Changes"))
160 (insert (format "\n \n* %s in Emacs %s\n" s newshort)))
161 (insert (format "\n \n* Changes in Emacs %s on \
162Non-Free Operating Systems\n" newshort)))
163 ;; Because we skip "bump version" commits when merging between branches.
164 ;; Probably doesn't matter in practice, because NEWS changes
165 ;; will only happen on master anyway.
166 (message "Commit any NEWS changes separately")))
106 (message "Setting version numbers...done")) 167 (message "Setting version numbers...done"))
107 168
108;; Note this makes some assumptions about form of short copyright. 169;; Note this makes some assumptions about form of short copyright.