diff options
author | Wilson Snyder <wsnyder@wsnyder.org> | 2010-11-06 00:54:19 -0700 |
---|---|---|
committer | Dan Nicolaescu <dann@ics.uci.edu> | 2010-11-06 00:54:19 -0700 |
commit | 8468f78b663a9252729e8e77ad85436037977016 (patch) | |
tree | f1a7ebd96a43ac3f0cf1a50bf9548ba768d8181f /lisp/progmodes | |
parent | 3ff919646c3afd6cd5999566325964b07655b2f7 (diff) | |
download | emacs-8468f78b663a9252729e8e77ad85436037977016.tar.gz |
* progmodes/verilog-mode.el (verilog-insert-one-definition)
(verilog-read-decls, verilog-read-sub-decls-sig): Fix AUTOWIRE and
AUTOINOUT for SV style multidimensional arrays, bug294. Reported
by Eric Mastromarchi.
(verilog-preprocess): Use with-current-buffer and
font-lock-fontify-buffer to cleanup style issues.
Diffstat (limited to 'lisp/progmodes')
-rw-r--r-- | lisp/progmodes/verilog-mode.el | 43 |
1 files changed, 30 insertions, 13 deletions
diff --git a/lisp/progmodes/verilog-mode.el b/lisp/progmodes/verilog-mode.el index 2b7cb97c7c4..a75ed1b47d3 100644 --- a/lisp/progmodes/verilog-mode.el +++ b/lisp/progmodes/verilog-mode.el @@ -124,9 +124,9 @@ ;;; Code: ;; This variable will always hold the version number of the mode -(defconst verilog-mode-version "647" +(defconst verilog-mode-version "650" "Version of this Verilog mode.") -(defconst verilog-mode-release-date "2010-10-20-GNU" +(defconst verilog-mode-release-date "2010-11-05-GNU" "Release date of this Verilog mode.") (defconst verilog-mode-release-emacs t "If non-nil, this version of Verilog mode was released with Emacs itself.") @@ -4562,16 +4562,18 @@ FILENAME or defaults to `buffer-file-name`." default nil nil 'verilog-preprocess-history default))))) (unless command (setq command (verilog-expand-command verilog-preprocessor))) - (let* ((dir (file-name-directory (or filename buffer-file-name))) + (let* ((fontlocked (and (boundp 'font-lock-mode) font-lock-mode)) + (dir (file-name-directory (or filename buffer-file-name))) (file (file-name-nondirectory (or filename buffer-file-name))) (cmd (concat "cd " dir "; " command " " file))) (with-output-to-temp-buffer "*Verilog-Preprocessed*" - (save-excursion - (set-buffer "*Verilog-Preprocessed*") + (with-current-buffer (get-buffer "*Verilog-Preprocessed*") (insert (concat "// " cmd "\n")) (shell-command cmd "*Verilog-Preprocessed*") (verilog-mode) - (font-lock-mode))))) + ;; Without this force, it takes a few idle seconds + ;; to get the color, which is very jarring + (when fontlocked (font-lock-fontify-buffer)))))) ;; @@ -7277,7 +7279,10 @@ Return a array of [outputs inouts inputs wire reg assign const]." ((looking-at "\\s-*\\(\\[[^]]+\\]\\)") (goto-char (match-end 0)) (cond (newsig ; Memory, not just width. Patch last signal added's memory (nth 3) - (setcar (cdr (cdr (cdr newsig))) (match-string 1))) + (setcar (cdr (cdr (cdr newsig))) + (if (verilog-sig-memory newsig) + (concat (verilog-sig-memory newsig) (match-string 1)) + (match-string 1)))) (vec ;; Multidimensional (setq multidim (cons vec multidim)) (setq vec (verilog-string-replace-matches @@ -7415,7 +7420,9 @@ Return a array of [outputs inouts inputs wire reg assign const]." (cons (verilog-sig-new sig (if dotname (verilog-sig-bits portdata) vec) - (concat "To/From " comment) nil nil + (concat "To/From " comment) + (verilog-sig-memory portdata) + nil (verilog-sig-signed portdata) (verilog-sig-type portdata) multidim nil) @@ -7426,7 +7433,9 @@ Return a array of [outputs inouts inputs wire reg assign const]." (cons (verilog-sig-new sig (if dotname (verilog-sig-bits portdata) vec) - (concat "From " comment) nil nil + (concat "From " comment) + (verilog-sig-memory portdata) + nil (verilog-sig-signed portdata) (verilog-sig-type portdata) multidim nil) @@ -7437,7 +7446,9 @@ Return a array of [outputs inouts inputs wire reg assign const]." (cons (verilog-sig-new sig (if dotname (verilog-sig-bits portdata) vec) - (concat "To " comment) nil nil + (concat "To " comment) + (verilog-sig-memory portdata) + nil (verilog-sig-signed portdata) (verilog-sig-type portdata) multidim nil) @@ -7447,7 +7458,9 @@ Return a array of [outputs inouts inputs wire reg assign const]." (cons (verilog-sig-new sig (if dotname (verilog-sig-bits portdata) vec) - (concat "To/From " comment) nil nil + (concat "To/From " comment) + (verilog-sig-memory portdata) + nil (verilog-sig-signed portdata) (verilog-sig-type portdata) multidim nil) @@ -7459,7 +7472,9 @@ Return a array of [outputs inouts inputs wire reg assign const]." (cons (verilog-sig-new sig (if dotname (verilog-sig-bits portdata) vec) - (concat "To/From " comment) nil nil + (concat "To/From " comment) + (verilog-sig-memory portdata) + nil (verilog-sig-signed portdata) (verilog-sig-type portdata) multidim nil) @@ -8874,7 +8889,9 @@ with appropriate INDENT-PT indentation." (indent-to (max 24 (+ indent-pt 16))) (unless (= (char-syntax (preceding-char)) ?\ ) (insert " ")) ; Need space between "]name" if indent-to did nothing - (insert (verilog-sig-name sig))) + (insert (verilog-sig-name sig)) + (when (verilog-sig-memory sig) + (insert " " (verilog-sig-memory sig)))) (defun verilog-insert-definition (sigs direction indent-pt v2k &optional dont-sort) "Print out a definition for a list of SIGS of the given DIRECTION, |