Function: pages-add-new-page
pages-add-new-page is an interactive and byte-compiled function
defined in page-ext.el.gz.
Signature
(pages-add-new-page HEADER-LINE)
Documentation
Insert new page. Prompt for header line.
If point is in the pages directory buffer, insert the new page in the buffer associated with the directory.
Insert the new page just before current page if
pages-directory-for-adding-new-page-before-current-page-p is non-nil.
Else insert at exact location of point.
Narrow to new page if pages-directory-for-adding-page-narrowing-p is
non-nil.
Page begins with a ^L as the default page-delimiter.
Use M-x set-page-delimiter (set-page-delimiter) to change the page-delimiter.
Point is left in the body of page.
Key Bindings
Aliases
add-new-page (obsolete since 27.1)
Source Code
;; Defined in /usr/src/emacs/lisp/textmodes/page-ext.el.gz
(defun pages-add-new-page (header-line)
"Insert new page. Prompt for header line.
If point is in the pages directory buffer, insert the new page in the
buffer associated with the directory.
Insert the new page just before current page if
`pages-directory-for-adding-new-page-before-current-page-p' is non-nil.
Else insert at exact location of point.
Narrow to new page if `pages-directory-for-adding-page-narrowing-p' is
non-nil.
Page begins with a `^L' as the default `page-delimiter'.
Use \\[set-page-delimiter] to change the page-delimiter.
Point is left in the body of page."
(interactive "sHeader line: ")
(widen)
;; If in pages directory buffer
(if (eq major-mode 'pages-directory-mode)
(progn
;; Add new page before or after current page?
(if pages-directory-for-adding-new-page-before-current-page-p
(pages-directory-goto)
(pages-directory-goto)
(forward-page)
(or (eobp) (forward-line -1)))))
(widen)
;; Move point before current delimiter if desired.
(and pages-directory-for-adding-new-page-before-current-page-p
(if (re-search-backward page-delimiter nil t)
(goto-char (match-beginning 0))
;; If going to beginning of file, insert a page-delimiter
;; before current first page.
(goto-char (point-min))
(insert
(format "%s\n"
;; Remove leading `^' from page-delimiter string
(if (eq '^ (car (read-from-string page-delimiter)))
(substring page-delimiter 1))))
(goto-char (point-min))))
;; Insert page delimiter at beginning of line.
(if (not (looking-at "^.")) (forward-line 1))
(insert (format "%s\n%s\n\n\n"
(if (eq '^ (car (read-from-string page-delimiter)))
(substring page-delimiter 1))
header-line))
(forward-line -1)
(and pages-directory-for-adding-page-narrowing-p (narrow-to-page)))