[comp.emacs] Mandatory patch to perl-descr.el 1.3 - Please apply it

jv@mh.nl (Johan Vromans) (06/30/90)

This patch upgrades perl-descr.el 1.3 to 1.4.

* added perl-mode-syntax-table (copied from perl-mode). This is copied
  from perl-mode.el by bill@ksr.com (Bill Mann).

* added [ and whitespace to the list of post-symbol indicators
  (suggested by Sebastian Kremer <sk@thp.Uni-Koeln.DE>).  He also
  suggests to add the following to your .emacs:

	(autoload 'describe-perl-symbol "perl-descr" nil t) 
	(define-key help-map "p" 'describe-perl-symbol) 

* allow symbol guessing to work at end of file

* corrected filename doc-file -> perl-doc-file to match the
  declaration (first signalled by mdb@ESD.3Com.COM (Mark D. Baushke)).

*** perl-descr.el~	Sat Jun 30 00:54:18 1990
--- perl-descr.el	Sat Jun 30 00:53:01 1990
***************
*** 1,1
! ;; @(#)@ perl-descr.el	1.3 - describe-perl-symbol

--- 1,1 -----
! ;; @(#)@ perl-descr.el	1.4 - describe-perl-symbol
***************
*** 9,14
  (defvar perl-doc-file "~/elisp/perl-descr.txt"
    "*Where the documentation file can be found.")
  
  (defun perl-symbol-at-point ()
    "Get the closest Perl symbol to point, but don't change your
  position. Has a preference for looking backward when not

--- 9,38 -----
  (defvar perl-doc-file "~/elisp/perl-descr.txt"
    "*Where the documentation file can be found.")
  
+ (defvar perl-mode-syntax-table nil
+   "Syntax table in use in perl-mode buffers.")
+ 
+ (if perl-mode-syntax-table
+     ()
+   (setq perl-mode-syntax-table (make-syntax-table (standard-syntax-table)))
+   (modify-syntax-entry ?\n ">" perl-mode-syntax-table)
+   (modify-syntax-entry ?# "<" perl-mode-syntax-table)
+   (modify-syntax-entry ?$ "/" perl-mode-syntax-table)
+   (modify-syntax-entry ?% "." perl-mode-syntax-table)
+   (modify-syntax-entry ?& "." perl-mode-syntax-table)
+   (modify-syntax-entry ?\' "\"" perl-mode-syntax-table)
+   (modify-syntax-entry ?* "." perl-mode-syntax-table)
+   (modify-syntax-entry ?+ "." perl-mode-syntax-table)
+   (modify-syntax-entry ?- "." perl-mode-syntax-table)
+   (modify-syntax-entry ?/ "." perl-mode-syntax-table)
+   (modify-syntax-entry ?< "." perl-mode-syntax-table)
+   (modify-syntax-entry ?= "." perl-mode-syntax-table)
+   (modify-syntax-entry ?> "." perl-mode-syntax-table)
+   (modify-syntax-entry ?\\ "\\" perl-mode-syntax-table)
+   (modify-syntax-entry ?` "\"" perl-mode-syntax-table)
+   (modify-syntax-entry ?| "." perl-mode-syntax-table)
+ )
+ 
  (defun perl-symbol-at-point ()
    "Get the closest Perl symbol to point, but don't change your
  position. Has a preference for looking backward when not
***************
*** 19,30
      (save-excursion
  
        ;; first see if you're just past a symbol
!       (if (looking-at "\\s-*[][{}()]+")
! 	  (skip-chars-backward " \n\t\r({[]})")
! 
! 	;; else move forward one character, presumably either a \w or
! 	;; a symbol
! 	(or (= (point) (point-max))
  	    (forward-char 1)))
  
        (if (eql (aref perl-mode-syntax-table (preceding-char)) 2)

--- 43,53 -----
      (save-excursion
  
        ;; first see if you're just past a symbol
!       (if (< (point) (point-max))
! 	  (if (looking-at "[] \t\n[{}()]")
! 	      (skip-chars-backward " \n\t\r({[]})")
! 	    ;; else move forward one character, presumably either a \w or
! 	    ;; a symbol
  	    (forward-char 1)))
  
        (if (eql (aref perl-mode-syntax-table (preceding-char)) 2)
***************
*** 70,83
        (if (string= val "")
  	  (setq val fn))
!       (setq regexp (concat "^" (regexp-quote val) "[ \t(]"))
!       (if (not (get-file-buffer doc-file))
  	  (progn
  	    (setq args-file
! 	      (find-file-noselect doc-file))
  	    (set-buffer args-file)
  	    (rename-buffer "*PERL-DOC*")
  	    (setq buffer-read-only t)))
!       (set-buffer (get-file-buffer doc-file))
        (goto-char (point-min))
        (list (if (re-search-forward regexp (point-max) t)
  		(save-excursion

--- 93,106 -----
        (if (string= val "")
  	  (setq val fn))
!       (setq regexp (concat "^" (regexp-quote val) "[ \t([]"))
!       (if (not (get-file-buffer perl-doc-file))
  	  (progn
  	    (setq args-file
! 	      (find-file-noselect perl-doc-file))
  	    (set-buffer args-file)
  	    (rename-buffer "*PERL-DOC*")
  	    (setq buffer-read-only t)))
!       (set-buffer (get-file-buffer perl-doc-file))
        (goto-char (point-min))
        (list (if (re-search-forward regexp (point-max) t)
  		(save-excursion
--
Johan Vromans				       jv@mh.nl via internet backbones
Multihouse Automatisering bv		       uucp: ..!{uunet,hp4nl}!mh.nl!jv
Doesburgweg 7, 2803 PL Gouda, The Netherlands  phone/fax: +31 1820 62911/62500
------------------------ "Arms are made for hugging" -------------------------