summaryrefslogtreecommitdiff
path: root/lisp/progmodes
diff options
context:
space:
mode:
authorWilson Snyder <wsnyder@wsnyder.org>2010-11-06 00:54:19 -0700
committerDan Nicolaescu <dann@ics.uci.edu>2010-11-06 00:54:19 -0700
commit8468f78b663a9252729e8e77ad85436037977016 (patch)
treef1a7ebd96a43ac3f0cf1a50bf9548ba768d8181f /lisp/progmodes
parent3ff919646c3afd6cd5999566325964b07655b2f7 (diff)
downloademacs-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.el43
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,