diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2007-09-04 08:16:59 +0000 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2007-09-04 08:16:59 +0000 |
commit | d437895355bf869a3f41f40b57c1b1f0c99af319 (patch) | |
tree | e8984cbe41375e3cde05f5fe8254c128a3fadcad | |
parent | af76478f7eb19b9bfb22f87acbaadf2e12a6f560 (diff) | |
download | mailutils-d437895355bf869a3f41f40b57c1b1f0c99af319.tar.gz mailutils-d437895355bf869a3f41f40b57c1b1f0c99af319.tar.bz2 |
New files
-rw-r--r-- | doc/texinfo/mastermenu.el | 90 | ||||
-rw-r--r-- | doc/texinfo/untabify.el | 13 |
2 files changed, 103 insertions, 0 deletions
diff --git a/doc/texinfo/mastermenu.el b/doc/texinfo/mastermenu.el new file mode 100644 index 000000000..3ab334132 --- /dev/null +++ b/doc/texinfo/mastermenu.el @@ -0,0 +1,90 @@ +;;; mastermenu.el --- Redefinition of texinfo-master-menu-list + +;; Copyright (C) 2006, 2007 Free Software Foundation, Inc. + +;; Author: Sergey Poznyakoff +;; Maintainer: bug-tar@gnu.org +;; Keywords: maint, tex, docs + +;; This file is part of GNU tar documentation suite + +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 3, or (at your option) +;; any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see <http://www.gnu.org/licenses/>. + +;;; Commentary: + +;; This file redefines texinfo-master-menu-list so that it takes into +;; account included files. + +;; Known bugs: @menu without previous sectioning command will inherit +;; documentation string from the previous menu. However, since such a +;; menu is illegal in a texinfo file, we can live with it. + +(require 'texinfo) +(require 'texnfo-upd) + +(defun texinfo-master-menu-list-recursive (title) + "Auxiliary function used by `texinfo-master-menu-list'." + (save-excursion + (let (master-menu-list) + (while (re-search-forward "\\(^@menu\\|^@include\\)" nil t) + (cond + ((string= (match-string 0) "@include") + (skip-chars-forward " \t") + (let ((included-name (let ((start (point))) + (end-of-line) + (skip-chars-backward " \t") + (buffer-substring start (point))))) + (end-of-line) + (let ((prev-title (texinfo-copy-menu-title))) + (save-excursion + (set-buffer (find-file-noselect included-name)) + (setq master-menu-list + (append (texinfo-master-menu-list-recursive prev-title) + master-menu-list)))))) + (t + (setq master-menu-list + (cons (list + (texinfo-copy-menu) + (let ((menu-title (texinfo-copy-menu-title))) + (if (string= menu-title "") + title + menu-title))) + master-menu-list))))) + master-menu-list))) + +(defun texinfo-master-menu-list () + "Return a list of menu entries and header lines for the master menu, +recursing into included files. + +Start with the menu for chapters and indices and then find each +following menu and the title of the node preceding that menu. + +The master menu list has this form: + + \(\(\(... \"entry-1-2\" \"entry-1\"\) \"title-1\"\) + \(\(... \"entry-2-2\" \"entry-2-1\"\) \"title-2\"\) + ...\) + +However, there does not need to be a title field." + + (reverse (texinfo-master-menu-list-recursive ""))) + +(defun make-master-menu () + "Create master menu in the first Emacs argument." + (find-file (car command-line-args-left)) + (texinfo-master-menu nil) + (save-buffer)) + + +;;; mastermenu.el ends here diff --git a/doc/texinfo/untabify.el b/doc/texinfo/untabify.el new file mode 100644 index 000000000..77dd5c05a --- /dev/null +++ b/doc/texinfo/untabify.el @@ -0,0 +1,13 @@ +;;;; Untabify the sources. +;;;; Usage: emacs -batch -l untabify.el [file ...] + +(defun global-untabify (buflist) + (mapcar + (lambda (bufname) + (set-buffer (find-file bufname)) + (untabify (point-min) (point-max)) + (save-buffer) + (kill-buffer (current-buffer))) + buflist)) + +(global-untabify command-line-args-left) |