;;; f90-interface-browser.el --- Parse and browse f90 interfaces
-;; Copyright (C) 2011, 2012 Free Software Foundation, Inc
+;; Copyright (C) 2011, 2012, 2013, 2014 Free Software Foundation, Inc
;; Author: Lawrence Mitchell <wence@gmx.li>
;; Created: 2011-07-06
-;; Available-from: http://github.com/wence-/f90-iface/
+;; URL: http://github.com/wence-/f90-iface/
;; Version: 1.1
+;; Package-Type: simple
;; COPYRIGHT NOTICE
(format "%s :: foo" (f90-format-parsed-slot-type x)))
arglist "\n")))
(f90-mode)
- (font-lock-fontify-buffer)
+ (if (fboundp 'font-lock-ensure)
+ (font-lock-ensure) (font-lock-fontify-buffer))
(goto-char (point-min))
(mapconcat 'identity
(loop while (not (eobp))
(<= n-passed-args n-spec-args)))
(loop for arg in arglist
for spec-arg in spec-arglist
- with match = nil
unless (or (null arg)
(string= (f90-get-parsed-type-typename arg)
(f90-get-parsed-type-typename spec-arg)))
;; Show types of the same type together
(setq types (sort types (lambda (x y)
(string< (cadar x) (cadar y)))))
- (loop for (type name) in types
+ (loop for (type _name) in types
do
(insert (format "%s :: %s\n"
(f90-format-parsed-slot-type type)
(setcdr (assoc "dimension" dec)
(1+ (f90-count-commas
(match-string 2 name))))
- (add-to-list 'dec
- (cons "dimension"
- (1+ (f90-count-commas
- (match-string 2 name))))
- t))
+ (push (cons "dimension"
+ (1+ (f90-count-commas
+ (match-string 2 name))))
+ dec))
(setq name (match-string 1 name)))
- collect (cons name dec)))))
+ collect (cons name (nreverse dec))))))
(defun f90-split-declaration (dec)
"Split and parse a type declaration DEC.