emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/man.el,v


From: Martin Rudalics
Subject: [Emacs-diffs] Changes to emacs/lisp/man.el,v
Date: Wed, 19 Dec 2007 09:24:01 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Martin Rudalics <m061211>       07/12/19 09:24:01

Index: man.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/man.el,v
retrieving revision 1.175
retrieving revision 1.176
diff -u -b -r1.175 -r1.176
--- man.el      6 Dec 2007 17:56:41 -0000       1.175
+++ man.el      19 Dec 2007 09:24:01 -0000      1.176
@@ -647,25 +647,38 @@
 (defsubst Man-default-man-entry (&optional pos)
   "Make a guess at a default manual entry based on the text at POS.
 If POS is nil, the current point is used."
-  (let (word)
+  (let (word start original-pos distance)
     (save-excursion
       (if pos (goto-char pos))
       ;; Default man entry title is any word the cursor is on, or if
-      ;; cursor not on a word, then nearest preceding word.
-      (skip-chars-backward "-a-zA-Z0-9._+:")
-      (let ((start (point)))
+      ;; cursor not on a word, nearest preceding or next word-like
+      ;; object on this line.
+      (if (not (zerop (skip-chars-backward "-a-zA-Z0-9._+:")))
+         (setq start (point))
+       (setq original-pos (point))
+       (setq distance (abs (skip-chars-backward ",; \t")))
+       (if (not (zerop (skip-chars-backward "-a-zA-Z0-9._+:")))
+           (progn
+             (setq start (point))
+             (goto-char original-pos)
+             (if (and (< (skip-chars-forward ",; \t") distance)
+                      (looking-at "[-a-zA-Z0-9._+:]"))
+                 (setq start (point))
+               (goto-char start)))
+         (skip-chars-forward ",; \t")
+         (setq start (point))))
        (skip-chars-forward "-a-zA-Z0-9._+:")
+      (setq word (buffer-substring-no-properties start (point)))
        ;; If there is a continuation at the end of line, check the
        ;; following line too, eg:
        ;;     see this-
        ;;     command-here(1)
-       (setq word (buffer-substring-no-properties start (point)))
-       (if (looking-at "[ \t\r\n]+\\([-a-zA-Z0-9._+:]+\\)([0-9])")
-           (setq word (concat word (match-string 1)))))
-      (if (string-match "[._]+$" word)
+      (when (looking-at "[ \t\r\n]+\\([-a-zA-Z0-9._+:]+\\)([0-9])")
+       (setq word (concat word (match-string-no-properties 1))))
+      (when (string-match "[._]+$" word)
          (setq word (substring word 0 (match-beginning 0))))
       ;; If looking at something like *strcat(... , remove the '*'
-      (if (string-match "^*" word)
+      (when (string-match "^*" word)
          (setq word (substring word 1)))
       ;; If looking at something like ioctl(2) or brc(1M), include the
       ;; section number in the returned value.  Remove text properties.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]