Mercurial > emacs
view lisp/userlock.el @ 20892:18f3cb26243f before-miles-orphaned-changes gcc-2_8_1-980401 gcc-2_8_1-980407 gcc-2_8_1-980412 gcc-2_8_1-980413 gcc-2_8_1-RELEASE gcc_2_8_1-980315 libc-980214 libc-980215 libc-980216 libc-980217 libc-980218 libc-980219 libc-980220 libc-980221 libc-980222 libc-980223 libc-980224 libc-980225 libc-980226 libc-980227 libc-980228 libc-980301 libc-980302 libc-980303 libc-980304 libc-980306 libc-980307 libc-980308 libc-980309 libc-980310 libc-980311 libc-980312 libc-980313 libc-980314 libc-980315 libc-980316 libc-980317 libc-980318 libc-980319 libc-980320 libc-980321 libc-980322 libc-980323 libc-980324 libc-980325 libc-980326 libc-980327 libc-980328 libc-980329 libc-980330 libc-980331 libc-980401 libc-980402 libc-980403 libc-980404 libc-980405 libc-980406 libc-980407 libc-980408 libc-980409 libc-980410 libc-980411 libc-980412 libc-980413 libc-980414 libc-980428 libc-980429 libc-980430 libc-980501 libc-980502 libc-980503 libc-980504 libc-980505 libc-980506 libc-980507 libc-980508 libc-980509 libc-980510 libc-980512 libc-980513 libc-980514 libc-980515 libc-980516 libc-980517 libc-980518 libc-980519 libc-980520 libc-980521 libc-980522 libc-980523 libc-980524 libc-980525 libc-980526 libc-980527 libc-980528 libc-980529 libc-980530 libc-980531 libc-980601 libc-980602 libc-980603 libc-980604 libc-980605 libc-980606 libc-980607 libc-980608 libc-980609 libc-980610 libc-980611 libc-980612 libc-980613
Add PentiumII (i786). Add '7' to all i[3456] entries.
Add AMD and Cyrix names for P5 and P6.
author | Richard Kenner <kenner@gnu.org> |
---|---|
date | Fri, 13 Feb 1998 12:16:46 +0000 |
parents | 2f47e06ef5a3 |
children | d4ba91022b7a |
line wrap: on
line source
;;; userlock.el --- handle file access contention between multiple users ;; Copyright (C) 1985, 1986 Free Software Foundation, inc. ;; Maintainer: FSF ;; Keywords: internal ;; 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: ;; This file is autoloaded to handle certain conditions ;; detected by the file-locking code within Emacs. ;; The two entry points are `ask-user-about-lock' and ;; `ask-user-about-supersession-threat'. ;;; Code: (put 'file-locked 'error-conditions '(file-locked file-error error)) (put 'file-locked 'error-message "File is locked") ;;;###autoload (defun ask-user-about-lock (file opponent) "Ask user what to do when he wants to edit FILE but it is locked by OPPONENT. This function has a choice of three things to do: do (signal 'buffer-file-locked (list FILE OPPONENT)) to refrain from editing the file return t (grab the lock on the file) return nil (edit the file even though it is locked). You can redefine this function to choose among those three alternatives in any way you like." (discard-input) (save-window-excursion (let (answer short-opponent short-file) (setq short-file (if (> (length file) 22) (concat "..." (substring file (- (length file) 22))) file)) (setq short-opponent (if (> (length opponent) 25) (save-match-data (string-match " (pid [0-9]+)" opponent) (concat (substring opponent 0 13) "..." (match-string 0 opponent))) opponent)) (while (null answer) (message "%s locked by %s: (s, q, p, ?)? " short-file short-opponent) (let ((tem (let ((inhibit-quit t) (cursor-in-echo-area t)) (prog1 (downcase (read-char)) (setq quit-flag nil))))) (if (= tem help-char) (ask-user-about-lock-help) (setq answer (assoc tem '((?s . t) (?q . yield) (?\C-g . yield) (?p . nil) (?? . help)))) (cond ((null answer) (beep) (message "Please type q, s, or p; or ? for help") (sit-for 3)) ((eq (cdr answer) 'help) (ask-user-about-lock-help) (setq answer nil)) ((eq (cdr answer) 'yield) (signal 'file-locked (list file opponent))))))) (cdr answer)))) (defun ask-user-about-lock-help () (with-output-to-temp-buffer "*Help*" (princ "It has been detected that you want to modify a file that someone else has already started modifying in EMACS. You can <s>teal the file; The other user becomes the intruder if (s)he ever unmodifies the file and then changes it again. You can <p>roceed; you edit at your own (and the other user's) risk. You can <q>uit; don't modify this file.") (save-excursion (set-buffer standard-output) (help-mode)))) (put 'file-supersession 'error-conditions '(file-supersession file-error error)) ;;;###autoload (defun ask-user-about-supersession-threat (fn) "Ask a user who is about to modify an obsolete buffer what to do. This function has two choices: it can return, in which case the modification of the buffer will proceed, or it can (signal 'file-supersession (file)), in which case the proposed buffer modification will not be made. You can rewrite this to use any criterion you like to choose which one to do. The buffer in question is current when this function is called." (discard-input) (save-window-excursion (let (answer) (while (null answer) (message "%s changed on disk; really edit the buffer? (y, n, r or C-h) " (file-name-nondirectory fn)) (let ((tem (downcase (let ((cursor-in-echo-area t)) (read-char))))) (setq answer (if (= tem help-char) 'help (cdr (assoc tem '((?n . yield) (?\C-g . yield) (?y . proceed) (?r . revert) (?? . help)))))) (cond ((null answer) (beep) (message "Please type y, n or r; or ? for help") (sit-for 3)) ((eq answer 'help) (ask-user-about-supersession-help) (setq answer nil)) ((eq answer 'revert) (revert-buffer nil (not (buffer-modified-p))) ; ask confirmation iff buffer modified (signal 'file-supersession (list "File reverted" fn))) ((eq answer 'yield) (signal 'file-supersession (list "File changed on disk" fn)))))) (message "File on disk now will become a backup file if you save these changes.") (setq buffer-backed-up nil)))) (defun ask-user-about-supersession-help () (with-output-to-temp-buffer "*Help*" (princ "You want to modify a buffer whose disk file has changed since you last read it in or saved it with this buffer. If you say `y' to go ahead and modify this buffer, you risk ruining the work of whoever rewrote the file. If you say `r' to revert, the contents of the buffer are refreshed from the file on disk. If you say `n', the change you started to make will be aborted. Usually, you should type `n' and then `M-x revert-buffer', to get the latest version of the file, then make the change again.") (save-excursion (set-buffer standard-output) (help-mode)))) ;;; userlock.el ends here