Function: allout-next-topic-pending-encryption

allout-next-topic-pending-encryption is a byte-compiled function defined in allout.el.gz.

Signature

(allout-next-topic-pending-encryption)

Documentation

Return the point of the next topic pending encryption, or nil if none.

Such a topic has the allout-topic-encryption-bullet without an immediately following * that would mark the topic as being encrypted. It must also have content.

Source Code

;; Defined in /usr/src/emacs/lisp/allout.el.gz
;;;_  > allout-next-topic-pending-encryption ()
(defun allout-next-topic-pending-encryption ()
  "Return the point of the next topic pending encryption, or nil if none.

Such a topic has the `allout-topic-encryption-bullet' without an
immediately following `*' that would mark the topic as being encrypted.
It must also have content."
  (let (done got content-beg)
    (save-match-data
      (while (not done)

        (if (not (re-search-forward
                  (format "\\(\\`\\|\n\\)%s *%s[^*]"
                          (regexp-quote allout-header-prefix)
                          (regexp-quote allout-topic-encryption-bullet))
                  nil t))
            (setq got nil
                  done t)
          (goto-char (setq got (match-beginning 0)))
          (when (= (following-char) ?\n) (forward-char 1))
          (setq got (point)))

        (cond ((not got)
               (setq done t))

              ((not (search-forward "\n"))
               (setq got nil
                     done t))

              ((eobp)
               (setq got nil
                     done t))

              (t
               (setq content-beg (point))
               (backward-char 1)
               (allout-end-of-subtree)
               (if (<= (point) content-beg)
                   ;; Continue looking
                   (setq got nil)
                 ;; Got it!
                 (setq done t)))
              )
        )
      (if got
          (goto-char got))
      )
    )
  )