]> git.eshelyaron.com Git - emacs.git/commitdiff
semantic: Add 'fromfile' option to grammar package
authorEric Ludlam <zappo@gnu.org>
Wed, 26 Nov 2014 16:45:15 +0000 (11:45 -0500)
committerDavid Engster <deng@randomsample.de>
Mon, 23 Jan 2017 21:08:24 +0000 (22:08 +0100)
* lisp/cedet/semantic/grammar.el (semantic-grammar-package): Add
  optional 'fromfile' option. This indicates we want to make a
  filename from the originating file name.

lisp/cedet/semantic/grammar.el

index e71832fece6db2184b57d46140dd5546d87a465d..5cd49326c99ffe150fdaa1474b093e27ab6b052e 100644 (file)
@@ -266,17 +266,19 @@ That is tag names plus names defined in tag attribute `:rest'."
 No argument or nil as argument means use the current buffer."
   (file-name-nondirectory (buffer-file-name buffer)))
 
-(defun semantic-grammar-package ()
+(defun semantic-grammar-package (&optional fromfile)
   "Return the %package value as a string.
-If there is no %package statement in the grammar, return a default
-package name derived from the grammar file name.  For example, the
-default package name for the grammar file foo.wy is foo-wy, and for
-foo.by it is foo-by."
-  (or (semantic-grammar-first-tag-name 'package)
+If there is no %package statement in the grammar, or if FROMFILE
+is non-nil, return a default package name derived from the
+grammar file name.  For example, the default package name for the
+grammar file foo.wy is foo-wy, and for foo.by it is foo-by."
+  (let ((pkgtoken (semantic-grammar-first-tag-name 'package)))
+    (if (and (not fromfile) pkgtoken)
+       pkgtoken
       (let* ((file (semantic-grammar-buffer-file))
              (ext  (file-name-extension file))
              (i    (string-match (format "\\([.]\\)%s\\'" ext) file)))
-        (concat (substring file 0 i) "-" ext))))
+        (concat (substring file 0 i) "-" ext)))))
 
 (defsubst semantic-grammar-languagemode ()
   "Return the %languagemode value as a list of symbols or nil."