Yoshiki Hayashi <yoshiki(a)xemacs.org> writes:
Katsumi Yamaoka <yamaoka(a)jpl.org> writes:
> ;; 次は defface の読み下しということになるんですが、これは辛そう。:-<
山岡さんが解決してくださることを期待しております。:-)
と書いておきながら、結局現実逃避をして patch を書いてしまい
ました。直接の原因は face.el の get-custom-frame-properties
の
(setq default-custom-frame-properties
(extract-custom-frame-properties (selected-frame)))
で、auto-autoloads.el が読まれる時点ではまだ X の frame は存
在していないので、値として
(type stream class nil background dark)
というのが設定されてしまい、後の設定が壊れます。ちなみに私の
今の環境では
(type x class color background light)
になります。
それで、auto-autoloads.el が何かの package を require してい
ると、その package が frame や device 操作をして結果を保存す
るような code であった場合は動作しなくなってしまいます。です
ので、auto-autoloads.el の読み込みを frame 作成後に移動する
ように patch を書いてみました。
この patch の問題点は、XEmacs の frame が popup した後にしば
らく stat しまくるので、ちょっと XEmacs が止まっているように
見えることで、実際の起動時間はほとんど変わらないはずですが、
体感速度はかなり落ちます。
# これを英語で説明するのは大変だなぁ。相変らず英語は不得手な
# ので、英語の文は日本語の文よりかなり短くなる傾向があります。
# (^^;;
山岡さんの所でも直るかどうか試していただけないでしょうか。
Index: startup.el
===================================================================
RCS file: /usr/CVSroot/XEmacs/xemacs/lisp/startup.el,v
retrieving revision 1.24.2.8
diff -u -r1.24.2.8 startup.el
--- startup.el 2000/01/18 13:54:36 1.24.2.8
+++ startup.el 2000/01/19 05:53:14
@@ -409,18 +409,6 @@
debug-paths))
(startup-setup-paths-warning))
- (if (and (not inhibit-autoloads)
- lisp-directory)
- (load (expand-file-name (file-name-sans-extension autoload-file-name)
- lisp-directory) nil t))
-
- (if (not inhibit-autoloads)
- (progn
- (if (not inhibit-early-packages)
- (packages-load-package-auto-autoloads early-package-load-path))
- (packages-load-package-auto-autoloads late-package-load-path)
- (packages-load-package-auto-autoloads last-package-load-path)))
-
(unwind-protect
(command-line)
;; Do this again, in case .emacs defined more abbreviations.
@@ -588,6 +576,21 @@
;; When not in batch mode, this creates the first visible frame,
;; and deletes the stdio device.
(frame-initialize))
+
+ (if (and (not inhibit-autoloads)
+ lisp-directory)
+ (load (expand-file-name (file-name-sans-extension autoload-file-name)
+ lisp-directory) nil t))
+ ;; #### Autoloads needs to be done after device initialize,
+ ;; or defface will fail if auto-autoloads.el requires some package.
+ ;; However, this makes XEmacs startup looks somewhat slower
+ ;; since it does not redisplay while doing this.
+ (if (not inhibit-autoloads)
+ (progn
+ (if (not inhibit-early-packages)
+ (packages-load-package-auto-autoloads early-package-load-path))
+ (packages-load-package-auto-autoloads late-package-load-path)
+ (packages-load-package-auto-autoloads last-package-load-path)))
;;
;; We have normality, I repeat, we have normality. Anything you still
--
Yoshiki Hayashi