summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorSimon Marshall <simon@gnu.org>1999-02-17 09:46:28 +0000
committerSimon Marshall <simon@gnu.org>1999-02-17 09:46:28 +0000
commitabb7e5cfc32f1895ebe99ca5ee1b157cf74312d0 (patch)
tree2445089140e537618bc3198d2763a01910126ed0 /lisp
parentc22554ac395d5ec99b44575d8e3f3a109df6f921 (diff)
downloademacs-abb7e5cfc32f1895ebe99ca5ee1b157cf74312d0.tar.gz
emacs-abb7e5cfc32f1895ebe99ca5ee1b157cf74312d0.tar.bz2
emacs-abb7e5cfc32f1895ebe99ca5ee1b157cf74312d0.zip
Added c-at-toplevel-p for font-lock.el.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/progmodes/cc-engine.el17
1 files changed, 17 insertions, 0 deletions
diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el
index 8df67dd33ba..1111e071800 100644
--- a/lisp/progmodes/cc-engine.el
+++ b/lisp/progmodes/cc-engine.el
@@ -766,6 +766,23 @@
(point))
))
+(defun c-at-toplevel-p ()
+ "Return a determination as to whether point is at the `top-level'.
+Being at the top-level means that point is either outside any
+enclosing block (such function definition), or inside a class
+definition, but outside any method blocks.
+
+If point is not at the top-level (e.g. it is inside a method
+definition), then nil is returned. Otherwise, if point is at a
+top-level not enclosed within a class definition, t is returned.
+Otherwise, a 2-vector is returned where the zeroth element is the
+buffer position of the start of the class declaration, and the first
+element is the buffer position of the enclosing class's opening
+brace."
+ (let ((state (c-parse-state)))
+ (or (not (c-most-enclosing-brace state))
+ (c-search-uplist-for-classkey state))))
+
(defun c-just-after-func-arglist-p (&optional containing)
;; Return t if we are between a function's argument list closing
;; paren and its opening brace. Note that the list close brace