;;; hideif.el --- hides selected code within ifdef
-;; Copyright (C) 1988, 1994, 2001-2011 Free Software Foundation, Inc.
+;; Copyright (C) 1988, 1994, 2001-2014 Free Software Foundation, Inc.
;; Author: Brian Marick
;; Daniel LaLiberte <liberte@holonexus.org>
"Prepend (var value) pair to hide-ifdef-env."
(setq hide-ifdef-env (cons (cons var value) hide-ifdef-env)))
+(declare-function semantic-c-hideif-lookup "semantic/bovine/c" (var))
+(declare-function semantic-c-hideif-defined "semantic/bovine/c" (var))
(defun hif-lookup (var)
- ;; (message "hif-lookup %s" var)
- (let ((val (assoc var hide-ifdef-env)))
- (if val
- (cdr val)
- hif-undefined-symbol)))
+ (or (when (bound-and-true-p semantic-c-takeover-hideif)
+ (semantic-c-hideif-lookup var))
+ (let ((val (assoc var hide-ifdef-env)))
+ (if val
+ (cdr val)
+ hif-undefined-symbol))))
(defun hif-defined (var)
- (if (assoc var hide-ifdef-env) 1 0))
+ (cond
+ ((bound-and-true-p semantic-c-takeover-hideif)
+ (semantic-c-hideif-defined var))
+ ((assoc var hide-ifdef-env) 1)
+ (t 0)))
;;===%%SF%% evaluation (End) ===
"Compress the define list ENV into a list of defined symbols only."
(let ((new-defs nil))
(dolist (def env new-defs)
- (if (hif-lookup (car def)) (push (car env) new-defs)))))
+ (if (hif-lookup (car def)) (push (car def) new-defs)))))
(defun hide-ifdef-set-define-alist (name)
"Set the association for NAME to `hide-ifdef-env'."