X-Git-Url: https://cgit.sxemacs.org/?a=blobdiff_plain;f=texi%2Finfohack.el;h=919641fcaef4e9a25bfeaca691f5f84bff6ddc83;hb=bf4e6629187bcc9870482dae72c49f6d54648ad0;hp=40fd5bedd7c7f3fde3c48e36c425260305f06e8e;hpb=0154604e83354abf8adf59d35cc5c41482ca8105;p=gnus diff --git a/texi/infohack.el b/texi/infohack.el index 40fd5bedd..919641fca 100644 --- a/texi/infohack.el +++ b/texi/infohack.el @@ -69,6 +69,29 @@ which are indicated by the @copying ... @end copying command." (delete-region (1+ (match-beginning 0)) (search-forward "\n@end iflatex\n")))) +(defun infohack-include-files () + "Insert @include files." + (goto-char (point-min)) + (set-syntax-table texinfo-format-syntax-table) + (let (start texinfo-command-end filename) + (while (re-search-forward "^@include" nil t) + (setq start (match-beginning 0) + texinfo-command-end (point) + filename (texinfo-parse-line-arg)) + (delete-region start (point-at-bol 2)) + (message "Reading included file: %s" filename) + (save-excursion + (save-restriction + (narrow-to-region + (point) + (+ (point) (car (cdr (insert-file-contents filename))))) + (goto-char (point-min)) + ;; Remove `@setfilename' line from included file, if any, + ;; so @setfilename command not duplicated. + (if (re-search-forward "^@setfilename" (point-at-eol 100) t) + (delete-region (point-at-bol 1) + (point-at-bol 2)))))))) + (defun infohack (file) (let ((dest-directory default-directory) (max-lisp-eval-depth (max max-lisp-eval-depth 600)) @@ -81,6 +104,7 @@ which are indicated by the @copying ... @end copying command." (setq buffer-read-only nil) (setq coding-system buffer-file-coding-system) (infohack-remove-unsupported) + (infohack-include-files) (texinfo-every-node-update) (texinfo-format-buffer t) ;; Don't save any file. (setq default-directory dest-directory) @@ -88,7 +112,9 @@ which are indicated by the @copying ... @end copying command." (expand-file-name (file-name-nondirectory buffer-file-name) default-directory)) (setq buffer-file-coding-system coding-system) - (if (> (buffer-size) 100000) + (if (> (buffer-size) (if (boundp 'Info-split-threshold) + (+ 50000 Info-split-threshold) + 100000)) (Info-split)) (save-buffer)))