Subject: Re: bug#11649: 24.1.50; Some compilation woes

From: Glenn Morris <[email-masked]>
Date: Tue, 12 Jun 2012 18:27:03 -0400

Juanma Barranquero wrote:

> Autoload cookie error in progmodes/ebrowse.el:3654
> (wrong-type-argument integerp nil)

Trivially reproducible for me on GNU/Linux, using a variant of the
suggested method:

bootstrap
cd lisp
touch ibuf-macs.el
make autoloads

Here is a backtrace (from autoloads.el):

Generating autoloads for ibuf-macs.el...
Debugger entered--Lisp error: (wrong-type-argument integerp nil)
  nthcdr(nil (defmacro* define-ibuffer-column (symbol (&key name inline props summarizer header-mouse-map) &rest body) "Define a column SYMBOL for use with `ibuffer-formats'.\n\nBODY will be called with `buffer' bound to the buffer object, and\n`mark' bound to the current mark on the buffer.  The original ibuffer\nbuffer will be bound to `ibuffer-buf'.\n\nIf NAME is given, it will be used as a title for the column.\nOtherwise, the title will default to a capitalized version of the\nSYMBOL's name.  PROPS is a plist of additional properties to add to\nthe text, such as `mouse-face'.  And SUMMARIZER, if given, is a\nfunction which will be passed a list of all the strings in its column;\nit should return a string to display at the bottom.\n\nIf HEADER-MOUSE-MAP is given, it will be used as a keymap for the\ntitle of the column.\n\nNote that this macro expands into a `defun' for a function named\nibuffer-make-column-NAME.  If INLINE is non-nil, then the form will be\ninlined into the compiled format versions.  This means that if you\nchange its definition, you should explicitly call\n`ibuffer-recompile-formats'.\n\n(fn SYMBOL (&key NAME INLINE PROPS SUMMARIZER) &rest BODY)" (declare (indent defun)) (let* ((sym (intern (concat "ibuffer-make-column-" (symbol-name symbol)))) (bod-1 (\` (with-current-buffer buffer (\,@ body)))) (bod (if props (\` (propertize (\, bod-1) (\,@ props))) bod-1))) (\` (progn (\, (if inline (\` (push ... ibuffer-inline-columns)) (\` (defun ... ... ...)))) (put (quote (\, sym)) (quote ibuffer-column-name) (\, (if (stringp name) name (capitalize ...)))) (\, (if header-mouse-map (\` (put ... ... ...)))) (\, (if summarizer (\` (put ... ... ...)))) (\, (if summarizer (\` (put ... ... nil)))) :autoload-end)))))
  (let* ((macrop (memq car (quote (defmacro defmacro*)))) (name (nth 1 form)) (args (cl-case car ((defun defmacro defun* defmacro* define-overloadable-function) (nth 2 form)) ((define-skeleton) (quote (&optional str arg))) ((define-generic-mode define-derived-mode define-compilation-mode) nil) (t))) (body (nthcdr (get car (quote doc-string-elt)) form)) (doc (if (stringp (car body)) (pop body)))) (when (listp args) (setq doc (help-add-fundoc-usage doc args))) (list (quote autoload) (if (listp name) name (list (quote quote) name)) file doc (or (and (memq car (quote (define-skeleton define-derived-mode define-generic-mode easy-mmode-define-global-mode define-global-minor-mode define-globalized-minor-mode easy-mmode-define-minor-mode define-minor-mode))) t) (eq (car-safe (car body)) (quote interactive))) (if macrop (list (quote quote) (quote macro)) nil)))
  (cond ((and expansion (eq car (quote defalias))) (pcase-let* (((\` ((\, _) (\, _) (\, arg) \, rest)) form) ((or (and (or ... ...) (let type t)) (and (let fun arg) (let type nil))) arg) (lam (if (memq (car-safe fun) (quote ...)) (cadr fun))) ((or (\` (lambda ... \, body)) (and (let args t) (let body t))) lam) (doc (cond ((stringp ...) (car body)) ((stringp ...) (car rest)))) (interactive (pcase body ((or ... ...) t)))) (when (listp args) (setq doc (help-add-fundoc-usage doc args))) (\` (autoload (\, (nth 1 form)) (\, file) (\, doc) (\, interactive) (\, type))))) ((and expansion (memq car (quote (progn prog1)))) (let ((end (memq :autoload-end form))) (when end (setq form (copy-sequence form)) (setcdr (memq :autoload-end form) nil)) (let ((exps (delq nil (mapcar ... ...)))) (when exps (cons (quote progn) exps))))) ((and (memq car (quote (easy-mmode-define-global-mode define-global-minor-mode define-globalized-minor-mode defun defmacro easy-mmode-define-minor-mode define-minor-mode))) (setq expand (let ((load-file-name file)) (macroexpand form))) (memq (car expand) (quote (progn prog1 defalias)))) (make-autoload expand file (quote expansion))) ((memq car (quote (define-skeleton define-derived-mode define-compilation-mode define-generic-mode easy-mmode-define-global-mode define-global-minor-mode define-globalized-minor-mode easy-mmode-define-minor-mode define-minor-mode defun* defmacro* define-overloadable-function))) (let* ((macrop (memq car (quote (defmacro defmacro*)))) (name (nth 1 form)) (args (cl-case car ((defun defmacro defun* defmacro* define-overloadable-function) (nth 2 form)) ((define-skeleton) (quote ...)) ((define-generic-mode define-derived-mode define-compilation-mode) nil) (t))) (body (nthcdr (get car (quote doc-string-elt)) form)) (doc (if (stringp (car body)) (pop body)))) (when (listp args) (setq doc (help-add-fundoc-usage doc args))) (list (quote autoload) (if (listp name) name (list (quote quote) name)) file doc (or (and (memq car (quote ...)) t) (eq (car-safe (car body)) (quote interactive))) (if macrop (list (quote quote) (quote macro)) nil)))) ((eq car (quote defclass)) (let ((name (nth 1 form)) (superclasses (nth 2 form)) (doc (nth 4 form))) (list (quote eieio-defclass-autoload) (list (quote quote) name) (list (quote quote) superclasses) file doc))) ((eq car (quote defcustom)) (let ((varname (car-safe (cdr-safe form))) (init (car-safe (cdr-safe (cdr-safe form)))) (doc (car-safe (cdr-safe (cdr-safe ...))))) (\` (progn (defvar (\, varname) (\, init) (\, doc)) (custom-autoload (quote (\, varname)) (\, file) (\, (condition-case nil ... ...))))))) ((eq car (quote defgroup)) (let ((groupname (nth 1 form))) (\` (let ((loads (get ... ...))) (if (member (quote ...) loads) nil (put (quote ...) (quote custom-loads) (cons ... loads))))))) ((and expansion (consp form)) form) (t nil))
  (let ((car (car-safe form)) expand) (cond ((and expansion (eq car (quote defalias))) (pcase-let* (((\` (... ... ... \, rest)) form) ((or (and ... ...) (and ... ...)) arg) (lam (if (memq ... ...) (cadr fun))) ((or (\` ...) (and ... ...)) lam) (doc (cond (... ...) (... ...))) (interactive (pcase body (... t)))) (when (listp args) (setq doc (help-add-fundoc-usage doc args))) (\` (autoload (\, (nth 1 form)) (\, file) (\, doc) (\, interactive) (\, type))))) ((and expansion (memq car (quote (progn prog1)))) (let ((end (memq :autoload-end form))) (when end (setq form (copy-sequence form)) (setcdr (memq :autoload-end form) nil)) (let ((exps (delq nil ...))) (when exps (cons (quote progn) exps))))) ((and (memq car (quote (easy-mmode-define-global-mode define-global-minor-mode define-globalized-minor-mode defun defmacro easy-mmode-define-minor-mode define-minor-mode))) (setq expand (let ((load-file-name file)) (macroexpand form))) (memq (car expand) (quote (progn prog1 defalias)))) (make-autoload expand file (quote expansion))) ((memq car (quote (define-skeleton define-derived-mode define-compilation-mode define-generic-mode easy-mmode-define-global-mode define-global-minor-mode define-globalized-minor-mode easy-mmode-define-minor-mode define-minor-mode defun* defmacro* define-overloadable-function))) (let* ((macrop (memq car (quote ...))) (name (nth 1 form)) (args (cl-case car (... ...) (... ...) (... nil) (t))) (body (nthcdr (get car ...) form)) (doc (if (stringp ...) (pop body)))) (when (listp args) (setq doc (help-add-fundoc-usage doc args))) (list (quote autoload) (if (listp name) name (list (quote quote) name)) file doc (or (and (memq car ...) t) (eq (car-safe ...) (quote interactive))) (if macrop (list (quote quote) (quote macro)) nil)))) ((eq car (quote defclass)) (let ((name (nth 1 form)) (superclasses (nth 2 form)) (doc (nth 4 form))) (list (quote eieio-defclass-autoload) (list (quote quote) name) (list (quote quote) superclasses) file doc))) ((eq car (quote defcustom)) (let ((varname (car-safe (cdr-safe form))) (init (car-safe (cdr-safe ...))) (doc (car-safe (cdr-safe ...)))) (\` (progn (defvar (\, varname) (\, init) (\, doc)) (custom-autoload (quote ...) (\, file) (\, ...)))))) ((eq car (quote defgroup)) (let ((groupname (nth 1 form))) (\` (let ((loads ...)) (if (member ... loads) nil (put ... ... ...)))))) ((and expansion (consp form)) form) (t nil)))
  make-autoload((defmacro* define-ibuffer-column (symbol (&key name inline props summarizer header-mouse-map) &rest body) "Define a column SYMBOL for use with `ibuffer-formats'.\n\nBODY will be called with `buffer' bound to the buffer object, and\n`mark' bound to the current mark on the buffer.  The original ibuffer\nbuffer will be bound to `ibuffer-buf'.\n\nIf NAME is given, it will be used as a title for the column.\nOtherwise, the title will default to a capitalized version of the\nSYMBOL's name.  PROPS is a plist of additional properties to add to\nthe text, such as `mouse-face'.  And SUMMARIZER, if given, is a\nfunction which will be passed a list of all the strings in its column;\nit should return a string to display at the bottom.\n\nIf HEADER-MOUSE-MAP is given, it will be used as a keymap for the\ntitle of the column.\n\nNote that this macro expands into a `defun' for a function named\nibuffer-make-column-NAME.  If INLINE is non-nil, then the form will be\ninlined into the compiled format versions.  This means that if you\nchange its definition, you should explicitly call\n`ibuffer-recompile-formats'.\n\n(fn SYMBOL (&key NAME INLINE PROPS SUMMARIZER) &rest BODY)" (declare (indent defun)) (let* ((sym (intern (concat "ibuffer-make-column-" (symbol-name symbol)))) (bod-1 (\` (with-current-buffer buffer (\,@ body)))) (bod (if props (\` (propertize (\, bod-1) (\,@ props))) bod-1))) (\` (progn (\, (if inline (\` (push ... ibuffer-inline-columns)) (\` (defun ... ... ...)))) (put (quote (\, sym)) (quote ibuffer-column-name) (\, (if (stringp name) name (capitalize ...)))) (\, (if header-mouse-map (\` (put ... ... ...)))) (\, (if summarizer (\` (put ... ... ...)))) (\, (if summarizer (\` (put ... ... nil)))) :autoload-end)))) "ibuf-macs")
  (let* ((form (prog1 (read (current-buffer)) (or (bolp) (forward-line 1)))) (autoload (make-autoload form load-name))) (if autoload (push (nth 1 form) autoloads-done) (setq autoload form)) (let ((autoload-print-form-outbuf (marker-buffer output-start))) (autoload-print-form autoload)))
  (closure ((ostart . 515329) (output-start . #<marker at 515329 in loaddefs.el>) (absfile . "/tmp/trunk/lisp/ibuf-macs.el") (otherbuf) (visited) (load-name . "ibuf-macs") (autoloads-done) (outfile . "/tmp/trunk/lisp/loaddefs.el") (outbuf . #<buffer loaddefs.el>) (file . "ibuf-macs.el") print-readably autoload-modified-buffers t) nil (let* ((form (prog1 (read (current-buffer)) (or (bolp) (forward-line 1)))) (autoload (make-autoload form load-name))) (if autoload (push (nth 1 form) autoloads-done) (setq autoload form)) (let ((autoload-print-form-outbuf (marker-buffer output-start))) (autoload-print-form autoload))))()
  funcall((closure ((ostart . 515329) (output-start . #<marker at 515329 in loaddefs.el>) (absfile . "/tmp/trunk/lisp/ibuf-macs.el") (otherbuf) (visited) (load-name . "ibuf-macs") (autoloads-done) (outfile . "/tmp/trunk/lisp/loaddefs.el") (outbuf . #<buffer loaddefs.el>) (file . "ibuf-macs.el") print-readably autoload-modified-buffers t) nil (let* ((form (prog1 (read (current-buffer)) (or (bolp) (forward-line 1)))) (autoload (make-autoload form load-name))) (if autoload (push (nth 1 form) autoloads-done) (setq autoload form)) (let ((autoload-print-form-outbuf (marker-buffer output-start))) (autoload-print-form autoload)))))
  (if debug-on-error (funcall body) (condition-case err (funcall body) (error (message "Autoload cookie error in %s:%s %S" file (count-lines (point-min) (point)) err))))
  (let ((body (lambda nil (let* ((form (prog1 ... ...)) (autoload (make-autoload form load-name))) (if autoload (push (nth 1 form) autoloads-done) (setq autoload form)) (let ((autoload-print-form-outbuf ...)) (autoload-print-form autoload)))))) (if debug-on-error (funcall body) (condition-case err (funcall body) (error (message "Autoload cookie error in %s:%s %S" file (count-lines (point-min) (point)) err)))))
  (condition-case-unless-debug err (let* ((form (prog1 (read (current-buffer)) (or (bolp) (forward-line 1)))) (autoload (make-autoload form load-name))) (if autoload (push (nth 1 form) autoloads-done) (setq autoload form)) (let ((autoload-print-form-outbuf (marker-buffer output-start))) (autoload-print-form autoload))) (error (message "Autoload cookie error in %s:%s %S" file (count-lines (point-min) (point)) err)))
  (if (eolp) (condition-case-unless-debug err (let* ((form (prog1 (read (current-buffer)) (or (bolp) (forward-line 1)))) (autoload (make-autoload form load-name))) (if autoload (push (nth 1 form) autoloads-done) (setq autoload form)) (let ((autoload-print-form-outbuf (marker-buffer output-start))) (autoload-print-form autoload))) (error (message "Autoload cookie error in %s:%s %S" file (count-lines (point-min) (point)) err))) (princ (buffer-substring (progn (skip-chars-backward " \f	") (if (= (char-after (1+ ...)) 32) (forward-char 1)) (point)) (progn (forward-line 1) (point))) (marker-buffer output-start)))
  (cond ((looking-at (regexp-quote generate-autoload-cookie)) (unless output-start (let ((outbuf (or (if otherbuf nil outbuf) (autoload-find-destination absfile load-name) (throw ... otherbuf)))) (with-current-buffer outbuf (setq output-start (point-marker) ostart (point))))) (search-forward generate-autoload-cookie) (skip-chars-forward " 	") (if (eolp) (condition-case-unless-debug err (let* ((form (prog1 ... ...)) (autoload (make-autoload form load-name))) (if autoload (push (nth 1 form) autoloads-done) (setq autoload form)) (let ((autoload-print-form-outbuf ...)) (autoload-print-form autoload))) (error (message "Autoload cookie error in %s:%s %S" file (count-lines (point-min) (point)) err))) (princ (buffer-substring (progn (skip-chars-backward " \f	") (if (= ... 32) (forward-char 1)) (point)) (progn (forward-line 1) (point))) (marker-buffer output-start)))) ((looking-at ";") (forward-line 1)) (t (forward-sexp 1) (forward-line 1)))
  (while (not (eobp)) (skip-chars-forward " 	\n\f") (cond ((looking-at (regexp-quote generate-autoload-cookie)) (unless output-start (let ((outbuf (or ... ... ...))) (with-current-buffer outbuf (setq output-start (point-marker) ostart (point))))) (search-forward generate-autoload-cookie) (skip-chars-forward " 	") (if (eolp) (condition-case-unless-debug err (let* ((form ...) (autoload ...)) (if autoload (push ... autoloads-done) (setq autoload form)) (let (...) (autoload-print-form autoload))) (error (message "Autoload cookie error in %s:%s %S" file (count-lines ... ...) err))) (princ (buffer-substring (progn (skip-chars-backward " \f	") (if ... ...) (point)) (progn (forward-line 1) (point))) (marker-buffer output-start)))) ((looking-at ";") (forward-line 1)) (t (forward-sexp 1) (forward-line 1))))
  (save-restriction (widen) (goto-char (point-min)) (while (not (eobp)) (skip-chars-forward " 	\n\f") (cond ((looking-at (regexp-quote generate-autoload-cookie)) (unless output-start (let ((outbuf ...)) (with-current-buffer outbuf (setq output-start ... ostart ...)))) (search-forward generate-autoload-cookie) (skip-chars-forward " 	") (if (eolp) (condition-case-unless-debug err (let* (... ...) (if autoload ... ...) (let ... ...)) (error (message "Autoload cookie error in %s:%s %S" file ... err))) (princ (buffer-substring (progn ... ... ...) (progn ... ...)) (marker-buffer output-start)))) ((looking-at ";") (forward-line 1)) (t (forward-sexp 1) (forward-line 1)))))
  (save-excursion (save-restriction (widen) (goto-char (point-min)) (while (not (eobp)) (skip-chars-forward " 	\n\f") (cond ((looking-at (regexp-quote generate-autoload-cookie)) (unless output-start (let (...) (with-current-buffer outbuf ...))) (search-forward generate-autoload-cookie) (skip-chars-forward " 	") (if (eolp) (condition-case-unless-debug err (let* ... ... ...) (error ...)) (princ (buffer-substring ... ...) (marker-buffer output-start)))) ((looking-at ";") (forward-line 1)) (t (forward-sexp 1) (forward-line 1))))))
  (if no-update-autoloads nil (message "Generating autoloads for %s..." file) (setq load-name (if (stringp generated-autoload-load-name) generated-autoload-load-name (autoload-file-load-name absfile))) (when (and outfile (not (if (memq system-type (quote (ms-dos windows-nt))) (equal (downcase outfile) (downcase (autoload-generated-file))) (equal outfile (autoload-generated-file))))) (setq otherbuf t)) (save-excursion (save-restriction (widen) (goto-char (point-min)) (while (not (eobp)) (skip-chars-forward " 	\n\f") (cond ((looking-at (regexp-quote generate-autoload-cookie)) (unless output-start (let ... ...)) (search-forward generate-autoload-cookie) (skip-chars-forward " 	") (if (eolp) (condition-case-unless-debug err ... ...) (princ ... ...))) ((looking-at ";") (forward-line 1)) (t (forward-sexp 1) (forward-line 1)))))) (when output-start (let ((secondary-autoloads-file-buf (if otherbuf (current-buffer)))) (with-current-buffer (marker-buffer output-start) (save-excursion (cl-assert (= ostart output-start)) (goto-char output-start) (let ((relfile ...)) (autoload-insert-section-header (marker-buffer output-start) autoloads-done load-name relfile (if secondary-autoloads-file-buf ... ...)) (insert ";;; Generated autoloads from " relfile "\n"))) (insert generate-autoload-section-trailer)))) (message "Generating autoloads for %s...done" file))
  (unless no-update-autoloads (message "Generating autoloads for %s..." file) (setq load-name (if (stringp generated-autoload-load-name) generated-autoload-load-name (autoload-file-load-name absfile))) (when (and outfile (not (if (memq system-type (quote (ms-dos windows-nt))) (equal (downcase outfile) (downcase (autoload-generated-file))) (equal outfile (autoload-generated-file))))) (setq otherbuf t)) (save-excursion (save-restriction (widen) (goto-char (point-min)) (while (not (eobp)) (skip-chars-forward " 	\n\f") (cond ((looking-at (regexp-quote generate-autoload-cookie)) (unless output-start (let ... ...)) (search-forward generate-autoload-cookie) (skip-chars-forward " 	") (if (eolp) (condition-case-unless-debug err ... ...) (princ ... ...))) ((looking-at ";") (forward-line 1)) (t (forward-sexp 1) (forward-line 1)))))) (when output-start (let ((secondary-autoloads-file-buf (if otherbuf (current-buffer)))) (with-current-buffer (marker-buffer output-start) (save-excursion (cl-assert (= ostart output-start)) (goto-char output-start) (let ((relfile ...)) (autoload-insert-section-header (marker-buffer output-start) autoloads-done load-name relfile (if secondary-autoloads-file-buf ... ...)) (insert ";;; Generated autoloads from " relfile "\n"))) (insert generate-autoload-section-trailer)))) (message "Generating autoloads for %s...done" file))
  (save-current-buffer (set-buffer (or visited (autoload-find-file file))) (unless no-update-autoloads (message "Generating autoloads for %s..." file) (setq load-name (if (stringp generated-autoload-load-name) generated-autoload-load-name (autoload-file-load-name absfile))) (when (and outfile (not (if (memq system-type (quote ...)) (equal (downcase outfile) (downcase ...)) (equal outfile (autoload-generated-file))))) (setq otherbuf t)) (save-excursion (save-restriction (widen) (goto-char (point-min)) (while (not (eobp)) (skip-chars-forward " 	\n\f") (cond ((looking-at ...) (unless output-start ...) (search-forward generate-autoload-cookie) (skip-chars-forward " 	") (if ... ... ...)) ((looking-at ";") (forward-line 1)) (t (forward-sexp 1) (forward-line 1)))))) (when output-start (let ((secondary-autoloads-file-buf (if otherbuf (current-buffer)))) (with-current-buffer (marker-buffer output-start) (save-excursion (cl-assert (= ostart output-start)) (goto-char output-start) (let (...) (autoload-insert-section-header ... autoloads-done load-name relfile ...) (insert ";;; Generated autoloads from " relfile "\n"))) (insert generate-autoload-section-trailer)))) (message "Generating autoloads for %s...done" file)) (or visited (kill-buffer (current-buffer))))
  (with-current-buffer (or visited (autoload-find-file file)) (unless no-update-autoloads (message "Generating autoloads for %s..." file) (setq load-name (if (stringp generated-autoload-load-name) generated-autoload-load-name (autoload-file-load-name absfile))) (when (and outfile (not (if (memq system-type (quote ...)) (equal (downcase outfile) (downcase ...)) (equal outfile (autoload-generated-file))))) (setq otherbuf t)) (save-excursion (save-restriction (widen) (goto-char (point-min)) (while (not (eobp)) (skip-chars-forward " 	\n\f") (cond ((looking-at ...) (unless output-start ...) (search-forward generate-autoload-cookie) (skip-chars-forward " 	") (if ... ... ...)) ((looking-at ";") (forward-line 1)) (t (forward-sexp 1) (forward-line 1)))))) (when output-start (let ((secondary-autoloads-file-buf (if otherbuf (current-buffer)))) (with-current-buffer (marker-buffer output-start) (save-excursion (cl-assert (= ostart output-start)) (goto-char output-start) (let (...) (autoload-insert-section-header ... autoloads-done load-name relfile ...) (insert ";;; Generated autoloads from " relfile "\n"))) (insert generate-autoload-section-trailer)))) (message "Generating autoloads for %s...done" file)) (or visited (kill-buffer (current-buffer))))
  (let ((autoloads-done (quote nil)) load-name (print-length nil) (print-level nil) (print-readably t) (float-output-format nil) (visited (get-file-buffer file)) (otherbuf nil) (absfile (expand-file-name file)) output-start ostart) (with-current-buffer (or visited (autoload-find-file file)) (unless no-update-autoloads (message "Generating autoloads for %s..." file) (setq load-name (if (stringp generated-autoload-load-name) generated-autoload-load-name (autoload-file-load-name absfile))) (when (and outfile (not (if (memq system-type ...) (equal ... ...) (equal outfile ...)))) (setq otherbuf t)) (save-excursion (save-restriction (widen) (goto-char (point-min)) (while (not (eobp)) (skip-chars-forward " 	\n\f") (cond (... ... ... ... ...) (... ...) (t ... ...))))) (when output-start (let ((secondary-autoloads-file-buf (if otherbuf ...))) (with-current-buffer (marker-buffer output-start) (save-excursion (cl-assert ...) (goto-char output-start) (let ... ... ...)) (insert generate-autoload-section-trailer)))) (message "Generating autoloads for %s...done" file)) (or visited (kill-buffer (current-buffer)))) (or (not output-start) otherbuf))
  (catch (quote done) (let ((autoloads-done (quote nil)) load-name (print-length nil) (print-level nil) (print-readably t) (float-output-format nil) (visited (get-file-buffer file)) (otherbuf nil) (absfile (expand-file-name file)) output-start ostart) (with-current-buffer (or visited (autoload-find-file file)) (unless no-update-autoloads (message "Generating autoloads for %s..." file) (setq load-name (if (stringp generated-autoload-load-name) generated-autoload-load-name (autoload-file-load-name absfile))) (when (and outfile (not (if ... ... ...))) (setq otherbuf t)) (save-excursion (save-restriction (widen) (goto-char (point-min)) (while (not ...) (skip-chars-forward " 	\n\f") (cond ... ... ...)))) (when output-start (let ((secondary-autoloads-file-buf ...)) (with-current-buffer (marker-buffer output-start) (save-excursion ... ... ...) (insert generate-autoload-section-trailer)))) (message "Generating autoloads for %s...done" file)) (or visited (kill-buffer (current-buffer)))) (or (not output-start) otherbuf)))
  autoload-generate-file-autoloads("ibuf-macs.el" #<buffer loaddefs.el> "/tmp/trunk/lisp/loaddefs.el")
  (if (autoload-generate-file-autoloads file (current-buffer) buffer-file-name) (push file no-autoloads))
  (cond ((and (consp file) (stringp (car file))) (autoload-remove-section (match-beginning 0)) (let ((last-time (nth 4 form))) (dolist (file file) (let ((file-time (nth 5 ...))) (when (and file-time (not ...)) (push file no-autoloads) (setq files (delete file files))))))) ((not (stringp file))) ((or (not (file-exists-p file)) (member file done) (member (expand-file-name file) autoload-excludes)) (autoload-remove-section (match-beginning 0))) ((not (time-less-p (nth 4 form) (nth 5 (file-attributes file)))) nil) (t (autoload-remove-section (match-beginning 0)) (if (autoload-generate-file-autoloads file (current-buffer) buffer-file-name) (push file no-autoloads))))
  (let* ((form (autoload-read-section-header)) (file (nth 3 form))) (cond ((and (consp file) (stringp (car file))) (autoload-remove-section (match-beginning 0)) (let ((last-time (nth 4 form))) (dolist (file file) (let ((file-time ...)) (when (and file-time ...) (push file no-autoloads) (setq files ...)))))) ((not (stringp file))) ((or (not (file-exists-p file)) (member file done) (member (expand-file-name file) autoload-excludes)) (autoload-remove-section (match-beginning 0))) ((not (time-less-p (nth 4 form) (nth 5 (file-attributes file)))) nil) (t (autoload-remove-section (match-beginning 0)) (if (autoload-generate-file-autoloads file (current-buffer) buffer-file-name) (push file no-autoloads)))) (push file done) (setq files (delete file files)))
  (while (search-forward generate-autoload-section-header nil t) (let* ((form (autoload-read-section-header)) (file (nth 3 form))) (cond ((and (consp file) (stringp (car file))) (autoload-remove-section (match-beginning 0)) (let ((last-time (nth 4 form))) (dolist (file file) (let (...) (when ... ... ...))))) ((not (stringp file))) ((or (not (file-exists-p file)) (member file done) (member (expand-file-name file) autoload-excludes)) (autoload-remove-section (match-beginning 0))) ((not (time-less-p (nth 4 form) (nth 5 (file-attributes file)))) nil) (t (autoload-remove-section (match-beginning 0)) (if (autoload-generate-file-autoloads file (current-buffer) buffer-file-name) (push file no-autoloads)))) (push file done) (setq files (delete file files))))
  (save-excursion (setq files (delete (file-relative-name buffer-file-name) (mapcar (quote file-relative-name) files))) (goto-char (point-min)) (while (search-forward generate-autoload-section-header nil t) (let* ((form (autoload-read-section-header)) (file (nth 3 form))) (cond ((and (consp file) (stringp (car file))) (autoload-remove-section (match-beginning 0)) (let ((last-time ...)) (dolist (file file) (let ... ...)))) ((not (stringp file))) ((or (not (file-exists-p file)) (member file done) (member (expand-file-name file) autoload-excludes)) (autoload-remove-section (match-beginning 0))) ((not (time-less-p (nth 4 form) (nth 5 ...))) nil) (t (autoload-remove-section (match-beginning 0)) (if (autoload-generate-file-autoloads file (current-buffer) buffer-file-name) (push file no-autoloads)))) (push file done) (setq files (delete file files)))))
  (save-current-buffer (set-buffer (autoload-find-generated-file)) (save-excursion (setq files (delete (file-relative-name buffer-file-name) (mapcar (quote file-relative-name) files))) (goto-char (point-min)) (while (search-forward generate-autoload-section-header nil t) (let* ((form (autoload-read-section-header)) (file (nth 3 form))) (cond ((and (consp file) (stringp ...)) (autoload-remove-section (match-beginning 0)) (let (...) (dolist ... ...))) ((not (stringp file))) ((or (not ...) (member file done) (member ... autoload-excludes)) (autoload-remove-section (match-beginning 0))) ((not (time-less-p ... ...)) nil) (t (autoload-remove-section (match-beginning 0)) (if (autoload-generate-file-autoloads file ... buffer-file-name) (push file no-autoloads)))) (push file done) (setq files (delete file files))))) (dolist (file files) (cond ((member (expand-file-name file) autoload-excludes) nil) ((autoload-generate-file-autoloads file nil buffer-file-name) (push file no-autoloads)))) (when no-autoloads (setq no-autoloads (sort no-autoloads (quote string<))) (goto-char (point-max)) (search-backward "\f" nil t) (autoload-insert-section-header (current-buffer) nil nil no-autoloads this-time) (insert generate-autoload-section-trailer)) (let ((version-control (quote never))) (save-buffer)) (autoload-save-buffers))
  (with-current-buffer (autoload-find-generated-file) (save-excursion (setq files (delete (file-relative-name buffer-file-name) (mapcar (quote file-relative-name) files))) (goto-char (point-min)) (while (search-forward generate-autoload-section-header nil t) (let* ((form (autoload-read-section-header)) (file (nth 3 form))) (cond ((and (consp file) (stringp ...)) (autoload-remove-section (match-beginning 0)) (let (...) (dolist ... ...))) ((not (stringp file))) ((or (not ...) (member file done) (member ... autoload-excludes)) (autoload-remove-section (match-beginning 0))) ((not (time-less-p ... ...)) nil) (t (autoload-remove-section (match-beginning 0)) (if (autoload-generate-file-autoloads file ... buffer-file-name) (push file no-autoloads)))) (push file done) (setq files (delete file files))))) (dolist (file files) (cond ((member (expand-file-name file) autoload-excludes) nil) ((autoload-generate-file-autoloads file nil buffer-file-name) (push file no-autoloads)))) (when no-autoloads (setq no-autoloads (sort no-autoloads (quote string<))) (goto-char (point-max)) (search-backward "\f" nil t) (autoload-insert-section-header (current-buffer) nil nil no-autoloads this-time) (insert generate-autoload-section-trailer)) (let ((version-control (quote never))) (save-buffer)) (autoload-save-buffers))
  (let* ((files-re (let ((tmp nil)) (dolist (suf (get-load-suffixes)) (unless (string-match "\\.elc" suf) (push suf tmp))) (concat "^[^=.].*" (regexp-opt tmp t) "\\'"))) (files (apply (quote nconc) (mapcar (lambda (dir) (directory-files (expand-file-name dir) t files-re)) dirs))) (done nil) (this-time (current-time)) (no-autoloads nil) (autoload-modified-buffers nil) (generated-autoload-file (if (called-interactively-p (quote interactive)) (read-file-name "Write autoload definitions to file: ") generated-autoload-file))) (with-current-buffer (autoload-find-generated-file) (save-excursion (setq files (delete (file-relative-name buffer-file-name) (mapcar (quote file-relative-name) files))) (goto-char (point-min)) (while (search-forward generate-autoload-section-header nil t) (let* ((form (autoload-read-section-header)) (file (nth 3 form))) (cond ((and ... ...) (autoload-remove-section ...) (let ... ...)) ((not ...)) ((or ... ... ...) (autoload-remove-section ...)) ((not ...) nil) (t (autoload-remove-section ...) (if ... ...))) (push file done) (setq files (delete file files))))) (dolist (file files) (cond ((member (expand-file-name file) autoload-excludes) nil) ((autoload-generate-file-autoloads file nil buffer-file-name) (push file no-autoloads)))) (when no-autoloads (setq no-autoloads (sort no-autoloads (quote string<))) (goto-char (point-max)) (search-backward "\f" nil t) (autoload-insert-section-header (current-buffer) nil nil no-autoloads this-time) (insert generate-autoload-section-trailer)) (let ((version-control (quote never))) (save-buffer)) (autoload-save-buffers)))
  update-directory-autoloads()
  apply(update-directory-autoloads nil)
  (let ((args command-line-args-left)) (setq command-line-args-left nil) (apply (quote update-directory-autoloads) args))
  batch-update-autoloads()
  command-line-1(("-l" "emacs-lisp/autoload.el" "--eval" "(setq generated-autoload-file \"/tmp/trunk/lisp/loaddefs.el\" debug-on-error t)" "-f" "batch-update-autoloads"))
  command-line()
  normal-top-level()