X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/8c74a125c85da08e34dceedb271b71b5f09ce690..eeb468daa1a5c8b64b939c1b3c4144c21a38f281:/lisp/woman.el diff --git a/lisp/woman.el b/lisp/woman.el index fd24c9d49f..1cead32ab2 100644 --- a/lisp/woman.el +++ b/lisp/woman.el @@ -1,6 +1,6 @@ ;;; woman.el --- browse UN*X manual pages `wo (without) man' -;; Copyright (C) 2000-2012 Free Software Foundation, Inc. +;; Copyright (C) 2000-2013 Free Software Foundation, Inc. ;; Author: Francis J. Wright ;; Maintainer: FSF @@ -115,25 +115,6 @@ ;; package will over-write the WoMan binding to "w", whereas (by ;; default) WoMan will not overwrite the `dired-x' binding.) -;; The following is based on suggestions by Guy Gascoigne-Piggford and -;; Juanma Barranquero. If you really want to square the man-woman -;; circle then you might care to define the following bash function in -;; .bashrc: - -;; man() { gnudoit -q '(raise-frame (selected-frame)) (woman' \"$1\" ')' ; } - -;; If you use Microsoft COMMAND.COM then you can create a file called -;; man.bat somewhere in your path containing the two lines: - -;; @echo off -;; gnudoit -q (raise-frame (selected-frame)) (woman \"%1\") - -;; and then (e.g. from a command prompt or the Run... option in the -;; Start menu) just execute - -;; man man_page_name - - ;; Using the word at point as the default topic ;; ============================================ @@ -968,6 +949,7 @@ or different fonts." (defun woman-default-faces () "Set foreground colors of italic and bold faces to their default values." + (declare (obsolete choose-completion-guess-base-position "23.2")) (interactive) (face-spec-set 'woman-italic (face-user-default-spec 'woman-italic)) (face-spec-set 'woman-bold (face-user-default-spec 'woman-bold))) @@ -975,6 +957,7 @@ or different fonts." (defun woman-monochrome-faces () "Set foreground colors of italic and bold faces to that of the default face. This is usually either black or white." + (declare (obsolete choose-completion-guess-base-position "23.2")) (interactive) (set-face-foreground 'woman-italic 'unspecified) (set-face-foreground 'woman-bold 'unspecified)) @@ -1322,12 +1305,12 @@ cache to be re-read." ((null (cdr files)) (car (car files))) ; only 1 file for topic. (t ;; Multiple files for topic, so must select 1. - ;; Unread the command event (TAB = ?\t = 9) that runs the command - ;; `minibuffer-complete' in order to automatically complete the - ;; minibuffer contents as far as possible. - (setq unread-command-events '(9)) ; and delete any type-ahead! - (completing-read "Manual file: " files nil 1 - (try-completion "" files) 'woman-file-history)))))) + ;; Run the command `minibuffer-complete' in order to automatically + ;; complete the minibuffer contents as far as possible. + (minibuffer-with-setup-hook + (lambda () (let ((this-command this-command)) (minibuffer-complete))) + (completing-read "Manual file: " files nil 1 + (try-completion "" files) 'woman-file-history))))))) (defun woman-select (predicate list) "Select unique elements for which PREDICATE is true in LIST. @@ -1569,11 +1552,13 @@ Also make each path-info component into a list. (woman-dired-define-keys) (add-hook 'dired-mode-hook 'woman-dired-define-keys)) +(declare-function dired-get-filename "dired" + (&optional localp no-error-if-not-filep)) + ;;;###autoload (defun woman-dired-find-file () "In dired, run the WoMan man-page browser on this file." (interactive) - ;; dired-get-filename is defined in dired.el (woman-find-file (dired-get-filename))) @@ -1845,8 +1830,6 @@ Argument EVENT is the invoking mouse event." ["Use Full Frame Width" woman-toggle-fill-frame :active t :style toggle :selected woman-fill-frame] ["Reformat Last Man Page" woman-reformat-last-file t] - ["Use Monochrome Main Faces" woman-monochrome-faces t] - ["Use Default Main Faces" woman-default-faces t] ["Make Contents Menu" (woman-imenu t) (not woman-imenu-done)] "--" ["Describe (Wo)Man Mode" describe-mode t] @@ -1966,6 +1949,9 @@ Optional argument REDRAW, if non-nil, forces mode line to be updated." (message "Woman fill column set to %s." (if woman-fill-frame "frame width" woman-fill-column))) +(declare-function apropos-print "apropos" + (do-keys spacing &optional text nosubst)) + (defun woman-mini-help () "Display WoMan commands and user options in an `apropos' buffer." ;; Based on apropos-command in apropos.el @@ -2210,7 +2196,7 @@ To be called on original buffer and any .so insertions." (face-underline-p face)) (let ((face-no-ul (intern (concat face-name "-no-ul")))) (copy-face face face-no-ul) - (set-face-underline-p face-no-ul nil))))))) + (set-face-underline face-no-ul nil))))))) ;; Preprocessors ;; ============= @@ -2272,7 +2258,9 @@ Currently set only from '\" t in the first line of the source file.") (set-face-font 'woman-symbol woman-symbol-font (and (frame-live-p woman-frame) woman-frame))) - ;; Set syntax and display tables: + (setq-local adaptive-fill-mode nil) ; No special "%" "#" etc filling. + + ;; Set syntax and display tables: (set-syntax-table woman-syntax-table) (woman-set-buffer-display-table) @@ -2550,7 +2538,8 @@ REQUEST is the invoking directive without the leading dot." (cond ;; ((looking-at "[no]") (setq c t)) ; accept n(roff) and o(dd page) ;; ((looking-at "[te]") (setq c nil)) ; reject t(roff) and e(ven page) - ((looking-at "[ntoe]") + ;; Per groff ".if v" is recognized as false (it means -Tversatec). + ((looking-at "[ntoev]") (setq c (memq (following-char) woman-if-conditions-true))) ;; Unrecognized letter so reject: ((looking-at "[A-Za-z]") (setq c nil) @@ -3588,7 +3577,7 @@ expression in parentheses. Leaves point after the value." (let (n) (forward-char) (setq n (woman-parse-numeric-arg)) - (skip-syntax-forward " ") + (skip-syntax-forward " " (line-end-position)) (if (eq (following-char) ?\)) (forward-char) (WoMan-warn "Parenthesis confusion in numeric expression!")) @@ -3640,7 +3629,7 @@ expression in parentheses. Leaves point after the value." (buffer-substring (point) (line-end-position))) - (skip-syntax-forward "^ ") + (skip-syntax-forward "^ " (line-end-position)) 0) (goto-char (match-end 0)) ;; Check for scale factor: @@ -3650,7 +3639,9 @@ expression in parentheses. Leaves point after the value." ((looking-at "[mnuv]")) ; ignore for now ((looking-at "i") (setq n (* n 10))) ; inch ((looking-at "c") (setq n (* n 3.9))) ; cm - ((looking-at "P") (setq n (* n 1.7))) ; Pica + ((let ((case-fold-search nil)) + (looking-at "P")) + (setq n (* n 1.7))) ; Pica ((looking-at "p") (setq n (* n 0.14))) ; point ;; NB: May be immediately followed by + or -, etc., ;; in which case do nothing and return nil.