branch: elpa/d-mode
commit 807655921d38fbd32701a0ede4a06affba7de62b
Author: Dmitri Makarov <[email protected]>
Commit: Dmitri Makarov <[email protected]>

    Replace obsolete defadvice by the new advice-add.
    
    Also make recognition of 'static if' more precise.
---
 d-mode.el | 28 ++++++++++++++++------------
 1 file changed, 16 insertions(+), 12 deletions(-)

diff --git a/d-mode.el b/d-mode.el
index f40949d..551abcd 100644
--- a/d-mode.el
+++ b/d-mode.el
@@ -460,24 +460,28 @@ operators."
     (nil d-imenu-method-index-function 2)))
 
 ;;----------------------------------------------------------------------------
-;;;Workaround for special case of 'else static if' not being handled properly
-(defun d-special-case-looking-at (oldfun &rest args)
+;;; Workaround for special case of 'else static if' not being handled properly
+(defun d-special-case-looking-at (orig-fun &rest args)
   (let ((rxp (car args)))
     (if (and (stringp rxp) (string= rxp "if\\>[^_]"))
-        (or (apply oldfun '("static\\>[^_]"))
-            (apply oldfun '("version\\>[^_]"))
-            (apply oldfun '("debug\\>[^_]"))
-            (apply oldfun args))
-      (apply oldfun args))))
+        (or (apply orig-fun '("static\\>\\s-+if\\>[^_]"))
+            (apply orig-fun '("version\\>[^_]"))
+            (apply orig-fun '("debug\\>[^_]"))
+            (apply orig-fun args))
+      (apply orig-fun args))))
 
-(defadvice c-add-stmt-syntax (around my-c-add-stmt-syntax-wrapper activate)
+(defun d-around--c-add-stmt-syntax (orig-fun &rest args)
   (if (not (string= major-mode "d-mode"))
-      ad-do-it
+      (apply orig-fun args)
     (progn
-      (add-function :around (symbol-function 'looking-at) 
#'d-special-case-looking-at)
+      (add-function :around (symbol-function 'looking-at)
+                    #'d-special-case-looking-at)
       (unwind-protect
-          ad-do-it
-          (remove-function (symbol-function 'looking-at) 
#'d-special-case-looking-at)))))
+          (apply orig-fun args)
+        (remove-function (symbol-function 'looking-at)
+                         #'d-special-case-looking-at)))))
+
+(advice-add 'c-add-stmt-syntax :around #'d-around--c-add-stmt-syntax)
 
 ;;----------------------------------------------------------------------------
 ;;;###autoload (add-to-list 'auto-mode-alist '("\\.d[i]?\\'" . d-mode))

Reply via email to