Mercurial > emacs
view lisp/emacs-lisp/copyright.el @ 9704:39b34bbe59c9
(x_catch_errors, x_check_errors, x_had_errors_p)
(x_uncatch_errors): Make the argument a display, not a frame.
(XTread_socket_fake_io_error): New variable.
(XTread_socket): Obey XTread_socket_fake_io_error.
(x_initialize): Init x_noop_count, x_focus_frame
and x_highlight_frame here.
(x_term_init): Not here.
(x_term_init): Open the connection first thing;
if that fails, don't allocate dpyinfo.
(x_delete_display): New function.
(x_connection_closed): New args dpyinfo and error_message.
Delete all frames on the dead display
and all frames using them for minibuffers.
Call x_delete_display.
Maybe signal a Lisp error.
(x_term_init): Don't report error here--just return 0.
(x_scroll_bar_report_motion): Store proper value in
*bar_window (the Emacs window, not the X window number).
(x_scroll_bar_report_motion): Don't clear *fp.
(x_wm_set_icon_pixmap): Use x_bitmap_pixmap.
(show_mouse_face): New arg dpyinfo. All callers changed.
(clear_mouse_face): New arg dpyinfo. All callers changed.
(scratch_cursor_gc): Variable deleted.
(dumpglyphs): Use scratch_cursor_gc in x_display_info.
(syms_of_xterm): Don't staticpro mouse_face_window.
(expose_all_windows, expose_all_icons): Variables deleted.
(BLOCK_INPUT_mask): Variable deleted.
(x_term_init): Set up x_id_name field.
(x_id_name): Variable deleted.
(x_font_table, x_font_table_size, x_n_fonts): Vars deleted.
(x_new_font): Use new fields.
(warp_mouse_on_deiconify): Unused variable deleted.
(x_term_init): Set up dpyinfo->xrdb.
Set up dpyinfo->vertical_scroll_bar_cursor.
(x_scroll_bar_create): Use vertical_scroll_bar_cursor slot.
(x_vertical_scroll_bar_cursor): Variable deleted.
(x_term_init): Really return dpyinfo.
(x_term_init): Call add_keyboard_wait_descriptor,
not change_keyboard_wait_descriptor.
(x_term_init): Pass new arg to init_sigio.
Don't set old_fcntl_owner.
Don't call change_input_fd.
(XTread_socket): Loop over displays and process input from each.
(x_display_name_list): New variable.
(syms_of_xterm): staticpro it.
Don't staticpro slots in the_x_screen.
(x_term_init): Update x_display_name_list along with x_display_list.
Actually malloc the x_display_info.
(the_x_screen): Variable deleted.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Wed, 26 Oct 1994 09:26:40 +0000 |
parents | f369023b3cc3 |
children | 089ea68c1fdb |
line wrap: on
line source
;;; upd-copyr.el --- update the copyright notice in a GNU Emacs Lisp file ;;; Copyright (C) 1991, 1992, 1993, 1994 Free Software Foundation, Inc. ;; Author: Roland McGrath <roland@gnu.ai.mit.edu> ;; Keywords: maint ;;; This file is part of GNU Emacs. ;;; This program 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. ;;; ;;; This program 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. ;;; ;;; A copy of the GNU General Public License can be obtained from this ;;; program's author (send electronic mail to roland@ai.mit.edu) or from ;;; the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA ;;; 02139, USA. ;;; Code: (defconst current-year (substring (current-time-string) -4) "String representing the current year.") (defvar current-gpl-version "2" "String representing the current version of the GPL.") ;;;###autoload (defvar replace-copying-with nil "*If non-nil, replace copying notices with this file.") (defvar inhibit-update-copyright nil "If nil, ask the user whether or not to update the copyright notice. If the user has said no, we set this to t locally.") ;;;###autoload (defun update-copyright (&optional replace ask-upd ask-year) "Update the copyright notice at the beginning of the buffer to indicate the current year. If optional arg REPLACE is given \(interactively, with prefix arg\) replace the years in the notice rather than adding the current year after them. If `replace-copying-with' is set, the copying permissions following the copyright are replaced as well. If optional third argument ASK is non-nil, the user is prompted for whether or not to update the copyright. If optional fourth argument ASK-YEAR is non-nil, the user is prompted for whether or not to replace the year rather than adding to it." (interactive "*P") (save-excursion (save-restriction (widen) (goto-char (point-min)) ;; Handle abbreviated year lists like "1800, 01, 02, 03" ;; or "1900, '01, '02, '03". (if (re-search-forward (concat "\\(" (substring current-year 0 2) "\\)?" "\\([0-9][0-9]\\(,\\s \\)+\\)*'?" (substring current-year 2)) nil t) (or ask-upd (message "Copyright notice already includes %s." current-year)) (goto-char (point-min)) (if (and (not inhibit-update-copyright) (or (not ask-upd) ;; If implicit, narrow it down to things that ;; look like GPL notices. (prog1 (search-forward "is free software" nil t) (goto-char (point-min)))) (re-search-forward "[Cc]opyright[^0-9]*\\(\\(\\([-, \t]*\\([0-9]+\\)\\)\\)+\\)" nil t) (or (not ask-upd) (save-window-excursion (pop-to-buffer (current-buffer)) (save-excursion ;; Show the user the copyright. (goto-char (point-min)) (sit-for 0) (or (y-or-n-p "Update copyright? ") (progn (set (make-local-variable 'inhibit-update-copyright) t) nil)))))) (progn (setq replace (or replace (and ask-year (save-window-excursion (pop-to-buffer (current-buffer)) (save-excursion ;; Show the user the copyright. (goto-char (point-min)) (sit-for 0) (y-or-n-p "Replace copyright year? ")))))) (if replace (delete-region (match-beginning 1) (match-end 1)) (insert ", ")) (insert current-year) (message "Copyright updated to %s%s." (if replace "" "include ") current-year) (if replace-copying-with (let ((case-fold-search t) beg) (goto-char (point-min)) ;; Find the beginning of the copyright. (if (search-forward "copyright" nil t) (progn ;; Look for a blank line or a line ;; containing only comment chars. (if (re-search-forward "^\\(\\s \\s<\\|\\s>\\)*$" nil t) (forward-line 1) (with-output-to-temp-buffer "*Help*" (princ (substitute-command-keys "\ I don't know where the copying notice begins. Put point there and hit \\[exit-recursive-edit].")) (recursive-edit))) (setq beg (point)) (or (search-forward "02139, USA." nil t) (with-output-to-temp-buffer "*Help*" (princ (substitute-command-keys "\ I don't know where the copying notice ends. Put point there and hit \\[exit-recursive-edit].")) (recursive-edit))) (delete-region beg (point)))) (insert-file replace-copying-with)) (if (re-search-forward "; either version \\(.+\\), or (at your option)" nil t) (progn (goto-char (match-beginning 1)) (delete-region (point) (match-end 1)) (insert current-gpl-version)))) (or ask-upd (error "This buffer contains no copyright notice!")))))))) ;;;###autoload (defun ask-to-update-copyright () "If the current buffer contains a copyright notice that is out of date, ask the user if it should be updated with `update-copyright' (which see). Put this on write-file-hooks." (update-copyright nil t t) ;; Be sure return nil; if a write-file-hook return non-nil, ;; the file is presumed to be already written. nil) (provide 'upd-copyr) ;;; upd-copyr.el ends here