*** cvsroot/emacs/lisp/emacs-lisp/bytecomp.el 2005-08-08 14:15:23.000000000 +0200 --- emacs/LH-work/byte-compile/bytecomp.2.178.patched.el 2005-10-16 14:34:54.000000000 +0200 *************** *** 2304,2310 **** ',name ',declaration)) outbuffer))))) ! (let* ((new-one (byte-compile-lambda (cons 'lambda (nthcdr 2 form)))) (code (byte-compile-byte-code-maker new-one))) (if this-one (setcdr this-one new-one) --- 2304,2310 ---- ',name ',declaration)) outbuffer))))) ! (let* ((new-one (byte-compile-lambda (nthcdr 2 form) t)) (code (byte-compile-byte-code-maker new-one))) (if this-one (setcdr this-one new-one) *************** *** 2500,2509 **** ;; Byte-compile a lambda-expression and return a valid function. ;; The value is usually a compiled function but may be the original ;; lambda-expression. ! (defun byte-compile-lambda (fun) ! (unless (eq 'lambda (car-safe fun)) ! (error "Not a lambda list: %S" fun)) ! (byte-compile-set-symbol-position 'lambda) (byte-compile-check-lambda-list (nth 1 fun)) (let* ((arglist (nth 1 fun)) (byte-compile-bound-variables --- 2500,2511 ---- ;; Byte-compile a lambda-expression and return a valid function. ;; The value is usually a compiled function but may be the original ;; lambda-expression. ! (defun byte-compile-lambda (fun &optional add-lambda) ! (if add-lambda ! (setq fun (cons 'lambda fun)) ! (unless (eq 'lambda (car-safe fun)) ! (error "Not a lambda list: %S" fun)) ! (byte-compile-set-symbol-position 'lambda)) (byte-compile-check-lambda-list (nth 1 fun)) (let* ((arglist (nth 1 fun)) (byte-compile-bound-variables *************** *** 2755,2763 **** (or (not (byte-compile-version-cond byte-compile-compatibility)) (not (get (get fn 'byte-opcode) 'emacs19-opcode)))) ! (progn ! (byte-compile-set-symbol-position fn) ! (funcall handler form)) (when (memq 'callargs byte-compile-warnings) (if (memq fn '(custom-declare-group custom-declare-variable custom-declare-face)) (byte-compile-nogroup-warn form)) --- 2757,2763 ---- (or (not (byte-compile-version-cond byte-compile-compatibility)) (not (get (get fn 'byte-opcode) 'emacs19-opcode)))) ! (funcall handler form) (when (memq 'callargs byte-compile-warnings) (if (memq fn '(custom-declare-group custom-declare-variable custom-declare-face)) (byte-compile-nogroup-warn form)) *************** *** 3671,3677 **** (list 'fset (list 'quote (nth 1 form)) (byte-compile-byte-code-maker ! (byte-compile-lambda (cons 'lambda (cdr (cdr form))))))) (byte-compile-discard)) ;; We prefer to generate a defalias form so it will record the function ;; definition just like interpreting a defun. --- 3671,3677 ---- (list 'fset (list 'quote (nth 1 form)) (byte-compile-byte-code-maker ! (byte-compile-lambda (cdr (cdr form)) t)))) (byte-compile-discard)) ;; We prefer to generate a defalias form so it will record the function ;; definition just like interpreting a defun. *************** *** 3679,3685 **** (list 'defalias (list 'quote (nth 1 form)) (byte-compile-byte-code-maker ! (byte-compile-lambda (cons 'lambda (cdr (cdr form)))))) t)) (byte-compile-constant (nth 1 form))) --- 3679,3685 ---- (list 'defalias (list 'quote (nth 1 form)) (byte-compile-byte-code-maker ! (byte-compile-lambda (cdr (cdr form)) t))) t)) (byte-compile-constant (nth 1 form))) *************** *** 3688,3695 **** (byte-compile-body-do-effect (list (list 'fset (list 'quote (nth 1 form)) (let ((code (byte-compile-byte-code-maker ! (byte-compile-lambda ! (cons 'lambda (cdr (cdr form))))))) (if (eq (car-safe code) 'make-byte-code) (list 'cons ''macro code) (list 'quote (cons 'macro (eval code)))))) --- 3688,3694 ---- (byte-compile-body-do-effect (list (list 'fset (list 'quote (nth 1 form)) (let ((code (byte-compile-byte-code-maker ! (byte-compile-lambda (cdr (cdr form)) t)))) (if (eq (car-safe code) 'make-byte-code) (list 'cons ''macro code) (list 'quote (cons 'macro (eval code))))))