Function: verilog-preprocess

verilog-preprocess is an interactive and byte-compiled function defined in verilog-mode.el.gz.

Signature

(verilog-preprocess &optional COMMAND FILENAME)

Documentation

Preprocess the buffer, similar to compile, but put output in Verilog-Mode.

Takes optional COMMAND or defaults to verilog-preprocessor, and FILENAME to find directory to run in, or defaults to buffer-file-name(var)/buffer-file-name(fun).

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/verilog-mode.el.gz
(defun verilog-preprocess (&optional command filename)
  "Preprocess the buffer, similar to `compile', but put output in Verilog-Mode.
Takes optional COMMAND or defaults to `verilog-preprocessor', and
FILENAME to find directory to run in, or defaults to `buffer-file-name'."
  (interactive
   (list
    (let ((default (verilog-expand-command verilog-preprocessor)))
      (set (make-local-variable 'verilog-preprocessor)
	   (read-from-minibuffer "Run Preprocessor (like this): "
				 default nil nil
				 'verilog-preprocess-history default)))))
  (unless command (setq command (verilog-expand-command verilog-preprocessor)))
  (let* ((fontlocked font-lock-mode)
	 (dir (file-name-directory (or filename buffer-file-name)))
	 (cmd (concat "cd " dir "; " command)))
    (with-output-to-temp-buffer "*Verilog-Preprocessed*"
      (with-current-buffer "*Verilog-Preprocessed*"
	(insert (concat "// " cmd "\n"))
	(call-process shell-file-name nil t nil shell-command-switch cmd)
	(verilog-mode)
	;; Without this force, it takes a few idle seconds
	;; to get the color, which is very jarring
        (unless (fboundp 'font-lock-ensure)
          ;; We should use font-lock-ensure in preference to
          ;; font-lock-fontify-buffer, but IIUC the problem this is supposed to
          ;; solve only appears in Emacsen older than font-lock-ensure anyway.
          (when fontlocked
            (verilog--suppressed-warnings
                ((interactive-only font-lock-fontify-buffer))
              (font-lock-fontify-buffer))))))))