Function: hide-ifdef-guts

hide-ifdef-guts is a byte-compiled function defined in hideif.el.gz.

Signature

(hide-ifdef-guts)

Documentation

Does most of the work of hide-ifdefs.

It does not do the work that's pointless to redo on a recursive entry.

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/hideif.el.gz
(defun hide-ifdef-guts ()
  "Does most of the work of `hide-ifdefs'.
It does not do the work that's pointless to redo on a recursive entry."
  (save-excursion
    (let* ((case-fold-search t) ; Ignore case for `hide-ifdef-header-regexp'
           (expand-header (and hide-ifdef-expand-reinclusion-guard
                               (buffer-file-name)
                               (string-match hide-ifdef-header-regexp
                                             (buffer-file-name))
                               (zerop hif-recurse-level)))
           (case-fold-search nil)
           min max)
      (setq hif-__COUNTER__ 0)
      (goto-char (point-min))
      (setf min (point))
      ;; Without this `condition-case' it would be easier to see which
      ;; operation went wrong thru the backtrace `iff' user realize
      ;; the underlying meaning of all hif-* operation; for example,
      ;; `hif-shiftleft' refers to C(++) '<<' operator and floating
      ;; operation arguments would be invalid.
      (condition-case err
          (cl-loop do
                   (setf max (hif-find-any-ifX))
                   (hif-add-new-defines min max)
                   (if max
                       (hif-possibly-hide expand-header))
                   (setf min (point))
                   while max)
        (error (error "Error: failed at line %d %S"
                      (line-number-at-pos) err))))))