]> git.eshelyaron.com Git - emacs.git/commitdiff
* progmodes/verilog-mode.el (verilog-insert-one-definition)
authorWilson Snyder <wsnyder@wsnyder.org>
Sat, 6 Nov 2010 07:54:19 +0000 (00:54 -0700)
committerDan Nicolaescu <dann@ics.uci.edu>
Sat, 6 Nov 2010 07:54:19 +0000 (00:54 -0700)
(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.

lisp/ChangeLog
lisp/progmodes/verilog-mode.el

index 554fe267d4961fadb648b0dfcdb8481971d77cf6..48bd9c2f8a96537ea61d38651360a34196b7c2e1 100644 (file)
@@ -1,3 +1,12 @@
+2010-11-07  Wilson Snyder  <wsnyder@wsnyder.org>
+
+        * 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.
+
 2010-11-05  Michael Albinus  <michael.albinus@gmx.de>
 
        * net/trampver.el: Update release number.
index 2b7cb97c7c4f86e1131371bed5a11ed6c15c3f71..a75ed1b47d3e75b7348acde4a7a4c38615f745ea 100644 (file)
 ;;; 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))))))
 \f
 
 ;;
@@ -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,