home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / gnu / lucid / help-lucid-emacs / text0484.txt < prev    next >
Encoding:
Text File  |  1993-07-14  |  6.2 KB  |  200 lines

  1.  
  2. Dave Barker (dbarker@mulga.awadi.com.AU ) on June 9:
  3. > A minor patch to your dired-lucid-highlight package:
  4. > If you include a subdirectory in a dired display, then the
  5. > highlighting code goes into an infinite loop.
  6. > Cheers,
  7. > Dave.
  8.  
  9. Thanks to Dave Barker for the patch. I am including the new version below.
  10.  
  11. Cengiz
  12.  
  13. ======================================================================
  14.                                |  Systems Design and Analysis Group
  15.       Cengiz Alaettinoglu      |  Department of Computer Science    
  16.          ca@cs.umd.edu         |  University of Maryland         
  17.                                |  College Park, MD 20742      
  18. ======================================================================
  19. ;;; Copyright (C) 1993 Cengiz Alaettinoglu
  20. ;;; Cengiz Alaettinoglu <ca@cs.umd.edu>
  21.  
  22. ;;; Copyright (C) 1991 Tim Wilson and Sebastian Kremer
  23. ;;; Tim.Wilson@cl.cam.ac.uk
  24. ;;; Sebastian Kremer <sk@thp.uni-koeln.de>
  25. ;;; Modified to work with Lucid Emacs
  26.  
  27. ;;; This program is free software; you can redistribute it and/or modify
  28. ;;; it under the terms of the GNU General Public License as published by
  29. ;;; the Free Software Foundation; either version 1, or (at your option)
  30. ;;; any later version.
  31. ;;;
  32. ;;; This program is distributed in the hope that it will be useful,
  33. ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
  34. ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  35. ;;; GNU General Public License for more details.
  36. ;;;
  37. ;;; A copy of the GNU General Public License can be obtained from this
  38. ;;; program's author (send electronic mail to the above address) or from
  39. ;;; Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  40.  
  41. ; How to install
  42. ; (add-hook 'dired-load-hook '(lambda () (require 'dired-lucid-highlight)) t)
  43.  
  44. (require 'dired)
  45. (provide 'dired-lucid-highlight)
  46.  
  47. (or (find-face 'dired-face-marked)
  48.     (and
  49.      (make-face 'dired-face-marked)
  50.      (if (x-color-display-p)
  51.      (progn
  52.        (set-face-foreground 'dired-face-marked "Black")
  53.        (set-face-background 'dired-face-marked "PaleVioletRed"))
  54.        (progn
  55.      (set-face-underline-p 'dired-face-marked t)))
  56. ))
  57.  
  58. (or (find-face 'dired-face-deleted)
  59.     (and
  60.      (make-face 'dired-face-deleted)
  61.      (if (x-color-display-p)
  62.      (progn
  63.        (set-face-foreground 'dired-face-deleted "Black")
  64.        (set-face-background 'dired-face-deleted "LightSlateGray"))
  65.        (progn
  66.      (set-face-underline-p 'dired-face-deleted t)))
  67. ))
  68.  
  69. (or (find-face 'dired-face-directory)
  70.     (and
  71.      (make-face 'dired-face-directory)
  72.      (if (x-color-display-p)
  73.      (set-face-foreground 'dired-face-directory "Firebrick")
  74.        (make-face-bold-italic 'dired-face-directory))
  75. ))
  76.  
  77. (or (find-face 'dired-face-executable)
  78.     (and
  79.      (make-face 'dired-face-executable)
  80.      (if (x-color-display-p)
  81.      (set-face-foreground 'dired-face-executable "Purple")
  82.        (make-face-bold 'dired-face-executable))
  83. ))
  84.  
  85. (or (find-face 'dired-face-setuid)
  86.     (and
  87.      (make-face 'dired-face-setuid)
  88.      (if (x-color-display-p)
  89.      (set-face-foreground 'dired-face-setuid "Red")
  90.        (make-face-bold 'dired-face-setuid))
  91. ))
  92.  
  93. (or (find-face 'dired-face-socket)
  94.     (and
  95.      (make-face 'dired-face-socket)
  96.      (if (x-color-display-p)
  97.      (set-face-foreground 'dired-face-socket "Gold")
  98.        (make-face-italic 'dired-face-socket))
  99. ))
  100.  
  101. (or (find-face 'dired-face-symlink)
  102.     (and
  103.      (make-face 'dired-face-symlink)
  104.      (if (x-color-display-p)
  105.      (set-face-foreground 'dired-face-symlink "MediumBlue")
  106.        (make-face-italic 'dired-face-symlink))
  107. ))
  108.  
  109. (or (find-face 'dired-face-boring)
  110.     (and
  111.      (make-face 'dired-face-boring)
  112.      (if (x-color-display-p)
  113.      (set-face-foreground 'dired-face-boring "Grey")
  114.        (set-face-background-pixmap 'dired-face-boring 
  115.                    '(32 2 "\125\125\125\125\252\252\252\252")))
  116. ))
  117.  
  118. (defvar dired-x11-re-boring (if (fboundp 'dired-omit-regexp)
  119.                 (dired-omit-regexp)
  120.                   "^#\\|~$")
  121.   "Regexp to match backup, autosave and otherwise boring files.
  122. Those files are displayed in a boring color such as grey (see
  123. variable `dired-x11-boring-color').")
  124.  
  125. (defvar dired-re-socket
  126.   (concat dired-re-maybe-mark dired-re-inode-size "s"))
  127.  
  128. (defvar dired-re-setuid;; setuid plain file (even if not executable)
  129.   (concat dired-re-maybe-mark dired-re-inode-size
  130.       "-[-r][-w][Ss][-r][-w][sx][-r][-w][xst]"))
  131.  
  132. (defvar dired-re-setgid;; setgid plain file (even if not executable)
  133.   (concat dired-re-maybe-mark dired-re-inode-size
  134.       "-[-r][-w][-x][-r][-w][Ss][-r][-w][xst]"))
  135.  
  136. (defun dired-lucid-highlight-one (face)
  137.   (set-extent-face (make-extent (dired-move-to-filename) 
  138.                 (dired-move-to-end-of-filename)) 
  139.            face))
  140.  
  141. (defun dired-lucid-highlight ()
  142. ;  (message "Highlighting...")
  143.   (save-excursion
  144.     (goto-char (point-min))
  145.     (while (not (eobp))
  146.       (and (not (eolp))
  147.        (progn
  148.          (beginning-of-line)
  149.          (cond
  150.           ((re-search-forward
  151.         dired-x11-re-boring
  152.         (save-excursion
  153.           (end-of-line)
  154.           (point))
  155.         t)
  156.            (dired-lucid-highlight-one 'dired-face-boring))
  157.           ((looking-at dired-re-dir)
  158.            (dired-lucid-highlight-one 'dired-face-directory))
  159.           ((looking-at dired-re-sym)
  160.            (dired-lucid-highlight-one 'dired-face-symlink))
  161.           ((or (looking-at dired-re-setuid)
  162.            (looking-at dired-re-setgid))
  163.            (dired-lucid-highlight-one 'dired-face-setuid))
  164.           ((looking-at dired-re-exe)
  165.            (dired-lucid-highlight-one 'dired-face-executable))
  166.           ((looking-at dired-re-socket)
  167.            (dired-lucid-highlight-one 'dired-face-socket))
  168.           )))
  169.       (forward-line 1))
  170. ;    (message "Highlighting...done")
  171. ))
  172.  
  173. (setq font-lock-keywords-dired-mode
  174.       (list (cons "^\\*.*$" 'dired-face-marked)
  175.         (cons "^\\D.*$" 'dired-face-deleted)))
  176.  
  177. (add-hook 'dired-after-readin-hook 'dired-lucid-highlight)
  178. (add-hook 'dired-mode-hook 
  179.       '(lambda () 
  180.          (font-lock-mode nil)
  181.          (setq font-lock-keywords font-lock-keywords-dired-mode) 
  182. ))
  183.  
  184.  
  185.  
  186.  
  187.  
  188. Cengiz
  189.  
  190. ======================================================================
  191.                                |  Systems Design and Analysis Group
  192.       Cengiz Alaettinoglu      |  Department of Computer Science    
  193.          ca@cs.umd.edu         |  University of Maryland         
  194.                                |  College Park, MD 20742      
  195. ======================================================================
  196.  
  197.