;;; cpp.el --- highlight or hide text according to cpp conditionals
-;; Copyright (C) 1994-1995, 2001-2012 Free Software Foundation, Inc.
+;; Copyright (C) 1994-1995, 2001-2016 Free Software Foundation, Inc.
;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
;; Keywords: c, faces, tools
:prefix "cpp-")
(defcustom cpp-config-file (convert-standard-filename ".cpp.el")
- "*File name to save cpp configuration."
+ "File name to save cpp configuration."
:type 'file
:group 'cpp)
(define-widget 'cpp-face 'lazy
- "Either a face or the special symbol 'invisible'."
+ "Either a face or the special symbol `invisible'."
:type '(choice (const invisible) (face)))
(defcustom cpp-known-face 'invisible
- "*Face used for known cpp symbols."
+ "Face used for known cpp symbols."
:type 'cpp-face
:group 'cpp)
(defcustom cpp-unknown-face 'highlight
- "*Face used for unknown cpp symbols."
+ "Face used for unknown cpp symbols."
:type 'cpp-face
:group 'cpp)
(defcustom cpp-face-type 'light
- "*Indicate what background face type you prefer.
+ "Indicate what background face type you prefer.
Can be either light or dark for color screens, mono for monochrome
screens, and none if you don't use a window system and don't have
a color-capable display."
:group 'cpp)
(defcustom cpp-known-writable t
- "*Non-nil means you are allowed to modify the known conditionals."
+ "Non-nil means you are allowed to modify the known conditionals."
:type 'boolean
:group 'cpp)
(defcustom cpp-unknown-writable t
- "*Non-nil means you are allowed to modify the unknown conditionals."
+ "Non-nil means you are allowed to modify the unknown conditionals."
:type 'boolean
:group 'cpp)
("true" . t)
("both" . both)))
+;; FIXME Gets clobbered by cpp-choose-face, so why is even it a defcustom?
(defcustom cpp-face-default-list nil
"Alist of faces you can choose from for cpp conditionals.
Each element has the form (STRING . FACE), where STRING
serves as a name (for `cpp-highlight-buffer' only)
and FACE is either a face (a symbol)
or a cons cell (background-color . COLOR)."
- :type '(repeat (cons string (choice face (cons (const background-color) string))))
+ :type '(alist :key-type (string :tag "Name")
+ :value-type (choice face
+ (const invisible)
+ (cons (const background-color)
+ (string :tag "Color"))))
:group 'cpp)
(defcustom cpp-face-light-name-list
(cpp-progress-message "Parsing...")
(while (re-search-forward cpp-parse-regexp nil t)
(cpp-progress-message "Parsing...%d%%"
- (/ (* 100 (- (point) (point-min))) (buffer-size)))
+ (floor (* 100.0 (- (point) (point-min)))
+ (buffer-size)))
(let ((match (buffer-substring (match-beginning 0) (match-end 0))))
(cond ((or (string-equal match "'")
(string-equal match "\""))
(define-key map [ down-mouse-2 ] 'cpp-push-button)
(define-key map [ mouse-2 ] 'ignore)
(define-key map " " 'scroll-up-command)
+ (define-key map [?\S-\ ] 'scroll-down-command)
(define-key map "\C-?" 'scroll-down-command)
(define-key map [ delete ] 'scroll-down)
(define-key map "\C-c\C-c" 'cpp-edit-apply)
(set-buffer buffer)
(setq cpp-edit-symbols symbols)
(erase-buffer)
- (insert "CPP Display Information for `")
+ (insert (substitute-command-keys "CPP Display Information for `"))
(cpp-make-button (buffer-name cpp-edit-buffer) 'cpp-edit-home)
- (insert "'\n\nClick mouse-2 on item you want to change or use\n"
+ (insert (substitute-command-keys
+ "'\n\nClick mouse-2 on item you want to change or use\n")
"or switch to this buffer and type the keyboard equivalents.\n"
"Keyboard equivalents are indicated with brackets like [T]his.\n\n")
(cpp-make-button "[H]ome (display the C file)" 'cpp-edit-home)
(defun cpp-edit-write (symbol branch)
"Set which branches of SYMBOL should be writable to BRANCH.
-BRANCH should be either nil (false branch), t (true branch) or 'both."
+BRANCH should be either nil (false branch), t (true branch) or `both'."
(interactive (list (cpp-choose-symbol) (cpp-choose-branch)))
(setcar (nthcdr 3 (cpp-edit-list-entry-get-or-create symbol)) branch)
(cpp-edit-reset))