commit: Byte-compile menu lambdas; make the menu of available tutorials more readable.
16 years, 11 months
Aidan Kehoe
changeset: 4372:ebb35ddea76a09549491af07addc6a34d1c4e355
parent: 4353:4143b78d0df09521124aed8cd0ed848b978130ba
user: Aidan Kehoe <kehoea(a)parhasard.net>
date: Mon Dec 31 21:34:45 2007 +0100
files: lisp/ChangeLog lisp/behavior.el lisp/dumped-lisp.el lisp/menubar-items.el
description:
Byte-compile menu lambdas; make the menu of available tutorials more readable.
2007-12-31 Aidan Kehoe <kehoea(a)parhasard.net>
* menubar-items.el (default-menubar):
Byte compile the specified lambdas. Correct some compile time
warnings uncovered by this.
* menubar-items.el (tutorials-menu-filter):
If a language environment doesn't have an associated POSIX locale
specified--which indicates we don't want it used except by those
who know what they're doing--don't show its tutorial in the menu.
* behavior.el (behavior-menu-filter):
Byte compile the lambdas in the generated menu.
diff -r 4143b78d0df09521124aed8cd0ed848b978130ba -r ebb35ddea76a09549491af07addc6a34d1c4e355 lisp/ChangeLog
--- a/lisp/ChangeLog Sun Dec 23 15:29:17 2007 +0100
+++ b/lisp/ChangeLog Mon Dec 31 21:34:45 2007 +0100
@@ -1,3 +1,15 @@ 2007-12-22 Stephen J. Turnbull <stephe
+2007-12-31 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * menubar-items.el (default-menubar):
+ Byte compile the specified lambdas. Correct some compile time
+ warnings uncovered by this.
+ * menubar-items.el (tutorials-menu-filter):
+ If a language environment doesn't have an associated POSIX locale
+ specified--which indicates we don't want it used except by those
+ who know what they're doing--don't show its tutorial in the menu.
+ * behavior.el (behavior-menu-filter):
+ Byte compile the lambdas in the generated menu.
+
2007-12-22 Stephen J. Turnbull <stephen(a)xemacs.org>
Factor out lists of operators specially treated by `make-autoload'.
diff -r 4143b78d0df09521124aed8cd0ed848b978130ba -r ebb35ddea76a09549491af07addc6a34d1c4e355 lisp/behavior.el
--- a/lisp/behavior.el Sun Dec 23 15:29:17 2007 +0100
+++ b/lisp/behavior.el Mon Dec 31 21:34:45 2007 +0100
@@ -478,23 +478,23 @@ This takes into account the override inf
(defun behavior-menu-filter (menu)
(append
- '(("%_Package Utilities"
+ `(("%_Package Utilities"
("%_Set Download Site"
("%_Official Releases"
- :filter (lambda (&rest junk)
- (menu-split-long-menu
- (submenu-generate-accelerator-spec
- (package-ui-download-menu)))))
+ :filter ,#'(lambda (&rest junk)
+ (menu-split-long-menu
+ (submenu-generate-accelerator-spec
+ (package-ui-download-menu)))))
("%_Pre-Releases"
- :filter (lambda (&rest junk)
- (menu-split-long-menu
- (submenu-generate-accelerator-spec
- (package-ui-pre-release-download-menu)))))
+ :filter ,#'(lambda (&rest junk)
+ (menu-split-long-menu
+ (submenu-generate-accelerator-spec
+ (package-ui-pre-release-download-menu)))))
("%_Site Releases"
- :filter (lambda (&rest junk)
- (menu-split-long-menu
- (submenu-generate-accelerator-spec
- (package-ui-site-release-download-menu))))))
+ :filter ,#'(lambda (&rest junk)
+ (menu-split-long-menu
+ (submenu-generate-accelerator-spec
+ (package-ui-site-release-download-menu))))))
"--:shadowEtchedIn"
["%_Update Package Index" package-get-update-base]
["%_List and Install" pui-list-packages]
diff -r 4143b78d0df09521124aed8cd0ed848b978130ba -r ebb35ddea76a09549491af07addc6a34d1c4e355 lisp/dumped-lisp.el
--- a/lisp/dumped-lisp.el Sun Dec 23 15:29:17 2007 +0100
+++ b/lisp/dumped-lisp.el Mon Dec 31 21:34:45 2007 +0100
@@ -104,7 +104,7 @@ in dumped-lisp.el and is not itself list
"isearch-mode"
"buffer"
"buff-menu"
- "paths.el" ; don't get confused if paths compiled.
+ "paths"
"lisp"
"page"
"register"
diff -r 4143b78d0df09521124aed8cd0ed848b978130ba -r ebb35ddea76a09549491af07addc6a34d1c4e355 lisp/menubar-items.el
--- a/lisp/menubar-items.el Sun Dec 23 15:29:17 2007 +0100
+++ b/lisp/menubar-items.el Mon Dec 31 21:34:45 2007 +0100
@@ -99,23 +99,20 @@ Write your filter like this:
(coding-system-list)))))
(defconst default-menubar
-; (purecopy-menubar ;purespace is dead
- ;; note backquote.
- `(
- ("%_File"
+ ;; This is backquoted; a lambda with a preceding , will be byte-compiled.
+ `(("%_File"
["%_Open..." find-file]
["Open in Other %_Window..." find-file-other-window]
["Open in New %_Frame..." find-file-other-frame]
("Open with Specified %_Encoding"
:filter
- (lambda (menu)
- (coding-system-menu-filter
- (lambda (entry)
- (let ((coding-system-for-read entry))
- (call-interactively 'find-file)))
- (lambda (entry) t)
- t))
- )
+ ,#'(lambda (menu)
+ (coding-system-menu-filter
+ (lambda (entry)
+ (let ((coding-system-for-read entry))
+ (call-interactively 'find-file)))
+ (lambda (entry) t)
+ t)))
["%_Hex Edit File..." hexl-find-file
:active (fboundp 'hexl-find-file)]
["%_Insert File..." insert-file]
@@ -135,7 +132,7 @@ Write your filter like this:
["Save So%_me Buffers" save-some-buffers]
"-----"
,@(if (valid-specifier-tag-p 'msprinter)
- '(["Page Set%_up..." generic-page-setup]))
+ '(["Page Set%_up..." generic-page-setup]))
["%_Print" generic-print-buffer
:active (or (valid-specifier-tag-p 'msprinter)
(and (not (eq system-type 'windows-nt))
@@ -152,384 +149,386 @@ Write your filter like this:
:active (or buffer-file-name revert-buffer-function)
:suffix (if put-buffer-names-in-file-menu (buffer-name) "")]
("Rever%_t/Recover"
- ("Revert Buffer with Specified %_Encoding"
-:filter
- (lambda (menu)
- (coding-system-menu-filter
- (lambda (entry)
- (let ((coding-system-for-read entry))
- (revert-buffer)))
- (lambda (entry) (or buffer-file-name revert-buffer-function))
- t))
+ ("Revert Buffer with Specified %_Encoding"
+ :filter
+ ,#'(lambda (menu)
+ (coding-system-menu-filter
+ (lambda (entry)
+ (let ((coding-system-for-read entry))
+ (revert-buffer)))
+ (lambda (entry) (or buffer-file-name revert-buffer-function))
+ t)))
+ ["Re%_cover Buffer from Autosave" (recover-file buffer-file-name)
+ :active buffer-file-name
+ :suffix (if put-buffer-names-in-file-menu (buffer-name) "")]
+ ["Recover %_Session..." recover-session]
)
- ["Re%_cover Buffer from Autosave" (recover-file buffer-file-name)
-:active buffer-file-name
-:suffix (if put-buffer-names-in-file-menu (buffer-name) "")]
- ["Recover %_Session..." recover-session]
- )
"-----"
["E%_xit XEmacs" save-buffers-kill-emacs]
)
("%_Edit"
- ["%_Undo" undo
-:active (and (not (eq buffer-undo-list t))
- (or buffer-undo-list pending-undo-list))
-:suffix (if (eq last-command 'undo) "More" "")]
- ["%_Redo" redo
-:included (fboundp 'redo)
-:active (not (or (eq buffer-undo-list t)
- (eq last-buffer-undo-list nil)
- (not (or (eq last-buffer-undo-list buffer-undo-list)
- (and (null (car-safe buffer-undo-list))
- (eq last-buffer-undo-list
- (cdr-safe buffer-undo-list)))))
- (or (eq buffer-undo-list pending-undo-list)
- (eq (cdr buffer-undo-list) pending-undo-list))))
-:suffix (if (eq last-command 'redo) "More" "")]
+ ["%_Undo" undo
+:active (and (not (eq buffer-undo-list t))
+ (or buffer-undo-list pending-undo-list))
+:suffix (if (eq last-command 'undo) "More" "")]
+ ["%_Redo" redo
+:included (fboundp 'redo)
+:active (not (or (eq buffer-undo-list t)
+ (eq last-buffer-undo-list nil)
+ (not (or (eq last-buffer-undo-list buffer-undo-list)
+ (and (null (car-safe buffer-undo-list))
+ (eq last-buffer-undo-list
+ (cdr-safe buffer-undo-list)))))
+ (or (eq buffer-undo-list pending-undo-list)
+ (eq (cdr buffer-undo-list) pending-undo-list))))
+:suffix (if (eq last-command 'redo) "More" "")]
+ "----"
+ ["Cu%_t" kill-primary-selection
+:active (selection-owner-p)]
+ ["%_Copy" copy-primary-selection
+:active (selection-owner-p)]
+ ["%_Paste" yank-clipboard-selection
+:active (selection-exists-p 'CLIPBOARD)]
+ ["%_Delete" delete-primary-selection
+:active (selection-owner-p)]
+ "----"
+ ["Select %_All" mark-whole-buffer]
+ ["Select Pa%_ge" mark-page]
+ ["Select Paragrap%_h" mark-paragraph]
+ ["Re%_select Region" activate-region :active (mark t)]
+ "----"
+ ["%_Find..." make-search-dialog]
+ ["R%_eplace..." query-replace]
+ ["Replace (Rege%_xp)..." query-replace-regexp]
+ ["List %_Matching Lines..." list-matching-lines]
+ )
+
+ ("%_View"
+ ["%_Split Window" split-window-vertically]
+ ["S%_plit Window (Side by Side)" split-window-horizontally]
+ ["%_Un-Split (Keep This)" delete-other-windows
+:active (not (one-window-p t))]
+ ["Un-Split (Keep %_Others)" delete-window
+:active (not (one-window-p t))]
+ ["Balance %_Windows" balance-windows
+:active (not (one-window-p t))]
+ ["Shrink Window to %_Fit" shrink-window-if-larger-than-buffer]
+ "----"
+ ("N%_arrow"
+ ["%_Narrow to Region" narrow-to-region :active (region-exists-p)]
+ ["Narrow to %_Page" narrow-to-page]
+ ["Narrow to %_Defun" narrow-to-defun]
"----"
- ["Cu%_t" kill-primary-selection
-:active (selection-owner-p)]
- ["%_Copy" copy-primary-selection
-:active (selection-owner-p)]
- ["%_Paste" yank-clipboard-selection
-:active (selection-exists-p 'CLIPBOARD)]
- ["%_Delete" delete-primary-selection
-:active (selection-owner-p)]
- "----"
- ["Select %_All" mark-whole-buffer]
- ["Select Pa%_ge" mark-page]
- ["Select Paragrap%_h" mark-paragraph]
- ["Re%_select Region" activate-region :active (mark t)]
- "----"
- ["%_Find..." make-search-dialog]
- ["R%_eplace..." query-replace]
- ["Replace (Rege%_xp)..." query-replace-regexp]
- ["List %_Matching Lines..." list-matching-lines]
+ ["%_Widen" widen :active (or (/= (point-min) 1)
+ (/= (point-max) (1+ (buffer-size))))]
)
-
- ("%_View"
- ["%_Split Window" split-window-vertically]
- ["S%_plit Window (Side by Side)" split-window-horizontally]
- ["%_Un-Split (Keep This)" delete-other-windows
-:active (not (one-window-p t))]
- ["Un-Split (Keep %_Others)" delete-window
-:active (not (one-window-p t))]
- ["Balance %_Windows" balance-windows
-:active (not (one-window-p t))]
- ["Shrink Window to %_Fit" shrink-window-if-larger-than-buffer]
- "----"
- ("N%_arrow"
- ["%_Narrow to Region" narrow-to-region :active (region-exists-p)]
- ["Narrow to %_Page" narrow-to-page]
- ["Narrow to %_Defun" narrow-to-defun]
- "----"
- ["%_Widen" widen :active (or (/= (point-min) 1)
- (/= (point-max) (1+ (buffer-size))))]
- )
- "----"
- ["%_Goto Line..." goto-line]
- ["Beginning of %_Defun" beginning-of-defun]
- ["%_End of Defun" end-of-defun]
- ["%_Count Lines in Buffer" count-lines-buffer
-:included (not (region-active-p))]
- ["%_Count Lines in Region" count-lines-region
-:included (region-active-p)]
- "----"
- ["%_Jump to Previous Mark" (set-mark-command t)
-:active (mark t)]
- ["Se%_t Bookmark" bookmark-set
-:active (fboundp 'bookmark-set)]
- ("%_Bookmarks"
-:filter
- (lambda (menu)
- (let ((alist (and-boundp 'bookmark-alist
- bookmark-alist)))
- (if (not alist)
- menu
- (let ((items
+ "----"
+ ["%_Goto Line..." goto-line]
+ ["Beginning of %_Defun" beginning-of-defun]
+ ["%_End of Defun" end-of-defun]
+ ["%_Count Lines in Buffer" count-lines-buffer
+:included (not (region-active-p))]
+ ["%_Count Lines in Region" count-lines-region
+:included (region-active-p)]
+ "----"
+ ["%_Jump to Previous Mark" (set-mark-command t)
+:active (mark t)]
+ ["Se%_t Bookmark" bookmark-set
+:active (fboundp 'bookmark-set)]
+ ("%_Bookmarks"
+:filter
+ ,#'(lambda (menu)
+ (let ((alist (and-boundp 'bookmark-alist
+ bookmark-alist)))
+ (if (not alist)
+ menu
+ (let ((items
+ (submenu-generate-accelerator-spec
+ (mapcar #'(lambda (bmk)
+ `[,bmk (bookmark-jump ',bmk)])
+ (bookmark-all-names)))))
+ (append menu '("---") items)))))
+ "---"
+ ["Insert %_Contents" bookmark-menu-insert
+:active (fboundp 'bookmark-menu-insert)]
+ ["Insert L%_ocation" bookmark-menu-locate
+:active (fboundp 'bookmark-menu-locate)]
+ "---"
+ ["%_Rename Bookmark" bookmark-menu-rename
+:active (fboundp 'bookmark-menu-rename)]
+ ("%_Delete Bookmark"
+:filter ,#'(lambda (menu)
(submenu-generate-accelerator-spec
(mapcar #'(lambda (bmk)
- `[,bmk (bookmark-jump ',bmk)])
+ `[,bmk (bookmark-delete ',bmk)])
(bookmark-all-names)))))
- (append menu '("---") items)))))
- "---"
- ["Insert %_Contents" bookmark-menu-insert
- :active (fboundp 'bookmark-menu-insert)]
- ["Insert L%_ocation" bookmark-menu-locate
- :active (fboundp 'bookmark-menu-locate)]
- "---"
- ["%_Rename Bookmark" bookmark-menu-rename
- :active (fboundp 'bookmark-menu-rename)]
- ("%_Delete Bookmark"
- :filter (lambda (menu)
- (submenu-generate-accelerator-spec
- (mapcar #'(lambda (bmk)
- `[,bmk (bookmark-delete ',bmk)])
- (bookmark-all-names)))))
- ["%_Edit Bookmark List" bookmark-bmenu-list
- :active (and-boundp 'bookmark-alist bookmark-alist)]
- "---"
- ["%_Save Bookmarks" bookmark-save
- :active (and-boundp 'bookmark-alist bookmark-alist)]
- ["Save Bookmarks %_As..." bookmark-write
- :active (and-boundp 'bookmark-alist bookmark-alist)]
- ["%_Load a Bookmark File" bookmark-load
- :active (fboundp 'bookmark-load)]
- )
+ ["%_Edit Bookmark List" bookmark-bmenu-list
+:active (and-boundp 'bookmark-alist bookmark-alist)]
+ "---"
+ ["%_Save Bookmarks" bookmark-save
+:active (and-boundp 'bookmark-alist bookmark-alist)]
+ ["Save Bookmarks %_As..." bookmark-write
+:active (and-boundp 'bookmark-alist bookmark-alist)]
+ ["%_Load a Bookmark File" bookmark-load
+:active (fboundp 'bookmark-load)]
)
+ )
("C%_mds"
- ["Repeat Last Comple%_x Command..." repeat-complex-command]
- ["E%_valuate Lisp Expression..." eval-expression]
- ["Execute %_Named Command..." execute-extended-command]
+ ["Repeat Last Comple%_x Command..." repeat-complex-command]
+ ["E%_valuate Lisp Expression..." eval-expression]
+ ["Execute %_Named Command..." execute-extended-command]
+ "----"
+ ["Start %_Defining Macro" start-kbd-macro
+:included (not defining-kbd-macro)]
+ ["Stop %_Defining Macro" end-kbd-macro
+:included defining-kbd-macro]
+ ["%_Execute Last Macro" call-last-kbd-macro
+:active last-kbd-macro]
+ ("Other %_Macro"
+ ["Edit %_Last Macro" edit-last-kbd-macro
+:active last-kbd-macro]
+ ["%_Edit Macro..." edit-kbd-macro]
+ ["%_Append to Last Macro" (start-kbd-macro t)
+:active (and (not defining-kbd-macro) last-kbd-macro)]
+ "---"
+ ["%_Name Last Macro..." name-last-kbd-macro
+:active last-kbd-macro]
+ ["Assign Last Macro to %_Key..." assign-last-kbd-macro-to-key
+:active (and last-kbd-macro
+ (fboundp 'assign-last-kbd-macro-to-key))]
+ "---"
+ ["E%_xecute Last Macro on Region Lines"
+:active (and last-kbd-macro (region-exists-p))]
+ "---"
+ ["%_Query User During Macro" kbd-macro-query
+:active defining-kbd-macro]
+ ["Enter %_Recursive Edit During Macro" (kbd-macro-query t)
+:active defining-kbd-macro]
+ "---"
+ ["%_Insert Named Macro into Buffer..." insert-kbd-macro]
+ ["Read Macro from Re%_gion" read-kbd-macro
+:active (region-exists-p)]
+ )
+ "----"
+ ["D%_ynamic Abbrev Expand" dabbrev-expand]
+ ["Define %_Global Abbrev for " add-global-abbrev
+:suffix (truncate-string-to-width (abbrev-string-to-be-defined nil)
+ 40 nil nil t)]
+ ("Other %_Abbrev"
+ ["Dynamic Abbrev %_Complete" dabbrev-completion]
+ ["Dynamic Abbrev Complete in %_All Buffers" (dabbrev-completion 16)]
"----"
- ["Start %_Defining Macro" start-kbd-macro
-:included (not defining-kbd-macro)]
- ["Stop %_Defining Macro" end-kbd-macro
-:included defining-kbd-macro]
- ["%_Execute Last Macro" call-last-kbd-macro
-:active last-kbd-macro]
- ("Other %_Macro"
- ["Edit %_Last Macro" edit-last-kbd-macro
- :active last-kbd-macro]
- ["%_Edit Macro..." edit-kbd-macro]
- ["%_Append to Last Macro" (start-kbd-macro t)
- :active (and (not defining-kbd-macro) last-kbd-macro)]
- "---"
- ["%_Name Last Macro..." name-last-kbd-macro
- :active last-kbd-macro]
- ["Assign Last Macro to %_Key..." assign-last-kbd-macro-to-key
- :active (and last-kbd-macro
- (fboundp 'assign-last-kbd-macro-to-key))]
- "---"
- ["E%_xecute Last Macro on Region Lines"
- :active (and last-kbd-macro (region-exists-p))]
- "---"
- ["%_Query User During Macro" kbd-macro-query
- :active defining-kbd-macro]
- ["Enter %_Recursive Edit During Macro" (kbd-macro-query t)
- :active defining-kbd-macro]
- "---"
- ["%_Insert Named Macro into Buffer..." insert-kbd-macro]
- ["Read Macro from Re%_gion" read-kbd-macro
- :active (region-exists-p)]
- )
"----"
- ["D%_ynamic Abbrev Expand" dabbrev-expand]
- ["Define %_Global Abbrev for " add-global-abbrev
- :suffix (truncate-string-to-width (abbrev-string-to-be-defined nil)
+ ["%_Define Global Abbrev for " add-global-abbrev
+:suffix (truncate-string-to-width (abbrev-string-to-be-defined nil)
40 nil nil t)]
- ("Other %_Abbrev"
- ["Dynamic Abbrev %_Complete" dabbrev-completion]
- ["Dynamic Abbrev Complete in %_All Buffers" (dabbrev-completion 16)]
- "----"
- "----"
- ["%_Define Global Abbrev for " add-global-abbrev
- :suffix (truncate-string-to-width (abbrev-string-to-be-defined nil)
+ ["Define %_Mode-Specific Abbrev for " add-mode-abbrev
+:suffix (truncate-string-to-width (abbrev-string-to-be-defined nil)
40 nil nil t)]
- ["Define %_Mode-Specific Abbrev for " add-mode-abbrev
- :suffix (truncate-string-to-width (abbrev-string-to-be-defined nil)
- 40 nil nil t)]
- ["Define Global Ex%_pansion for " inverse-add-global-abbrev
- :suffix (truncate-string-to-width
+ ["Define Global Ex%_pansion for " inverse-add-global-abbrev
+:suffix (truncate-string-to-width
(inverse-abbrev-string-to-be-defined 1)
40 nil nil t)]
- ["Define Mode-Specific Expa%_nsion for " inverse-add-mode-abbrev
- :suffix (truncate-string-to-width
+ ["Define Mode-Specific Expa%_nsion for " inverse-add-mode-abbrev
+:suffix (truncate-string-to-width
(inverse-abbrev-string-to-be-defined 1)
40 nil nil t)]
- "---"
- ["E%_xpand Abbrev" expand-abbrev]
- ["Expand Abbrevs in Re%_gion" expand-region-abbrevs
- :active (region-exists-p)]
- ["%_Unexpand Last Abbrev" unexpand-abbrev
- :active (and (stringp last-abbrev-text)
- (> last-abbrev-location 0))]
- "---"
- ["%_Kill All Abbrevs" kill-all-abbrevs]
- ["%_Insert All Abbrevs into Buffer" insert-abbrevs]
- ["%_List Abbrevs" list-abbrevs]
- "---"
- ["%_Edit Abbrevs" edit-abbrevs]
- ["%_Redefine Abbrevs from Buffer" edit-abbrevs-redefine
- :active (eq major-mode 'edit-abbrevs-mode)]
- "---"
- ["%_Save Abbrevs As..." write-abbrev-file]
- ["L%_oad Abbrevs..." read-abbrev-file]
- )
- "---"
- ["%_Cut Rectangle" kill-rectangle]
- ["%_Prefix Rectangle..." string-rectangle]
- ("Other %_Rectangles/Register"
- ["%_Yank Rectangle" yank-rectangle]
- ["Rectangle %_to Register" copy-rectangle-to-register]
- ["Rectangle %_from Register" insert-register]
- ["%_Delete Rectangle" clear-rectangle]
- ["%_Open Rectangle" open-rectangle]
- ["Rectangle %_Mousing"
- (customize-set-variable 'mouse-track-rectangle-p
+ "---"
+ ["E%_xpand Abbrev" expand-abbrev]
+ ["Expand Abbrevs in Re%_gion" expand-region-abbrevs
+:active (region-exists-p)]
+ ["%_Unexpand Last Abbrev" unexpand-abbrev
+:active (and (stringp last-abbrev-text)
+ (> last-abbrev-location 0))]
+ "---"
+ ["%_Kill All Abbrevs" kill-all-abbrevs]
+ ["%_Insert All Abbrevs into Buffer" insert-abbrevs]
+ ["%_List Abbrevs" list-abbrevs]
+ "---"
+ ["%_Edit Abbrevs" edit-abbrevs]
+ ["%_Redefine Abbrevs from Buffer" edit-abbrevs-redefine
+:active (eq major-mode 'edit-abbrevs-mode)]
+ "---"
+ ["%_Save Abbrevs As..." write-abbrev-file]
+ ["L%_oad Abbrevs..." read-abbrev-file]
+ )
+ "---"
+ ["%_Cut Rectangle" kill-rectangle]
+ ["%_Prefix Rectangle..." string-rectangle]
+ ("Other %_Rectangles/Register"
+ ["%_Yank Rectangle" yank-rectangle]
+ ["Rectangle %_to Register" copy-rectangle-to-register]
+ ["Rectangle %_from Register" insert-register]
+ ["%_Delete Rectangle" clear-rectangle]
+ ["%_Open Rectangle" open-rectangle]
+ ["Rectangle %_Mousing"
+ (customize-set-variable 'mouse-track-rectangle-p
(not mouse-track-rectangle-p))
- :style toggle :selected mouse-track-rectangle-p]
- "---"
- ["%_Copy to Register..." copy-to-register :active (region-exists-p)]
- ["%_Append to Register..." append-register :active (region-exists-p)]
- ["%_Insert Register..." insert-register]
- "---"
- ["%_Save Point to Register" point-to-register]
- ["%_Jump to Register" register-to-point]
- )
- "---"
- ["%_Sort Lines in Region" sort-lines :active (region-exists-p)]
- ["%_Uppercase Region or Word" upcase-region-or-word]
- ["%_Lowercase Region or Word" downcase-region-or-word]
- ["%_Indent Region or Balanced Expression"
- indent-region-or-balanced-expression]
- ["%_Fill Paragraph or Region" fill-paragraph-or-region]
- ("Other %_Text Commands"
- ["Sort %_Paragraphs in Region" sort-paragraphs :active (region-exists-p)]
- ["Sort Pa%_ges in Region" sort-pages :active (region-exists-p)]
- ["Sort C%_olumns in Region" sort-columns :active (region-exists-p)]
- ["Sort %_Regexp..." sort-regexp-fields :active (region-exists-p)]
- "---"
- ["%_Capitalize Region" capitalize-region :active (region-exists-p)]
- ["Title-C%_ase Region" capitalize-region-as-title
- :active (region-exists-p)]
- "----"
- ["C%_enter Region or Paragraph"
- (if (region-active-p) (center-region) (center-line))]
- ["Center %_Line" center-line]
- "---"
- ["%_Indent Region Rigidly" indent-rigidly :active (region-exists-p)]
- ["In%_dent To Column..." indent-to-column]
- "---"
- ["%_Untabify (Tabs to Spaces)" untabify :active (and (region-exists-p)
- (fboundp 'untabify))]
- ["%_Tabify (Spaces to Tabs)" tabify :active (and (region-exists-p)
- (fboundp 'tabify))]
- ["Tab to Tab %_Stop" tab-to-tab-stop]
- ["Edit Ta%_b Stops" edit-tab-stops]
- )
- "---"
- ("%_Tags"
- ["%_Find Tag..." find-tag]
- ["Find %_Other Window..." find-tag-other-window]
- ["%_Next Tag..." (find-tag nil)]
- ["N%_ext Other Window..." (find-tag-other-window nil)]
- ["Next %_File" next-file]
- "-----"
- ["Tags %_Search..." tags-search]
- ["Tags %_Replace..." tags-query-replace]
- ["%_Continue Search/Replace" tags-loop-continue]
- "-----"
- ["%_Pop stack" pop-tag-mark]
- ["%_Apropos..." tags-apropos]
- "-----"
- ["%_Set Tags Table File..." visit-tags-table]
- )
- )
+:style toggle :selected mouse-track-rectangle-p]
+ "---"
+ ["%_Copy to Register..." copy-to-register :active (region-exists-p)]
+ ["%_Append to Register..." append-register :active (region-exists-p)]
+ ["%_Insert Register..." insert-register]
+ "---"
+ ["%_Save Point to Register" point-to-register]
+ ["%_Jump to Register" register-to-point]
+ )
+ "---"
+ ["%_Sort Lines in Region" sort-lines :active (region-exists-p)]
+ ["%_Uppercase Region or Word" upcase-region-or-word]
+ ["%_Lowercase Region or Word" downcase-region-or-word]
+ ["%_Indent Region or Balanced Expression"
+ indent-region-or-balanced-expression]
+ ["%_Fill Paragraph or Region" fill-paragraph-or-region]
+ ("Other %_Text Commands"
+ ["Sort %_Paragraphs in Region" sort-paragraphs :active (region-exists-p)]
+ ["Sort Pa%_ges in Region" sort-pages :active (region-exists-p)]
+ ["Sort C%_olumns in Region" sort-columns :active (region-exists-p)]
+ ["Sort %_Regexp..." sort-regexp-fields :active (region-exists-p)]
+ "---"
+ ["%_Capitalize Region" capitalize-region :active (region-exists-p)]
+ ["Title-C%_ase Region" capitalize-region-as-title
+:active (region-exists-p)]
+ "----"
+ ["C%_enter Region or Paragraph"
+ (if (region-active-p) (center-region) (center-line))]
+ ["Center %_Line" center-line]
+ "---"
+ ["%_Indent Region Rigidly" indent-rigidly :active (region-exists-p)]
+ ["In%_dent To Column..." indent-to-column]
+ "---"
+ ["%_Untabify (Tabs to Spaces)" untabify :active (and (region-exists-p)
+ (fboundp 'untabify))]
+ ["%_Tabify (Spaces to Tabs)" tabify :active (and (region-exists-p)
+ (fboundp 'tabify))]
+ ["Tab to Tab %_Stop" tab-to-tab-stop]
+ ["Edit Ta%_b Stops" edit-tab-stops]
+ )
+ "---"
+ ("%_Tags"
+ ["%_Find Tag..." find-tag]
+ ["Find %_Other Window..." find-tag-other-window]
+ ["%_Next Tag..." (find-tag nil)]
+ ["N%_ext Other Window..." (find-tag-other-window nil)]
+ ["Next %_File" next-file]
+ "-----"
+ ["Tags %_Search..." tags-search]
+ ["Tags %_Replace..." tags-query-replace]
+ ["%_Continue Search/Replace" tags-loop-continue]
+ "-----"
+ ["%_Pop stack" pop-tag-mark]
+ ["%_Apropos..." tags-apropos]
+ "-----"
+ ["%_Set Tags Table File..." visit-tags-table]
+ )
+ )
;; #### Delete this entire menu as soon as the new package source is
;; committed.
("%_Tools"
- ("%_Packages"
- ("%_Set Download Site"
- ("%_Official Releases"
- :filter (lambda (&rest junk)
- (menu-split-long-menu
- (submenu-generate-accelerator-spec
- (package-ui-download-menu)))))
- ("%_Pre-Releases"
- :filter (lambda (&rest junk)
- (menu-split-long-menu
- (submenu-generate-accelerator-spec
- (package-ui-pre-release-download-menu)))))
- ("%_Site Releases"
- :filter (lambda (&rest junk)
- (menu-split-long-menu
- (submenu-generate-accelerator-spec
- (package-ui-site-release-download-menu))))))
- "--:shadowEtchedIn"
- ["%_Update Package Index" package-get-update-base]
- ["%_List and Install" pui-list-packages]
- ["U%_pdate Installed Packages" package-get-update-all]
- ["%_Help" (Info-goto-node "(xemacs)Packages")])
- ("%_Internet"
- ["Read Mail %_1 (VM)..." vm
- :active (fboundp 'vm)]
- ["Read Mail %_2 (MH)..." (mh-rmail t)
- :active (fboundp 'mh-rmail)]
- ["Send %_Mail..." compose-mail
- :active (fboundp 'compose-mail)]
- ["Usenet %_News" gnus
- :active (fboundp 'gnus)]
- ["Browse the %_Web" w3
- :active (fboundp 'w3)])
- "---"
- ("%_Grep"
-:filter
- (lambda (menu)
- (if (or (not (boundp 'grep-history)) (null grep-history))
- menu
- (let ((items
- (submenu-generate-accelerator-spec
- (mapcar #'(lambda (label-value)
- (vector (first label-value)
- (list 'grep (second label-value))))
- (Menubar-items-truncate-history
- grep-history 10 50)))))
- (append menu '("---") items))))
- ["%_Grep..." grep :active (fboundp 'grep)]
- ["%_Kill Grep" kill-compilation
- :active (and (fboundp 'kill-compilation)
- (fboundp 'compilation-find-buffer)
- (let ((buffer (condition-case nil
- (compilation-find-buffer)
- (error nil))))
- (and buffer (get-buffer-process buffer))))]
- "---"
- ["Grep %_All Files in Current Directory..."
- grep-all-files-in-current-directory
- :active (fboundp 'grep-all-files-in-current-directory)]
- ["Grep All Files in Current Directory %_Recursively..."
- grep-all-files-in-current-directory-and-below
- :active (fboundp 'grep-all-files-in-current-directory-and-below)]
- "---"
- ["Grep %_C and C Header Files in Current Directory..."
- (progn
- (require 'compile)
- (let ((grep-command
- (cons (concat grep-command " *.[chCH]"
+ ("%_Packages"
+ ("%_Set Download Site"
+ ("%_Official Releases"
+ :filter ,#'(lambda (&rest junk)
+ (menu-split-long-menu
+ (submenu-generate-accelerator-spec
+ (package-ui-download-menu)))))
+ ("%_Pre-Releases"
+ :filter ,#'(lambda (&rest junk)
+ (menu-split-long-menu
+ (submenu-generate-accelerator-spec
+ (package-ui-pre-release-download-menu)))))
+ ("%_Site Releases"
+ :filter ,#'(lambda (&rest junk)
+ (menu-split-long-menu
+ (submenu-generate-accelerator-spec
+ (package-ui-site-release-download-menu))))))
+ "--:shadowEtchedIn"
+ ["%_Update Package Index" package-get-update-base]
+ ["%_List and Install" pui-list-packages]
+ ["U%_pdate Installed Packages" package-get-update-all]
+ ["%_Help" (Info-goto-node "(xemacs)Packages")])
+ ("%_Internet"
+ ["Read Mail %_1 (VM)..." vm
+:active (fboundp 'vm)]
+ ["Read Mail %_2 (MH)..." (mh-rmail t)
+:active (fboundp 'mh-rmail)]
+ ["Send %_Mail..." compose-mail
+:active (fboundp 'compose-mail)]
+ ["Usenet %_News" gnus
+:active (fboundp 'gnus)]
+ ["Browse the %_Web" w3
+:active (fboundp 'w3)])
+ "---"
+ ("%_Grep"
+:filter
+ ,#'(lambda (menu)
+ (if-boundp 'grep-history
+ (if grep-history
+ (let ((items
+ (submenu-generate-accelerator-spec
+ (mapcar #'(lambda (label-value)
+ (vector (first label-value)
+ (list 'grep
+ (second label-value))))
+ (Menubar-items-truncate-history
+ grep-history 10 50)))))
+ (append menu '("---") items))
+ menu)
+ menu))
+ ["%_Grep..." grep :active (fboundp 'grep)]
+ ["%_Kill Grep" kill-compilation
+:active (and (fboundp 'kill-compilation)
+ (fboundp 'compilation-find-buffer)
+ (let ((buffer (condition-case nil
+ (compilation-find-buffer)
+ (error nil))))
+ (and buffer (get-buffer-process buffer))))]
+ "---"
+ ["Grep %_All Files in Current Directory..."
+ grep-all-files-in-current-directory
+:active (fboundp 'grep-all-files-in-current-directory)]
+ ["Grep All Files in Current Directory %_Recursively..."
+ grep-all-files-in-current-directory-and-below
+:active (fboundp 'grep-all-files-in-current-directory-and-below)]
+ "---"
+ ["Grep %_C and C Header Files in Current Directory..."
+ (progn
+ (require 'compile)
+ (let ((grep-command
+ (cons (concat grep-command " *.[chCH]"
; i wanted to also use *.cc and *.hh.
; see long comment below under Perl.
- )
- (length grep-command))))
- (call-interactively 'grep)))
- :active (fboundp 'grep)]
- ["Grep C Hea%_der Files in Current Directory..."
- (progn
- (require 'compile)
- (let ((grep-command
- (cons (concat grep-command " *.[hH]"
+ )
+ (length grep-command))))
+ (call-interactively 'grep)))
+:active (fboundp 'grep)]
+ ["Grep C Hea%_der Files in Current Directory..."
+ (progn
+ (require 'compile)
+ (let ((grep-command
+ (cons (concat grep-command " *.[hH]"
; i wanted to also use *.hh.
; see long comment below under Perl.
- )
- (length grep-command))))
- (call-interactively 'grep)))
- :active (fboundp 'grep)]
- ["Grep %_E-Lisp Files in Current Directory..."
- (progn
- (require 'compile)
- (let ((grep-command
- (cons (concat grep-command " *.el")
- (length grep-command))))
- (call-interactively 'grep)))
- :active (fboundp 'grep)]
- ["Grep %_Perl Files in Current Directory..."
- (progn
- (require 'compile)
- (let ((grep-command
- (cons (concat grep-command " *.pl"
+ )
+ (length grep-command))))
+ (call-interactively 'grep)))
+:active (fboundp 'grep)]
+ ["Grep %_E-Lisp Files in Current Directory..."
+ (progn
+ (require 'compile)
+ (let ((grep-command
+ (cons (concat grep-command " *.el")
+ (length grep-command))))
+ (call-interactively 'grep)))
+:active (fboundp 'grep)]
+ ["Grep %_Perl Files in Current Directory..."
+ (progn
+ (require 'compile)
+ (let ((grep-command
+ (cons (concat grep-command " *.pl"
; i wanted to use this:
; " *.pl *.pm *.am"
; but grep complains if it can't
@@ -539,601 +538,596 @@ Write your filter like this:
; each separate glob in the directory
; to see if there are any files in
; that glob, and if not, omit it.
- )
- (length grep-command))))
- (call-interactively 'grep)))
- :active (fboundp 'grep)]
- ["Grep %_HTML Files in Current Directory..."
- (progn
- (require 'compile)
- (let ((grep-command
- (cons (concat grep-command " *.*htm*")
- (length grep-command))))
- (call-interactively 'grep)))
- :active (fboundp 'grep)]
- "---"
- ["%_Next Match" next-error
- :active (and (fboundp 'compilation-errors-exist-p)
- (compilation-errors-exist-p))]
- ["Pre%_vious Match" previous-error
- :active (and (fboundp 'compilation-errors-exist-p)
- (compilation-errors-exist-p))]
- ["%_First Match" first-error
- :active (and (fboundp 'compilation-errors-exist-p)
- (compilation-errors-exist-p))]
- ["G%_oto Match" compile-goto-error
- :active (and (fboundp 'compilation-errors-exist-p)
- (compilation-errors-exist-p))]
- "---"
- ["%_Set Grep Command..."
- (progn
- (require 'compile)
- (customize-set-variable
- 'grep-command
- (read-shell-command "Default Grep Command: " grep-command)))
- :active (fboundp 'grep)
- ]
- )
- ("%_Compile"
-:filter
- (lambda (menu)
- (if (or (not (boundp 'compile-history)) (null compile-history))
- menu
- (let ((items
- (submenu-generate-accelerator-spec
- (mapcar #'(lambda (label-value)
- (vector (first label-value)
- (list 'compile (second label-value))))
- (Menubar-items-truncate-history
- compile-history 10 50)))))
- (append menu '("---") items))))
- ["%_Compile..." compile :active (fboundp 'compile)]
- ["%_Repeat Compilation" recompile :active (fboundp 'recompile)]
- ["%_Kill Compilation" kill-compilation
- :active (and (fboundp 'kill-compilation)
- (fboundp 'compilation-find-buffer)
- (let ((buffer (condition-case nil
- (compilation-find-buffer)
- (error nil))))
- (and buffer (get-buffer-process buffer))))]
- "---"
- ["%_Next Error" next-error
- :active (and (fboundp 'compilation-errors-exist-p)
- (compilation-errors-exist-p))]
- ["Pre%_vious Error" previous-error
- :active (and (fboundp 'compilation-errors-exist-p)
- (compilation-errors-exist-p))]
- ["%_First Error" first-error
- :active (and (fboundp 'compilation-errors-exist-p)
- (compilation-errors-exist-p))]
- ["G%_oto Error" compile-goto-error
- :active (and (fboundp 'compilation-errors-exist-p)
- (compilation-errors-exist-p))]
- )
- ("%_Debug"
- ["%_GDB..." gdb
- :active (fboundp 'gdb)]
- ["%_DBX..." dbx
- :active (fboundp 'dbx)])
- ("%_Shell"
- ["%_Shell" shell
- :active (fboundp 'shell)]
- ["S%_hell Command..." shell-command
- :active (fboundp 'shell-command)]
- ["Shell Command on %_Region..." shell-command-on-region
+ )
+ (length grep-command))))
+ (call-interactively 'grep)))
+:active (fboundp 'grep)]
+ ["Grep %_HTML Files in Current Directory..."
+ (progn
+ (require 'compile)
+ (let ((grep-command
+ (cons (concat grep-command " *.*htm*")
+ (length grep-command))))
+ (call-interactively 'grep)))
+:active (fboundp 'grep)]
+ "---"
+ ["%_Next Match" next-error
+:active (and (fboundp 'compilation-errors-exist-p)
+ (compilation-errors-exist-p))]
+ ["Pre%_vious Match" previous-error
+:active (and (fboundp 'compilation-errors-exist-p)
+ (compilation-errors-exist-p))]
+ ["%_First Match" first-error
+:active (and (fboundp 'compilation-errors-exist-p)
+ (compilation-errors-exist-p))]
+ ["G%_oto Match" compile-goto-error
+:active (and (fboundp 'compilation-errors-exist-p)
+ (compilation-errors-exist-p))]
+ "---"
+ ["%_Set Grep Command..."
+ (progn
+ (require 'compile)
+ (customize-set-variable
+ 'grep-command
+ (read-shell-command "Default Grep Command: " grep-command)))
+:active (fboundp 'grep)
+ ]
+ )
+ ("%_Compile"
+:filter
+ ,#'(lambda (menu)
+ (if-boundp 'compile-history
+ (if compile-history
+ (let ((items
+ (submenu-generate-accelerator-spec
+ (mapcar #'(lambda (label-value)
+ (vector (first label-value)
+ (list 'compile
+ (second label-value))))
+ (Menubar-items-truncate-history
+ compile-history 10 50)))))
+ (append menu '("---") items))
+ menu)
+ menu))
+ ["%_Compile..." compile :active (fboundp 'compile)]
+ ["%_Repeat Compilation" recompile :active (fboundp 'recompile)]
+ ["%_Kill Compilation" kill-compilation
+:active (and (fboundp 'kill-compilation)
+ (fboundp 'compilation-find-buffer)
+ (let ((buffer (condition-case nil
+ (compilation-find-buffer)
+ (error nil))))
+ (and buffer (get-buffer-process buffer))))]
+ "---"
+ ["%_Next Error" next-error
+:active (and (fboundp 'compilation-errors-exist-p)
+ (compilation-errors-exist-p))]
+ ["Pre%_vious Error" previous-error
+:active (and (fboundp 'compilation-errors-exist-p)
+ (compilation-errors-exist-p))]
+ ["%_First Error" first-error
+:active (and (fboundp 'compilation-errors-exist-p)
+ (compilation-errors-exist-p))]
+ ["G%_oto Error" compile-goto-error
+:active (and (fboundp 'compilation-errors-exist-p)
+ (compilation-errors-exist-p))]
+ )
+ ("%_Debug"
+ ["%_GDB..." gdb
+:active (fboundp 'gdb)]
+ ["%_DBX..." dbx
+:active (fboundp 'dbx)])
+ ("%_Shell"
+ ["%_Shell" shell
+:active (fboundp 'shell)]
+ ["S%_hell Command..." shell-command
+:active (fboundp 'shell-command)]
+ ["Shell Command on %_Region..." shell-command-on-region
:active (and (fboundp 'shell-command-on-region) (region-exists-p))])
- ("%_Tags"
- ["%_Find Tag..." find-tag]
- ["Find %_Other Window..." find-tag-other-window]
- ["%_Next Tag..." (find-tag nil)]
- ["N%_ext Other Window..." (find-tag-other-window nil)]
- ["Next %_File" next-file]
- "-----"
- ["Tags %_Search..." tags-search]
- ["Tags %_Replace..." tags-query-replace]
- ["%_Continue Search/Replace" tags-loop-continue]
- "-----"
- ["%_Pop stack" pop-tag-mark]
- ["%_Apropos..." tags-apropos]
- "-----"
- ["%_Set Tags Table File..." visit-tags-table]
- )
-
- "----"
-
- ("Ca%_lendar"
- ["%_3-Month Calendar" calendar
- :active (fboundp 'calendar)]
- ["%_Diary" diary
- :active (fboundp 'diary)]
- ["%_Holidays" holidays
- :active (fboundp 'holidays)]
- ;; we're all pagans at heart ...
- ["%_Phases of the Moon" phases-of-moon
- :active (fboundp 'phases-of-moon)]
- ["%_Sunrise/Sunset" sunrise-sunset
- :active (fboundp 'sunrise-sunset)])
-
- ("Ga%_mes"
- ["%_Mine Game" xmine
- :active (fboundp 'xmine)]
- ["%_Tetris" tetris
- :active (fboundp 'tetris)]
- ["%_Sokoban" sokoban
- :active (fboundp 'sokoban)]
- ["Quote from %_Zippy" yow
- :active (fboundp 'yow)]
- ["%_Psychoanalyst" doctor
- :active (fboundp 'doctor)]
- ["Ps%_ychoanalyze Zippy!" psychoanalyze-pinhead
- :active (fboundp 'psychoanalyze-pinhead)]
- ["%_Random Flames" flame
- :active (fboundp 'flame)]
- ["%_Dunnet (Adventure)" dunnet
- :active (fboundp 'dunnet)]
- ["Towers of %_Hanoi" hanoi
- :active (fboundp 'hanoi)]
- ["Game of %_Life" life
- :active (fboundp 'life)]
- ["M%_ultiplication Puzzle" mpuz
- :active (fboundp 'mpuz)])
-
- "----"
+ ("%_Tags"
+ ["%_Find Tag..." find-tag]
+ ["Find %_Other Window..." find-tag-other-window]
+ ["%_Next Tag..." (find-tag nil)]
+ ["N%_ext Other Window..." (find-tag-other-window nil)]
+ ["Next %_File" next-file]
+ "-----"
+ ["Tags %_Search..." tags-search]
+ ["Tags %_Replace..." tags-query-replace]
+ ["%_Continue Search/Replace" tags-loop-continue]
+ "-----"
+ ["%_Pop stack" pop-tag-mark]
+ ["%_Apropos..." tags-apropos]
+ "-----"
+ ["%_Set Tags Table File..." visit-tags-table]
)
+
+ "----"
+
+ ("Ca%_lendar"
+ ["%_3-Month Calendar" calendar
+:active (fboundp 'calendar)]
+ ["%_Diary" diary
+:active (fboundp 'diary)]
+ ["%_Holidays" holidays
+:active (fboundp 'holidays)]
+ ;; we're all pagans at heart ...
+ ["%_Phases of the Moon" phases-of-moon
+:active (fboundp 'phases-of-moon)]
+ ["%_Sunrise/Sunset" sunrise-sunset
+:active (fboundp 'sunrise-sunset)])
+
+ ("Ga%_mes"
+ ["%_Mine Game" xmine
+:active (fboundp 'xmine)]
+ ["%_Tetris" tetris
+:active (fboundp 'tetris)]
+ ["%_Sokoban" sokoban
+:active (fboundp 'sokoban)]
+ ["Quote from %_Zippy" yow
+:active (fboundp 'yow)]
+ ["%_Psychoanalyst" doctor
+:active (fboundp 'doctor)]
+ ["Ps%_ychoanalyze Zippy!" psychoanalyze-pinhead
+:active (fboundp 'psychoanalyze-pinhead)]
+ ["%_Random Flames" flame
+:active (fboundp 'flame)]
+ ["%_Dunnet (Adventure)" dunnet
+:active (fboundp 'dunnet)]
+ ["Towers of %_Hanoi" hanoi
+:active (fboundp 'hanoi)]
+ ["Game of %_Life" life
+:active (fboundp 'life)]
+ ["M%_ultiplication Puzzle" mpuz
+:active (fboundp 'mpuz)])
+
+ "----"
+ )
; ("%_Tools"
; :filter behavior-menu-filter)
("%_Options"
- ("%_Advanced (Customize)"
- ("%_Emacs" :filter (lambda (&rest junk)
- (cdr (custom-menu-create 'emacs))))
- ["%_Group..." customize-group]
- ["%_Variable..." customize-variable]
- ["%_Face..." customize-face]
- ["%_Saved..." customize-saved]
- ["Se%_t..." customize-customized]
- ["%_Apropos..." customize-apropos]
- ["%_Browse..." customize-browse])
- "---"
- ("%_Editing"
- ["This Buffer %_Read Only" (toggle-read-only)
- :style toggle :selected buffer-read-only]
- ["%_Yank/Kill Interact With Clipboard"
- (if (eq interprogram-cut-function 'own-clipboard)
- (progn
- (customize-set-variable 'interprogram-cut-function nil)
- (customize-set-variable 'interprogram-paste-function nil))
- (customize-set-variable 'interprogram-cut-function 'own-clipboard)
- (customize-set-variable 'interprogram-paste-function 'get-clipboard))
- :style toggle
- :selected (eq interprogram-cut-function 'own-clipboard)]
- ["%_Overstrike"
- (progn
- (setq overwrite-mode (if overwrite-mode nil 'overwrite-mode-textual))
- (customize-set-variable 'overwrite-mode overwrite-mode))
- :style toggle :selected overwrite-mode]
- ["%_Abbrev Mode"
- (customize-set-variable 'abbrev-mode
- (not (default-value 'abbrev-mode)))
- :style toggle
- :selected (default-value 'abbrev-mode)]
- ["Active Re%_gions"
- (customize-set-variable 'zmacs-regions (not zmacs-regions))
- :style toggle :selected zmacs-regions]
- "---"
- ["%_Case Sensitive Search"
- (customize-set-variable 'case-fold-search
- (setq case-fold-search (not case-fold-search)))
- :style toggle :selected (not case-fold-search)]
- ["Case %_Matching Replace"
- (customize-set-variable 'case-replace (not case-replace))
- :style toggle :selected case-replace]
- "---"
- ("%_Newline at End of File..."
- ["%_Don't Require"
- (customize-set-variable 'require-final-newline nil)
- :style radio :selected (not require-final-newline)]
- ["%_Require"
- (customize-set-variable 'require-final-newline t)
- :style radio :selected (eq require-final-newline t)]
- ["%_Ask"
- (customize-set-variable 'require-final-newline 'ask)
- :style radio :selected (and require-final-newline
- (not (eq require-final-newline t)))])
- ["Add Newline When Moving Past %_End"
- (customize-set-variable 'next-line-add-newlines
- (not next-line-add-newlines))
- :style toggle :selected next-line-add-newlines])
- ("%_Keyboard and Mouse"
- ["%_Delete Key Deletes Selection"
- (customize-set-variable 'pending-delete-mode (not pending-delete-mode))
- :style toggle
- :selected (and (boundp 'pending-delete-mode) pending-delete-mode)
- :active (boundp 'pending-delete-mode)]
- ["`kill-%_word' Stores in Clipboard"
- (customize-set-variable 'kill-word-into-kill-ring
- (not kill-word-into-kill-ring))
- :style toggle
- :selected kill-word-into-kill-ring]
- ["`kill-%_line' Kills Whole Line at Beg"
- (customize-set-variable 'kill-whole-line (not kill-whole-line))
- :style toggle
- :selected kill-whole-line]
- ["Size for %_Block-Movement Commands..."
- (customize-set-variable 'block-movement-size
- (read-number "Block Movement Size: "
- t block-movement-size))]
- ["%_VI Emulation"
- (progn
- (toggle-viper-mode)
- (customize-set-variable 'viper-mode viper-mode))
- :style toggle :selected (and (boundp 'viper-mode) viper-mode)
- :active (fboundp 'toggle-viper-mode)]
- "----"
- ["S%_hifted Motion Keys Select Region"
- (customize-set-variable 'shifted-motion-keys-select-region
- (not shifted-motion-keys-select-region))
- :style toggle
- :selected shifted-motion-keys-select-region]
- ["%_After Shifted Motion, Unshifted Motion Keys Deselect"
- (customize-set-variable 'unshifted-motion-keys-deselect-region
- (not unshifted-motion-keys-deselect-region))
- :style toggle
- :selected unshifted-motion-keys-deselect-region]
- "----"
- ["%_Set Key..." global-set-key]
- ["%_Unset Key..." global-unset-key]
- "---"
- ["%_Mouse Paste at Text Cursor (not Clicked Location)"
- (customize-set-variable 'mouse-yank-at-point (not mouse-yank-at-point))
- :style toggle :selected mouse-yank-at-point]
- "---"
- ["%_Teach Extended Commands"
- (customize-set-variable 'teach-extended-commands-p
- (not teach-extended-commands-p))
- :style toggle :selected teach-extended-commands-p]
+ ("%_Advanced (Customize)"
+ ("%_Emacs" :filter ,#'(lambda (&rest junk)
+ (cdr (custom-menu-create 'emacs))))
+ ["%_Group..." customize-group]
+ ["%_Variable..." customize-variable]
+ ["%_Face..." customize-face]
+ ["%_Saved..." customize-saved]
+ ["Se%_t..." customize-customized]
+ ["%_Apropos..." customize-apropos]
+ ["%_Browse..." customize-browse])
+ "---"
+ ("%_Editing"
+ ["This Buffer %_Read Only" (toggle-read-only)
+:style toggle :selected buffer-read-only]
+ ["%_Yank/Kill Interact With Clipboard"
+ (if (eq interprogram-cut-function 'own-clipboard)
+ (progn
+ (customize-set-variable 'interprogram-cut-function nil)
+ (customize-set-variable 'interprogram-paste-function nil))
+ (customize-set-variable 'interprogram-cut-function 'own-clipboard)
+ (customize-set-variable 'interprogram-paste-function 'get-clipboard))
+:style toggle
+:selected (eq interprogram-cut-function 'own-clipboard)]
+ ["%_Overstrike"
+ (progn
+ (setq overwrite-mode (if overwrite-mode nil 'overwrite-mode-textual))
+ (customize-set-variable 'overwrite-mode overwrite-mode))
+:style toggle :selected overwrite-mode]
+ ["%_Abbrev Mode"
+ (customize-set-variable 'abbrev-mode
+ (not (default-value 'abbrev-mode)))
+:style toggle
+:selected (default-value 'abbrev-mode)]
+ ["Active Re%_gions"
+ (customize-set-variable 'zmacs-regions (not zmacs-regions))
+:style toggle :selected zmacs-regions]
+ "---"
+ ["%_Case Sensitive Search"
+ (customize-set-variable 'case-fold-search
+ (setq case-fold-search (not case-fold-search)))
+:style toggle :selected (not case-fold-search)]
+ ["Case %_Matching Replace"
+ (customize-set-variable 'case-replace (not case-replace))
+:style toggle :selected case-replace]
+ "---"
+ ("%_Newline at End of File..."
+ ["%_Don't Require"
+ (customize-set-variable 'require-final-newline nil)
+ :style radio :selected (not require-final-newline)]
+ ["%_Require"
+ (customize-set-variable 'require-final-newline t)
+ :style radio :selected (eq require-final-newline t)]
+ ["%_Ask"
+ (customize-set-variable 'require-final-newline 'ask)
+ :style radio :selected (and require-final-newline
+ (not (eq require-final-newline t)))])
+ ["Add Newline When Moving Past %_End"
+ (customize-set-variable 'next-line-add-newlines
+ (not next-line-add-newlines))
+:style toggle :selected next-line-add-newlines])
+ ("%_Keyboard and Mouse"
+ ["%_Delete Key Deletes Selection"
+ (customize-set-variable 'pending-delete-mode (not pending-delete-mode))
+:style toggle
+:selected (and (boundp 'pending-delete-mode) pending-delete-mode)
+:active (boundp 'pending-delete-mode)]
+ ["`kill-%_word' Stores in Clipboard"
+ (customize-set-variable 'kill-word-into-kill-ring
+ (not kill-word-into-kill-ring))
+:style toggle
+:selected kill-word-into-kill-ring]
+ ["`kill-%_line' Kills Whole Line at Beg"
+ (customize-set-variable 'kill-whole-line (not kill-whole-line))
+:style toggle
+:selected kill-whole-line]
+ ["Size for %_Block-Movement Commands..."
+ (customize-set-variable 'block-movement-size
+ (read-number "Block Movement Size: "
+ t block-movement-size))]
+ ["%_VI Emulation"
+ (progn
+ (toggle-viper-mode)
+ (customize-set-variable 'viper-mode viper-mode))
+:style toggle :selected (and (boundp 'viper-mode) viper-mode)
+:active (fboundp 'toggle-viper-mode)]
+ "----"
+ ["S%_hifted Motion Keys Select Region"
+ (customize-set-variable 'shifted-motion-keys-select-region
+ (not shifted-motion-keys-select-region))
+:style toggle
+:selected shifted-motion-keys-select-region]
+ ["%_After Shifted Motion, Unshifted Motion Keys Deselect"
+ (customize-set-variable 'unshifted-motion-keys-deselect-region
+ (not unshifted-motion-keys-deselect-region))
+:style toggle
+:selected unshifted-motion-keys-deselect-region]
+ "----"
+ ["%_Set Key..." global-set-key]
+ ["%_Unset Key..." global-unset-key]
+ "---"
+ ["%_Mouse Paste at Text Cursor (not Clicked Location)"
+ (customize-set-variable 'mouse-yank-at-point (not mouse-yank-at-point))
+:style toggle :selected mouse-yank-at-point]
+ "---"
+ ["%_Teach Extended Commands"
+ (customize-set-variable 'teach-extended-commands-p
+ (not teach-extended-commands-p))
+:style toggle :selected teach-extended-commands-p]
+ )
+ ("%_Printing"
+ ["Set Printer %_Name for Generic Print Support..."
+ (customize-set-variable
+ 'printer-name
+ (read-string "Set printer name: " printer-name))]
+ "---"
+ ["Command-Line %_Switches for `lpr'/`lp'..."
+ ;; better to directly open a customization buffer, since the value
+ ;; must be a list of strings, which is somewhat complex to prompt for.
+ (customize-variable 'lpr-switches)
+ (boundp 'lpr-switches)]
+ ("%_Pretty-Print Paper Size"
+ ["%_Letter"
+ (customize-set-variable 'ps-paper-type 'letter)
+ :style radio
+ :selected (and (boundp 'ps-paper-type) (eq ps-paper-type 'letter))
+ :active (boundp 'ps-paper-type)]
+ ["Lette%_r-Small"
+ (customize-set-variable 'ps-paper-type 'letter-small)
+ :style radio
+ :selected (and (boundp 'ps-paper-type)
+ (eq ps-paper-type 'letter-small))
+ :active (boundp 'ps-paper-type)]
+ ["Le%_gal"
+ (customize-set-variable 'ps-paper-type 'legal)
+ :style radio
+ :selected (and (boundp 'ps-paper-type) (eq ps-paper-type 'legal))
+ :active (boundp 'ps-paper-type)]
+ ["%_Statement"
+ (customize-set-variable 'ps-paper-type 'statement)
+ :style radio
+ :selected (and (boundp 'ps-paper-type) (eq ps-paper-type 'statement))
+ :active (boundp 'ps-paper-type)]
+ ["%_Executive"
+ (customize-set-variable 'ps-paper-type 'executive)
+ :style radio
+ :selected (and (boundp 'ps-paper-type) (eq ps-paper-type 'executive))
+ :active (boundp 'ps-paper-type)]
+ ["%_Tabloid"
+ (customize-set-variable 'ps-paper-type 'tabloid)
+ :style radio
+ :selected (and (boundp 'ps-paper-type) (eq ps-paper-type 'tabloid))
+ :active (boundp 'ps-paper-type)]
+ ["Le%_dger"
+ (customize-set-variable 'ps-paper-type 'ledger)
+ :style radio
+ :selected (and (boundp 'ps-paper-type) (eq ps-paper-type 'ledger))
+ :active (boundp 'ps-paper-type)]
+ ["A%_3"
+ (customize-set-variable 'ps-paper-type 'a3)
+ :style radio
+ :selected (and (boundp 'ps-paper-type) (eq ps-paper-type 'a3))
+ :active (boundp 'ps-paper-type)]
+ ["%_A4"
+ (customize-set-variable 'ps-paper-type 'a4)
+ :style radio
+ :selected (and (boundp 'ps-paper-type) (eq ps-paper-type 'a4))
+ :active (boundp 'ps-paper-type)]
+ ["A4s%_mall"
+ (customize-set-variable 'ps-paper-type 'a4small)
+ :style radio
+ :selected (and (boundp 'ps-paper-type) (eq ps-paper-type 'a4small))
+ :active (boundp 'ps-paper-type)]
+ ["B%_4"
+ (customize-set-variable 'ps-paper-type 'b4)
+ :style radio
+ :selected (and (boundp 'ps-paper-type) (eq ps-paper-type 'b4))
+ :active (boundp 'ps-paper-type)]
+ ["%_B5"
+ (customize-set-variable 'ps-paper-type 'b5)
+ :style radio
+ :selected (and (boundp 'ps-paper-type) (eq ps-paper-type 'b5))
+ :active (boundp 'ps-paper-type)]
)
- ("%_Printing"
- ["Set Printer %_Name for Generic Print Support..."
- (customize-set-variable
- 'printer-name
- (read-string "Set printer name: " printer-name))]
- "---"
- ["Command-Line %_Switches for `lpr'/`lp'..."
- ;; better to directly open a customization buffer, since the value
- ;; must be a list of strings, which is somewhat complex to prompt for.
- (customize-variable 'lpr-switches)
- (boundp 'lpr-switches)]
- ("%_Pretty-Print Paper Size"
- ["%_Letter"
- (customize-set-variable 'ps-paper-type 'letter)
- :style radio
- :selected (and (boundp 'ps-paper-type) (eq ps-paper-type 'letter))
- :active (boundp 'ps-paper-type)]
- ["Lette%_r-Small"
- (customize-set-variable 'ps-paper-type 'letter-small)
- :style radio
- :selected (and (boundp 'ps-paper-type)
- (eq ps-paper-type 'letter-small))
- :active (boundp 'ps-paper-type)]
- ["Le%_gal"
- (customize-set-variable 'ps-paper-type 'legal)
- :style radio
- :selected (and (boundp 'ps-paper-type) (eq ps-paper-type 'legal))
- :active (boundp 'ps-paper-type)]
- ["%_Statement"
- (customize-set-variable 'ps-paper-type 'statement)
- :style radio
- :selected (and (boundp 'ps-paper-type) (eq ps-paper-type 'statement))
- :active (boundp 'ps-paper-type)]
- ["%_Executive"
- (customize-set-variable 'ps-paper-type 'executive)
- :style radio
- :selected (and (boundp 'ps-paper-type) (eq ps-paper-type 'executive))
- :active (boundp 'ps-paper-type)]
- ["%_Tabloid"
- (customize-set-variable 'ps-paper-type 'tabloid)
- :style radio
- :selected (and (boundp 'ps-paper-type) (eq ps-paper-type 'tabloid))
- :active (boundp 'ps-paper-type)]
- ["Le%_dger"
- (customize-set-variable 'ps-paper-type 'ledger)
- :style radio
- :selected (and (boundp 'ps-paper-type) (eq ps-paper-type 'ledger))
- :active (boundp 'ps-paper-type)]
- ["A%_3"
- (customize-set-variable 'ps-paper-type 'a3)
- :style radio
- :selected (and (boundp 'ps-paper-type) (eq ps-paper-type 'a3))
- :active (boundp 'ps-paper-type)]
- ["%_A4"
- (customize-set-variable 'ps-paper-type 'a4)
- :style radio
- :selected (and (boundp 'ps-paper-type) (eq ps-paper-type 'a4))
- :active (boundp 'ps-paper-type)]
- ["A4s%_mall"
- (customize-set-variable 'ps-paper-type 'a4small)
- :style radio
- :selected (and (boundp 'ps-paper-type) (eq ps-paper-type 'a4small))
- :active (boundp 'ps-paper-type)]
- ["B%_4"
- (customize-set-variable 'ps-paper-type 'b4)
- :style radio
- :selected (and (boundp 'ps-paper-type) (eq ps-paper-type 'b4))
- :active (boundp 'ps-paper-type)]
- ["%_B5"
- (customize-set-variable 'ps-paper-type 'b5)
- :style radio
- :selected (and (boundp 'ps-paper-type) (eq ps-paper-type 'b5))
- :active (boundp 'ps-paper-type)]
- )
- ["%_Color Printing"
- (cond (ps-print-color-p
- (customize-set-variable 'ps-print-color-p nil)
- ;; I'm wondering whether all this muck is useful.
- (and (boundp 'original-face-background)
- original-face-background
- (set-face-background 'default original-face-background)))
- (t
- (customize-set-variable 'ps-print-color-p t)
- (setq original-face-background
- (face-background-instance 'default))
- (set-face-background 'default "white")))
- :style toggle
- :selected (and (boundp 'ps-print-color-p) ps-print-color-p)
- :active (boundp 'ps-print-color-p)])
- ("%_Internet"
- ("%_Compose Mail With"
- ["VM mail package"
- (customize-set-variable 'mail-user-agent 'vm-user-agent)
- :style radio
- :selected (eq mail-user-agent 'vm-user-agent)
- :active (get 'vm-user-agent 'composefunc)]
- ["Bare-bones Emacs Mailer"
- (customize-set-variable 'mail-user-agent 'sendmail-user-agent)
- :style radio
- :selected (eq mail-user-agent 'sendmail-user-agent)]
- ["MH"
- (customize-set-variable 'mail-user-agent 'mh-e-user-agent)
- :style radio
- :selected (eq mail-user-agent 'mh-e-user-agent)
- :active (get 'mh-e-user-agent 'composefunc)]
- ["GNUS"
- (customize-set-variable 'mail-user-agent 'message-user-agent)
- :style radio
- :selected (eq mail-user-agent 'message-user-agent)
- :active (get 'message-user-agent 'composefunc)]
- )
- ["Set My %_Email Address..."
- (customize-set-variable
- 'user-mail-address
- (read-string "Set email address: " user-mail-address))]
- ["Set %_Machine Email Name..."
- (customize-set-variable
- 'mail-host-address
- (read-string "Set machine email name: " mail-host-address))]
- ["Set %_SMTP Server..."
- (progn
- (require 'smtpmail)
- (customize-set-variable
- 'smtpmail-smtp-server
- (read-string "Set SMTP server: " smtpmail-smtp-server)))
- :active (and (boundp 'send-mail-function)
- (eq send-mail-function 'smtpmail-send-it))]
- ["SMTP %_Debug Info"
- (progn
- (require 'smtpmail)
- (customize-set-variable 'smtpmail-debug-info
- (not smtpmail-debug-info)))
- :style toggle
- :selected (and (boundp 'smtpmail-debug-info) smtpmail-debug-info)
- :active (and (boundp 'send-mail-function)
- (eq send-mail-function 'smtpmail-send-it))])
- ("%_Troubleshooting"
- ["%_Debug on Error [not saved]"
- (setq debug-on-error (not debug-on-error))
- :style toggle :selected debug-on-error]
- ["Debug on %_Quit [not saved]"
- (setq debug-on-quit (not debug-on-quit))
- :style toggle :selected debug-on-quit]
- ["Debug on S%_ignal [not saved]"
- (setq debug-on-signal (not debug-on-signal))
- :style toggle :selected debug-on-signal]
- ["%_Stack Trace on Error [not saved]"
- (setq stack-trace-on-error (not stack-trace-on-error))
- :style toggle :selected stack-trace-on-error]
- ["Stack Trace on Si%_gnal [not saved]"
- (setq stack-trace-on-signal (not stack-trace-on-signal))
- :style toggle :selected stack-trace-on-signal]
+ ["%_Color Printing"
+ (cond (ps-print-color-p
+ (customize-set-variable 'ps-print-color-p nil)
+ ;; I'm wondering whether all this muck is useful.
+ (and (boundp 'original-face-background)
+ original-face-background
+ (set-face-background 'default original-face-background)))
+ (t
+ (customize-set-variable 'ps-print-color-p t)
+ (setq original-face-background
+ (face-background-instance 'default))
+ (set-face-background 'default "white")))
+:style toggle
+:selected (and (boundp 'ps-print-color-p) ps-print-color-p)
+:active (boundp 'ps-print-color-p)])
+ ("%_Internet"
+ ("%_Compose Mail With"
+ ["VM mail package"
+ (customize-set-variable 'mail-user-agent 'vm-user-agent)
+ :style radio
+ :selected (eq mail-user-agent 'vm-user-agent)
+ :active (get 'vm-user-agent 'composefunc)]
+ ["Bare-bones Emacs Mailer"
+ (customize-set-variable 'mail-user-agent 'sendmail-user-agent)
+ :style radio
+ :selected (eq mail-user-agent 'sendmail-user-agent)]
+ ["MH"
+ (customize-set-variable 'mail-user-agent 'mh-e-user-agent)
+ :style radio
+ :selected (eq mail-user-agent 'mh-e-user-agent)
+ :active (get 'mh-e-user-agent 'composefunc)]
+ ["GNUS"
+ (customize-set-variable 'mail-user-agent 'message-user-agent)
+ :style radio
+ :selected (eq mail-user-agent 'message-user-agent)
+ :active (get 'message-user-agent 'composefunc)]
)
- ("Encodin%_g"
- ["Automatic %_EOL Detection"
- (customize-set-variable 'eol-detection-enabled-p
- (not eol-detection-enabled-p))
- :style toggle
- :selected eol-detection-enabled-p
- :included (not (memq system-type '(windows-nt cygwin32)))]
- ("Set Coding System of %_Buffer File"
- :filter
- (lambda (menu)
- (coding-system-menu-filter
- (lambda (entry)
- (set-buffer-file-coding-system entry))
- (lambda (entry) t)
- ))
- )
- ;; not implemented yet
- ("Set Coding System of %_Terminal"
- :filter
- (lambda (menu)
- (coding-system-menu-filter
- (lambda (entry)
- (set-terminal-coding-system entry))
- (lambda (entry) nil)
- ))
- )
- ;; not implemented yet
- ("Set Coding System of %_Keyboard"
- :filter
- (lambda (menu)
- (coding-system-menu-filter
- (lambda (entry)
- (set-keyboard-coding-system entry))
- (lambda (entry) nil)
- ))
- )
- ("Set Coding System of %_Process"
- :filter
- (lambda (menu)
- (coding-system-menu-filter
- (lambda (entry)
- (set-buffer-process-coding-system entry))
- (lambda (entry) (get-buffer-process (current-buffer)))
- ))
- )
+ ["Set My %_Email Address..."
+ (customize-set-variable
+ 'user-mail-address
+ (read-string "Set email address: " user-mail-address))]
+ ["Set %_Machine Email Name..."
+ (customize-set-variable
+ 'mail-host-address
+ (read-string "Set machine email name: " mail-host-address))]
+ ["Set %_SMTP Server..."
+ (progn
+ (require 'smtpmail)
+ (customize-set-variable
+ 'smtpmail-smtp-server
+ (read-string "Set SMTP server: " smtpmail-smtp-server)))
+:active (and (boundp 'send-mail-function)
+ (eq send-mail-function 'smtpmail-send-it))]
+ ["SMTP %_Debug Info"
+ (progn
+ (require 'smtpmail)
+ (customize-set-variable 'smtpmail-debug-info
+ (not smtpmail-debug-info)))
+:style toggle
+:selected (and (boundp 'smtpmail-debug-info) smtpmail-debug-info)
+:active (and (boundp 'send-mail-function)
+ (eq send-mail-function 'smtpmail-send-it))])
+ ("%_Troubleshooting"
+ ["%_Debug on Error [not saved]"
+ (setq debug-on-error (not debug-on-error))
+:style toggle :selected debug-on-error]
+ ["Debug on %_Quit [not saved]"
+ (setq debug-on-quit (not debug-on-quit))
+:style toggle :selected debug-on-quit]
+ ["Debug on S%_ignal [not saved]"
+ (setq debug-on-signal (not debug-on-signal))
+:style toggle :selected debug-on-signal]
+ ["%_Stack Trace on Error [not saved]"
+ (setq stack-trace-on-error (not stack-trace-on-error))
+:style toggle :selected stack-trace-on-error]
+ ["Stack Trace on Si%_gnal [not saved]"
+ (setq stack-trace-on-signal (not stack-trace-on-signal))
+:style toggle :selected stack-trace-on-signal]
+ )
+ ("Encodin%_g"
+ ["Automatic %_EOL Detection"
+ (customize-set-variable 'eol-detection-enabled-p
+ (not eol-detection-enabled-p))
+:style toggle
+:selected eol-detection-enabled-p
+:included (not (memq system-type '(windows-nt cygwin32)))]
+ ("Set Coding System of %_Buffer File"
+:filter
+ ,#'(lambda (menu)
+ (coding-system-menu-filter
+ (lambda (entry)
+ (set-buffer-file-coding-system entry))
+ (lambda (entry) t))))
+ ;; not implemented yet
+ ("Set Coding System of %_Terminal"
+:filter
+ ,#'(lambda (menu)
+ (coding-system-menu-filter
+ (lambda (entry)
+ (set-terminal-coding-system entry))
+ (lambda (entry) nil)))
)
- ,@(when (featurep 'mule)
- '(("Internationa%_l"
- ("Set %_Language Environment"
- :filter
- (lambda (menu)
- (menu-split-long-menu-and-sort
- (mapcar #'(lambda (entry)
- `[ ,(car entry)
- (set-language-environment ',(car entry))
- :style radio
- :selected
- ,(equal (car entry)
- current-language-environment)])
- language-info-alist)
- )))
- ["%_Toggle Input Method" toggle-input-method]
- ["Select %_Input Method" set-input-method]
- )))
- "-----"
- ("%_Display"
- ,@(if (featurep 'scrollbar)
- '(["%_Scrollbars"
- (customize-set-variable 'scrollbars-visible-p
- (not scrollbars-visible-p))
- :style toggle
- :selected scrollbars-visible-p]))
- ["%_Wrap Long Lines"
- (progn;; becomes buffer-local
- (setq truncate-lines (not truncate-lines))
- (customize-set-variable 'truncate-lines truncate-lines))
- :style toggle
- :selected (not truncate-lines)]
- "----"
- ["%_3D Modeline"
- (customize-set-variable 'modeline-3d-p
- (not modeline-3d-p))
- :style toggle
- :selected modeline-3d-p]
- ("Modeline %_Horizontal Scrolling"
- ["%_None"
- (customize-set-variable 'modeline-scrolling-method nil)
- :style radio
- :selected (not modeline-scrolling-method)]
- ["As %_Text"
- (customize-set-variable 'modeline-scrolling-method t)
- :style radio
- :selected (eq modeline-scrolling-method t)]
- ["As %_Scrollbar"
- (customize-set-variable 'modeline-scrolling-method 'scrollbar)
- :style radio
- :selected (eq modeline-scrolling-method 'scrollbar)]
- )
- ,@(if (featurep 'toolbar)
- '("---"
- ["%_Toolbars Visible"
- (customize-set-variable 'toolbar-visible-p
- (not toolbar-visible-p))
- :style toggle
- :selected toolbar-visible-p]
- ["Toolbars Ca%_ptioned"
- (customize-set-variable 'toolbar-captioned-p
- (not toolbar-captioned-p))
- :style toggle
+ ;; not implemented yet
+ ("Set Coding System of %_Keyboard"
+:filter
+ ,#'(lambda (menu)
+ (coding-system-menu-filter
+ (lambda (entry)
+ (set-keyboard-coding-system entry))
+ (lambda (entry) nil))))
+ ("Set Coding System of %_Process"
+:filter
+ ,#'(lambda (menu)
+ (coding-system-menu-filter
+ (lambda (entry)
+ (set-buffer-process-coding-system entry entry))
+ (lambda (entry) (get-buffer-process (current-buffer)))))))
+ ,@(when (featurep 'mule)
+ `(("Internationa%_l"
+ ("Set %_Language Environment"
+ :filter
+ ,#'(lambda (menu)
+ (menu-split-long-menu-and-sort
+ (mapcar #'(lambda (entry)
+ `[ ,(car entry)
+ (set-language-environment ',(car entry))
+ :style radio
+ :selected
+ ,(equal (car entry)
+ current-language-environment)])
+ language-info-alist)
+ )))
+ ["%_Toggle Input Method" toggle-input-method]
+ ["Select %_Input Method" set-input-method]
+ )))
+ "-----"
+ ("%_Display"
+ ,@(if (featurep 'scrollbar)
+ '(["%_Scrollbars"
+ (customize-set-variable 'scrollbars-visible-p
+ (not scrollbars-visible-p))
+ :style toggle
+ :selected scrollbars-visible-p]))
+ ["%_Wrap Long Lines"
+ (progn ;; becomes buffer-local
+ (setq truncate-lines (not truncate-lines))
+ (customize-set-variable 'truncate-lines truncate-lines))
+:style toggle
+:selected (not truncate-lines)]
+ "----"
+ ["%_3D Modeline"
+ (customize-set-variable 'modeline-3d-p
+ (not modeline-3d-p))
+:style toggle
+:selected modeline-3d-p]
+ ("Modeline %_Horizontal Scrolling"
+ ["%_None"
+ (customize-set-variable 'modeline-scrolling-method nil)
+ :style radio
+ :selected (not modeline-scrolling-method)]
+ ["As %_Text"
+ (customize-set-variable 'modeline-scrolling-method t)
+ :style radio
+ :selected (eq modeline-scrolling-method t)]
+ ["As %_Scrollbar"
+ (customize-set-variable 'modeline-scrolling-method 'scrollbar)
+ :style radio
+ :selected (eq modeline-scrolling-method 'scrollbar)]
+ )
+ ,@(if (featurep 'toolbar)
+ '("---"
+ ["%_Toolbars Visible"
+ (customize-set-variable 'toolbar-visible-p
+ (not toolbar-visible-p))
+ :style toggle
+ :selected toolbar-visible-p]
+ ["Toolbars Ca%_ptioned"
+ (customize-set-variable 'toolbar-captioned-p
+ (not toolbar-captioned-p))
+ :style toggle
+ :active toolbar-visible-p
+ :selected toolbar-captioned-p]
+ ("Default Toolba%_r Location"
+ ["%_Top"
+ (customize-set-variable 'default-toolbar-position 'top)
+ :style radio
:active toolbar-visible-p
- :selected toolbar-captioned-p]
- ("Default Toolba%_r Location"
- ["%_Top"
- (customize-set-variable 'default-toolbar-position 'top)
- :style radio
- :active toolbar-visible-p
- :selected (eq default-toolbar-position 'top)]
- ["%_Bottom"
- (customize-set-variable 'default-toolbar-position 'bottom)
- :style radio
- :active toolbar-visible-p
- :selected (eq default-toolbar-position 'bottom)]
- ["%_Left"
- (customize-set-variable 'default-toolbar-position 'left)
- :style radio
- :active toolbar-visible-p
- :selected (eq default-toolbar-position 'left)]
- ["%_Right"
- (customize-set-variable 'default-toolbar-position 'right)
- :style radio
- :active toolbar-visible-p
- :selected (eq default-toolbar-position 'right)]
- )
- ))
- ,@(if (featurep 'gutter)
- '("---"
- ["B%_uffers Tab Visible"
- (customize-set-variable 'gutter-buffers-tab-visible-p
- (not gutter-buffers-tab-visible-p))
- :style toggle
- :selected gutter-buffers-tab-visible-p]
- ("Default %_Gutter Location"
- ["%_Top"
- (customize-set-variable 'default-gutter-position 'top)
- :style radio
- :selected (eq default-gutter-position 'top)]
- ["%_Bottom"
- (customize-set-variable 'default-gutter-position 'bottom)
- :style radio
- :selected (eq default-gutter-position 'bottom)]
- ["%_Left"
- (customize-set-variable 'default-gutter-position 'left)
- :style radio
- :selected (eq default-gutter-position 'left)]
- ["%_Right"
- (customize-set-variable 'default-gutter-position 'right)
- :style radio
- :selected (eq default-gutter-position 'right)]
- )
- ))
- "-----"
- ["%_Blinking Cursor"
- (customize-set-variable 'blink-cursor-mode (not blink-cursor-mode))
- :style toggle
- :selected (and (boundp 'blink-cursor-mode) blink-cursor-mode)
- :active (boundp 'blink-cursor-mode)]
- ["Bl%_ock Cursor"
- (progn
- (customize-set-variable 'bar-cursor nil)
- (force-cursor-redisplay))
- :style radio
- :selected (null bar-cursor)]
- ["Bar Cursor (%_1 Pixel)"
- (progn
- (customize-set-variable 'bar-cursor t)
- (force-cursor-redisplay))
- :style radio
- :selected (eq bar-cursor t)]
- ["Bar Cursor (%_2 Pixels)"
- (progn
- (customize-set-variable 'bar-cursor 2)
- (force-cursor-redisplay))
- :style radio
- :selected (and bar-cursor (not (eq bar-cursor t)))]
- "----"
- ("Pa%_ren Highlighting"
+ :selected (eq default-toolbar-position 'top)]
+ ["%_Bottom"
+ (customize-set-variable 'default-toolbar-position 'bottom)
+ :style radio
+ :active toolbar-visible-p
+ :selected (eq default-toolbar-position 'bottom)]
+ ["%_Left"
+ (customize-set-variable 'default-toolbar-position 'left)
+ :style radio
+ :active toolbar-visible-p
+ :selected (eq default-toolbar-position 'left)]
+ ["%_Right"
+ (customize-set-variable 'default-toolbar-position 'right)
+ :style radio
+ :active toolbar-visible-p
+ :selected (eq default-toolbar-position 'right)]
+ )
+ ))
+ ,@(if (featurep 'gutter)
+ '("---"
+ ["B%_uffers Tab Visible"
+ (customize-set-variable 'gutter-buffers-tab-visible-p
+ (not gutter-buffers-tab-visible-p))
+ :style toggle
+ :selected gutter-buffers-tab-visible-p]
+ ("Default %_Gutter Location"
+ ["%_Top"
+ (customize-set-variable 'default-gutter-position 'top)
+ :style radio
+ :selected (eq default-gutter-position 'top)]
+ ["%_Bottom"
+ (customize-set-variable 'default-gutter-position 'bottom)
+ :style radio
+ :selected (eq default-gutter-position 'bottom)]
+ ["%_Left"
+ (customize-set-variable 'default-gutter-position 'left)
+ :style radio
+ :selected (eq default-gutter-position 'left)]
+ ["%_Right"
+ (customize-set-variable 'default-gutter-position 'right)
+ :style radio
+ :selected (eq default-gutter-position 'right)]
+ )
+ ))
+ "-----"
+ ["%_Blinking Cursor"
+ (customize-set-variable 'blink-cursor-mode (not blink-cursor-mode))
+:style toggle
+:selected (and (boundp 'blink-cursor-mode) blink-cursor-mode)
+:active (boundp 'blink-cursor-mode)]
+ ["Bl%_ock Cursor"
+ (progn
+ (customize-set-variable 'bar-cursor nil)
+ (force-cursor-redisplay))
+:style radio
+:selected (null bar-cursor)]
+ ["Bar Cursor (%_1 Pixel)"
+ (progn
+ (customize-set-variable 'bar-cursor t)
+ (force-cursor-redisplay))
+:style radio
+:selected (eq bar-cursor t)]
+ ["Bar Cursor (%_2 Pixels)"
+ (progn
+ (customize-set-variable 'bar-cursor 2)
+ (force-cursor-redisplay))
+:style radio
+:selected (and bar-cursor (not (eq bar-cursor t)))]
+ "----"
+ ("Pa%_ren Highlighting"
["%_None"
(customize-set-variable 'paren-mode nil)
:style radio
@@ -1160,418 +1154,421 @@ Write your filter like this:
;; :selected (and (boundp 'paren-mode) (eq paren-mode 'nested))
;; :active (boundp 'paren-mode)]
)
- "------"
- ["%_Line Numbers"
+ "------"
+ ["%_Line Numbers"
+ (progn
+ (customize-set-variable 'line-number-mode (not line-number-mode))
+ (redraw-modeline))
+:style toggle :selected line-number-mode]
+ ["%_Column Numbers"
+ (progn
+ (customize-set-variable 'column-number-mode
+ (not column-number-mode))
+ (redraw-modeline))
+:style toggle :selected column-number-mode]
+
+ ("\"Other %_Window\" Location"
+ ["%_Always in Same Frame"
+ (customize-set-variable
+ 'get-frame-for-buffer-default-instance-limit nil)
+ :style radio
+ :selected (null get-frame-for-buffer-default-instance-limit)]
+ ["Other Frame (%_2 Frames Max)"
+ (customize-set-variable 'get-frame-for-buffer-default-instance-limit
+ 2)
+ :style radio
+ :selected (eq 2 get-frame-for-buffer-default-instance-limit)]
+ ["Other Frame (%_3 Frames Max)"
+ (customize-set-variable 'get-frame-for-buffer-default-instance-limit
+ 3)
+ :style radio
+ :selected (eq 3 get-frame-for-buffer-default-instance-limit)]
+ ["Other Frame (%_4 Frames Max)"
+ (customize-set-variable 'get-frame-for-buffer-default-instance-limit
+ 4)
+ :style radio
+ :selected (eq 4 get-frame-for-buffer-default-instance-limit)]
+ ["Other Frame (%_5 Frames Max)"
+ (customize-set-variable 'get-frame-for-buffer-default-instance-limit
+ 5)
+ :style radio
+ :selected (eq 5 get-frame-for-buffer-default-instance-limit)]
+ ["Always Create %_New Frame"
+ (customize-set-variable 'get-frame-for-buffer-default-instance-limit
+ 0)
+ :style radio
+ :selected (eq 0 get-frame-for-buffer-default-instance-limit)]
+ "-----"
+ ["%_Temp Buffers Always in Same Frame"
+ (customize-set-variable 'temp-buffer-show-function
+ 'show-temp-buffer-in-current-frame)
+ :style radio
+ :selected (eq temp-buffer-show-function
+ 'show-temp-buffer-in-current-frame)]
+ ["Temp Buffers %_Like Other Buffers"
+ (customize-set-variable 'temp-buffer-show-function nil)
+ :style radio
+ :selected (null temp-buffer-show-function)]
+ "-----"
+ ["%_Make Current Frame Gnuserv Target"
+ (customize-set-variable 'gnuserv-frame (if (eq gnuserv-frame t) nil
+ t))
+ :style toggle
+ :selected (and (boundp 'gnuserv-frame) (eq gnuserv-frame t))
+ :active (boundp 'gnuserv-frame)]
+ )
+ )
+ ("%_Menubars"
+ ["%_Frame-Local Font Menu"
+ (customize-set-variable 'font-menu-this-frame-only-p
+ (not font-menu-this-frame-only-p))
+:style toggle
+:selected (and (boundp 'font-menu-this-frame-only-p)
+ font-menu-this-frame-only-p)]
+ ["%_Alt/Meta Selects Menu Items"
+ (if (eq menu-accelerator-enabled 'menu-force)
+ (customize-set-variable 'menu-accelerator-enabled nil)
+ (customize-set-variable 'menu-accelerator-enabled 'menu-force))
+:style toggle
+:selected (eq menu-accelerator-enabled 'menu-force)]
+ "----"
+ ["Buffers Menu %_Length..."
+ (customize-set-variable
+ 'buffers-menu-max-size
+ ;; would it be better to open a customization buffer ?
+ (let ((val
+ (read-number
+ "Enter number of buffers to display (or 0 for unlimited): ")))
+ (if (eq val 0) nil val)))]
+ ["%_Multi-Operation Buffers Sub-Menus"
+ (customize-set-variable 'complex-buffers-menu-p
+ (not complex-buffers-menu-p))
+:style toggle
+:selected complex-buffers-menu-p]
+ ["S%_ubmenus for Buffer Groups"
+ (customize-set-variable 'buffers-menu-submenus-for-groups-p
+ (not buffers-menu-submenus-for-groups-p))
+:style toggle
+:selected buffers-menu-submenus-for-groups-p]
+ ["%_Verbose Buffer Menu Entries"
+ (if (eq buffers-menu-format-buffer-line-function
+ 'slow-format-buffers-menu-line)
+ (customize-set-variable 'buffers-menu-format-buffer-line-function
+ 'format-buffers-menu-line)
+ (customize-set-variable 'buffers-menu-format-buffer-line-function
+ 'slow-format-buffers-menu-line))
+:style toggle
+:selected (eq buffers-menu-format-buffer-line-function
+ 'slow-format-buffers-menu-line)]
+ ("Buffers Menu %_Sorting"
+ ["%_Most Recently Used"
(progn
- (customize-set-variable 'line-number-mode (not line-number-mode))
- (redraw-modeline))
- :style toggle :selected line-number-mode]
- ["%_Column Numbers"
+ (customize-set-variable 'buffers-menu-sort-function nil)
+ (customize-set-variable 'buffers-menu-grouping-function nil))
+ :style radio
+ :selected (null buffers-menu-sort-function)]
+ ["%_Alphabetically"
(progn
- (customize-set-variable 'column-number-mode
- (not column-number-mode))
- (redraw-modeline))
- :style toggle :selected column-number-mode]
-
- ("\"Other %_Window\" Location"
- ["%_Always in Same Frame"
- (customize-set-variable
- 'get-frame-for-buffer-default-instance-limit nil)
- :style radio
- :selected (null get-frame-for-buffer-default-instance-limit)]
- ["Other Frame (%_2 Frames Max)"
- (customize-set-variable 'get-frame-for-buffer-default-instance-limit
- 2)
- :style radio
- :selected (eq 2 get-frame-for-buffer-default-instance-limit)]
- ["Other Frame (%_3 Frames Max)"
- (customize-set-variable 'get-frame-for-buffer-default-instance-limit
- 3)
- :style radio
- :selected (eq 3 get-frame-for-buffer-default-instance-limit)]
- ["Other Frame (%_4 Frames Max)"
- (customize-set-variable 'get-frame-for-buffer-default-instance-limit
- 4)
- :style radio
- :selected (eq 4 get-frame-for-buffer-default-instance-limit)]
- ["Other Frame (%_5 Frames Max)"
- (customize-set-variable 'get-frame-for-buffer-default-instance-limit
- 5)
- :style radio
- :selected (eq 5 get-frame-for-buffer-default-instance-limit)]
- ["Always Create %_New Frame"
- (customize-set-variable 'get-frame-for-buffer-default-instance-limit
- 0)
- :style radio
- :selected (eq 0 get-frame-for-buffer-default-instance-limit)]
- "-----"
- ["%_Temp Buffers Always in Same Frame"
- (customize-set-variable 'temp-buffer-show-function
- 'show-temp-buffer-in-current-frame)
- :style radio
- :selected (eq temp-buffer-show-function
- 'show-temp-buffer-in-current-frame)]
- ["Temp Buffers %_Like Other Buffers"
- (customize-set-variable 'temp-buffer-show-function nil)
- :style radio
- :selected (null temp-buffer-show-function)]
- "-----"
- ["%_Make Current Frame Gnuserv Target"
- (customize-set-variable 'gnuserv-frame (if (eq gnuserv-frame t) nil
- t))
- :style toggle
- :selected (and (boundp 'gnuserv-frame) (eq gnuserv-frame t))
- :active (boundp 'gnuserv-frame)]
- )
- )
- ("%_Menubars"
- ["%_Frame-Local Font Menu"
- (customize-set-variable 'font-menu-this-frame-only-p
- (not font-menu-this-frame-only-p))
- :style toggle
- :selected (and (boundp 'font-menu-this-frame-only-p)
- font-menu-this-frame-only-p)]
- ["%_Alt/Meta Selects Menu Items"
- (if (eq menu-accelerator-enabled 'menu-force)
- (customize-set-variable 'menu-accelerator-enabled nil)
- (customize-set-variable 'menu-accelerator-enabled 'menu-force))
- :style toggle
- :selected (eq menu-accelerator-enabled 'menu-force)]
- "----"
- ["Buffers Menu %_Length..."
- (customize-set-variable
- 'buffers-menu-max-size
- ;; would it be better to open a customization buffer ?
- (let ((val
- (read-number
- "Enter number of buffers to display (or 0 for unlimited): ")))
- (if (eq val 0) nil val)))]
- ["%_Multi-Operation Buffers Sub-Menus"
- (customize-set-variable 'complex-buffers-menu-p
- (not complex-buffers-menu-p))
- :style toggle
- :selected complex-buffers-menu-p]
- ["S%_ubmenus for Buffer Groups"
- (customize-set-variable 'buffers-menu-submenus-for-groups-p
- (not buffers-menu-submenus-for-groups-p))
- :style toggle
- :selected buffers-menu-submenus-for-groups-p]
- ["%_Verbose Buffer Menu Entries"
- (if (eq buffers-menu-format-buffer-line-function
- 'slow-format-buffers-menu-line)
- (customize-set-variable 'buffers-menu-format-buffer-line-function
- 'format-buffers-menu-line)
- (customize-set-variable 'buffers-menu-format-buffer-line-function
- 'slow-format-buffers-menu-line))
- :style toggle
- :selected (eq buffers-menu-format-buffer-line-function
- 'slow-format-buffers-menu-line)]
- ("Buffers Menu %_Sorting"
- ["%_Most Recently Used"
- (progn
- (customize-set-variable 'buffers-menu-sort-function nil)
- (customize-set-variable 'buffers-menu-grouping-function nil))
- :style radio
- :selected (null buffers-menu-sort-function)]
- ["%_Alphabetically"
- (progn
- (customize-set-variable 'buffers-menu-sort-function
- 'sort-buffers-menu-alphabetically)
- (customize-set-variable 'buffers-menu-grouping-function nil))
- :style radio
- :selected (eq 'sort-buffers-menu-alphabetically
- buffers-menu-sort-function)]
- ["%_By Major Mode, Then Alphabetically"
- (progn
- (customize-set-variable
- 'buffers-menu-sort-function
- 'sort-buffers-menu-by-mode-then-alphabetically)
- (customize-set-variable
- 'buffers-menu-grouping-function
- 'group-buffers-menu-by-mode-then-alphabetically))
- :style radio
- :selected (eq 'sort-buffers-menu-by-mode-then-alphabetically
- buffers-menu-sort-function)])
- "---"
- ["%_Ignore Scaled Fonts"
- (customize-set-variable 'font-menu-ignore-scaled-fonts
- (not font-menu-ignore-scaled-fonts))
- :style toggle
- :selected (and (boundp 'font-menu-ignore-scaled-fonts)
- font-menu-ignore-scaled-fonts)]
- )
- ("S%_yntax Highlighting"
- ["%_In This Buffer"
- (progn;; becomes buffer local
- (font-lock-mode)
- (customize-set-variable 'font-lock-mode font-lock-mode))
- :style toggle
- :selected (and (boundp 'font-lock-mode) font-lock-mode)
- :active (boundp 'font-lock-mode)]
- ["%_Automatic"
- (customize-set-variable 'font-lock-auto-fontify
- (not font-lock-auto-fontify))
- :style toggle
- :selected (and (boundp 'font-lock-auto-fontify) font-lock-auto-fontify)
- :active (fboundp 'font-lock-mode)]
- "-----"
- ["Force %_Rehighlight in this Buffer"
- (customize-set-variable 'font-lock-auto-fontify
- (not font-lock-auto-fontify))
- :style toggle
- :selected (and (boundp 'font-lock-auto-fontify) font-lock-auto-fontify)
- :active (fboundp 'font-lock-mode)]
- "-----"
- ["%_Fonts"
+ (customize-set-variable 'buffers-menu-sort-function
+ 'sort-buffers-menu-alphabetically)
+ (customize-set-variable 'buffers-menu-grouping-function nil))
+ :style radio
+ :selected (eq 'sort-buffers-menu-alphabetically
+ buffers-menu-sort-function)]
+ ["%_By Major Mode, Then Alphabetically"
(progn
- (require 'font-lock)
- (font-lock-use-default-fonts)
- (customize-set-variable 'font-lock-use-fonts t)
- (customize-set-variable 'font-lock-use-colors nil)
- (font-lock-mode 1))
- :style radio
- :selected (and (boundp 'font-lock-use-fonts) font-lock-use-fonts)
- :active (fboundp 'font-lock-mode)]
- ["%_Colors"
- (progn
- (require 'font-lock)
- (font-lock-use-default-colors)
- (customize-set-variable 'font-lock-use-colors t)
- (customize-set-variable 'font-lock-use-fonts nil)
- (font-lock-mode 1))
- :style radio
- :selected (and (boundp 'font-lock-use-colors) font-lock-use-colors)
- :active (boundp 'font-lock-mode)]
- "-----"
- ["%_1 Least"
- (progn
- (require 'font-lock)
- (if (or (and (not (integerp font-lock-maximum-decoration))
- (not (eq t font-lock-maximum-decoration)))
- (and (integerp font-lock-maximum-decoration)
- (<= font-lock-maximum-decoration 0)))
- nil
- (customize-set-variable 'font-lock-maximum-decoration nil)
- (font-lock-recompute-variables)))
- :style radio
- :active (fboundp 'font-lock-mode)
- :selected (and (boundp 'font-lock-maximum-decoration)
- (or (and (not (integerp font-lock-maximum-decoration))
- (not (eq t font-lock-maximum-decoration)))
- (and (integerp font-lock-maximum-decoration)
- (<= font-lock-maximum-decoration 0))))]
- ["%_2 More"
- (progn
- (require 'font-lock)
- (if (and (integerp font-lock-maximum-decoration)
- (= 1 font-lock-maximum-decoration))
- nil
- (customize-set-variable 'font-lock-maximum-decoration 1)
- (font-lock-recompute-variables)))
- :style radio
- :active (fboundp 'font-lock-mode)
- :selected (and (boundp 'font-lock-maximum-decoration)
- (integerp font-lock-maximum-decoration)
- (= 1 font-lock-maximum-decoration))]
- ["%_3 Even More"
- (progn
- (require 'font-lock)
- (if (and (integerp font-lock-maximum-decoration)
- (= 2 font-lock-maximum-decoration))
- nil
- (customize-set-variable 'font-lock-maximum-decoration 2)
- (font-lock-recompute-variables)))
- :style radio
- :active (fboundp 'font-lock-mode)
- :selected (and (boundp 'font-lock-maximum-decoration)
- (integerp font-lock-maximum-decoration)
- (= 2 font-lock-maximum-decoration))]
- ["%_4 Most"
- (progn
- (require 'font-lock)
- (if (or (eq font-lock-maximum-decoration t)
- (and (integerp font-lock-maximum-decoration)
- (>= font-lock-maximum-decoration 3)))
- nil
- (customize-set-variable 'font-lock-maximum-decoration t)
- (font-lock-recompute-variables)))
- :style radio
- :active (fboundp 'font-lock-mode)
- :selected (and (boundp 'font-lock-maximum-decoration)
- (or (eq font-lock-maximum-decoration t)
- (and (integerp font-lock-maximum-decoration)
- (>= font-lock-maximum-decoration 3))))]
- "-----"
- ["Lazy %_Lock"
- (progn;; becomes buffer local
- (lazy-lock-mode)
- (customize-set-variable 'lazy-lock-mode lazy-lock-mode)
- ;; this shouldn't be necessary so there has to
- ;; be a redisplay bug lurking somewhere (or
- ;; possibly another event handler bug)
- (redraw-modeline))
- :active (and (boundp 'font-lock-mode) (boundp 'lazy-lock-mode)
- font-lock-mode)
- :style toggle
- :selected (and (boundp 'lazy-lock-mode) lazy-lock-mode)]
- ["Lazy %_Shot"
- (progn;; becomes buffer local
- (lazy-shot-mode)
- (customize-set-variable 'lazy-shot-mode lazy-shot-mode)
- ;; this shouldn't be necessary so there has to
- ;; be a redisplay bug lurking somewhere (or
- ;; possibly another event handler bug)
- (redraw-modeline))
- :active (and (boundp 'font-lock-mode) (boundp 'lazy-shot-mode)
- font-lock-mode)
- :style toggle
- :selected (and (boundp 'lazy-shot-mode) lazy-shot-mode)]
- ["Cac%_hing"
- (progn;; becomes buffer local
- (fast-lock-mode)
- (customize-set-variable 'fast-lock-mode fast-lock-mode)
- ;; this shouldn't be necessary so there has to
- ;; be a redisplay bug lurking somewhere (or
- ;; possibly another event handler bug)
- (redraw-modeline))
- :active (and (boundp 'font-lock-mode) (boundp 'fast-lock-mode)
- font-lock-mode)
- :style toggle
- :selected (and (boundp 'fast-lock-mode) fast-lock-mode)]
- )
- ("%_Font" :filter font-menu-family-constructor)
- ("Font Si%_ze" :filter font-menu-size-constructor)
- ;; ("Font Weig%_ht" :filter font-menu-weight-constructor)
- ["Edit Fa%_ces..." (customize-face nil)]
- "-----"
- ["Edit I%_nit File"
- ;; #### there should be something that holds the name that the init
- ;; file should be created as, when it's not present.
- (let ((el-file (or user-init-file "~/.xemacs/init.el")))
- (if (string-match "\\.elc$" el-file)
- (setq el-file
- (substring user-init-file 0 (1- (length el-file)))))
- (find-file el-file)
- (or (eq major-mode 'emacs-lisp-mode)
- (emacs-lisp-mode)))]
- ["%_Save Options to Custom File" customize-save-customized]
+ (customize-set-variable
+ 'buffers-menu-sort-function
+ 'sort-buffers-menu-by-mode-then-alphabetically)
+ (customize-set-variable
+ 'buffers-menu-grouping-function
+ 'group-buffers-menu-by-mode-then-alphabetically))
+ :style radio
+ :selected (eq 'sort-buffers-menu-by-mode-then-alphabetically
+ buffers-menu-sort-function)])
+ "---"
+ ["%_Ignore Scaled Fonts"
+ (customize-set-variable 'font-menu-ignore-scaled-fonts
+ (not font-menu-ignore-scaled-fonts))
+:style toggle
+:selected (and (boundp 'font-menu-ignore-scaled-fonts)
+ font-menu-ignore-scaled-fonts)]
)
+ ("S%_yntax Highlighting"
+ ["%_In This Buffer"
+ (progn ;; becomes buffer local
+ (font-lock-mode)
+ (customize-set-variable 'font-lock-mode font-lock-mode))
+:style toggle
+:selected (and (boundp 'font-lock-mode) font-lock-mode)
+:active (boundp 'font-lock-mode)]
+ ["%_Automatic"
+ (customize-set-variable 'font-lock-auto-fontify
+ (not font-lock-auto-fontify))
+:style toggle
+:selected (and (boundp 'font-lock-auto-fontify) font-lock-auto-fontify)
+:active (fboundp 'font-lock-mode)]
+ "-----"
+ ["Force %_Rehighlight in this Buffer"
+ (customize-set-variable 'font-lock-auto-fontify
+ (not font-lock-auto-fontify))
+:style toggle
+:selected (and (boundp 'font-lock-auto-fontify) font-lock-auto-fontify)
+:active (fboundp 'font-lock-mode)]
+ "-----"
+ ["%_Fonts"
+ (progn
+ (require 'font-lock)
+ (font-lock-use-default-fonts)
+ (customize-set-variable 'font-lock-use-fonts t)
+ (customize-set-variable 'font-lock-use-colors nil)
+ (font-lock-mode 1))
+:style radio
+:selected (and (boundp 'font-lock-use-fonts) font-lock-use-fonts)
+:active (fboundp 'font-lock-mode)]
+ ["%_Colors"
+ (progn
+ (require 'font-lock)
+ (font-lock-use-default-colors)
+ (customize-set-variable 'font-lock-use-colors t)
+ (customize-set-variable 'font-lock-use-fonts nil)
+ (font-lock-mode 1))
+:style radio
+:selected (and (boundp 'font-lock-use-colors) font-lock-use-colors)
+:active (boundp 'font-lock-mode)]
+ "-----"
+ ["%_1 Least"
+ (progn
+ (require 'font-lock)
+ (if (or (and (not (integerp font-lock-maximum-decoration))
+ (not (eq t font-lock-maximum-decoration)))
+ (and (integerp font-lock-maximum-decoration)
+ (<= font-lock-maximum-decoration 0)))
+ nil
+ (customize-set-variable 'font-lock-maximum-decoration nil)
+ (font-lock-recompute-variables)))
+:style radio
+:active (fboundp 'font-lock-mode)
+:selected (and (boundp 'font-lock-maximum-decoration)
+ (or (and (not (integerp font-lock-maximum-decoration))
+ (not (eq t font-lock-maximum-decoration)))
+ (and (integerp font-lock-maximum-decoration)
+ (<= font-lock-maximum-decoration 0))))]
+ ["%_2 More"
+ (progn
+ (require 'font-lock)
+ (if (and (integerp font-lock-maximum-decoration)
+ (= 1 font-lock-maximum-decoration))
+ nil
+ (customize-set-variable 'font-lock-maximum-decoration 1)
+ (font-lock-recompute-variables)))
+:style radio
+:active (fboundp 'font-lock-mode)
+:selected (and (boundp 'font-lock-maximum-decoration)
+ (integerp font-lock-maximum-decoration)
+ (= 1 font-lock-maximum-decoration))]
+ ["%_3 Even More"
+ (progn
+ (require 'font-lock)
+ (if (and (integerp font-lock-maximum-decoration)
+ (= 2 font-lock-maximum-decoration))
+ nil
+ (customize-set-variable 'font-lock-maximum-decoration 2)
+ (font-lock-recompute-variables)))
+:style radio
+:active (fboundp 'font-lock-mode)
+:selected (and (boundp 'font-lock-maximum-decoration)
+ (integerp font-lock-maximum-decoration)
+ (= 2 font-lock-maximum-decoration))]
+ ["%_4 Most"
+ (progn
+ (require 'font-lock)
+ (if (or (eq font-lock-maximum-decoration t)
+ (and (integerp font-lock-maximum-decoration)
+ (>= font-lock-maximum-decoration 3)))
+ nil
+ (customize-set-variable 'font-lock-maximum-decoration t)
+ (font-lock-recompute-variables)))
+:style radio
+:active (fboundp 'font-lock-mode)
+:selected (and (boundp 'font-lock-maximum-decoration)
+ (or (eq font-lock-maximum-decoration t)
+ (and (integerp font-lock-maximum-decoration)
+ (>= font-lock-maximum-decoration 3))))]
+ "-----"
+ ["Lazy %_Lock"
+ (progn ;; becomes buffer local
+ (lazy-lock-mode)
+ (customize-set-variable 'lazy-lock-mode lazy-lock-mode)
+ ;; this shouldn't be necessary so there has to
+ ;; be a redisplay bug lurking somewhere (or
+ ;; possibly another event handler bug)
+ (redraw-modeline))
+:active (and (boundp 'font-lock-mode) (boundp 'lazy-lock-mode)
+ font-lock-mode)
+:style toggle
+:selected (and (boundp 'lazy-lock-mode) lazy-lock-mode)]
+ ["Lazy %_Shot"
+ (progn ;; becomes buffer local
+ (lazy-shot-mode)
+ (customize-set-variable 'lazy-shot-mode lazy-shot-mode)
+ ;; this shouldn't be necessary so there has to
+ ;; be a redisplay bug lurking somewhere (or
+ ;; possibly another event handler bug)
+ (redraw-modeline))
+:active (and (boundp 'font-lock-mode) (boundp 'lazy-shot-mode)
+ font-lock-mode)
+:style toggle
+:selected (and (boundp 'lazy-shot-mode) lazy-shot-mode)]
+ ["Cac%_hing"
+ (progn ;; becomes buffer local
+ (fast-lock-mode)
+ (customize-set-variable 'fast-lock-mode fast-lock-mode)
+ ;; this shouldn't be necessary so there has to
+ ;; be a redisplay bug lurking somewhere (or
+ ;; possibly another event handler bug)
+ (redraw-modeline))
+:active (and (boundp 'font-lock-mode) (boundp 'fast-lock-mode)
+ font-lock-mode)
+:style toggle
+:selected (and (boundp 'fast-lock-mode) fast-lock-mode)]
+ )
+ ("%_Font" :filter font-menu-family-constructor)
+ ("Font Si%_ze" :filter font-menu-size-constructor)
+ ;; ("Font Weig%_ht" :filter font-menu-weight-constructor)
+ ["Edit Fa%_ces..." (customize-face nil)]
+ "-----"
+ ["Edit I%_nit File"
+ ;; #### there should be something that holds the name that the init
+ ;; file should be created as, when it's not present.
+ (let ((el-file (or user-init-file "~/.xemacs/init.el")))
+ (if (string-match "\\.elc$" el-file)
+ (setq el-file
+ (substring user-init-file 0 (1- (length el-file)))))
+ (find-file el-file)
+ (or (eq major-mode 'emacs-lisp-mode)
+ (emacs-lisp-mode)))]
+ ["%_Save Options to Custom File" customize-save-customized]
+ )
("%_Buffers"
-:filter buffers-menu-filter
- ["Go To %_Previous Buffer" switch-to-other-buffer]
- ["Go To %_Buffer..." switch-to-buffer]
- "----"
- ["%_List All Buffers" list-all-buffers]
- ["%_Delete Buffer" kill-this-buffer
-:suffix (if put-buffer-names-in-file-menu (buffer-name) "")]
- "----"
+:filter buffers-menu-filter
+ ["Go To %_Previous Buffer" switch-to-other-buffer]
+ ["Go To %_Buffer..." switch-to-buffer]
+ "----"
+ ["%_List All Buffers" list-all-buffers]
+ ["%_Delete Buffer" kill-this-buffer
+:suffix (if put-buffer-names-in-file-menu (buffer-name) "")]
+ "----"
+ )
+
+ nil ; the partition: menus after this are flushright
+
+ ("%_Help"
+ ["%_About XEmacs..." about-xemacs]
+ ["%_Home Page (www.xemacs.org)" xemacs-www-page
+:active (fboundp 'browse-url)]
+ ["What's %_New in XEmacs" view-emacs-news]
+ ["B%_eta Info" describe-beta
+:included (string-match "beta" emacs-version)]
+ "-----"
+ ("%_Info (Online Docs)"
+ ["%_Info Contents" (Info-goto-node "(dir)")]
+ "-----"
+ ["XEmacs %_User's Manual" (Info-goto-node "(XEmacs)")]
+ ["XEmacs %_Lisp Reference Manual" (Info-goto-node "(Lispref)")]
+ ["All About %_Packages" (Info-goto-node "(xemacs)Packages")]
+ ["%_Getting Started with XEmacs" (Info-goto-node "(New-Users-Guide)")]
+ ["%_XEmacs Internals Manual" (Info-goto-node "(Internals)")]
+ ["%_How to Use Info" (Info-goto-node "(Info)")]
+ "-----"
+ ["Lookup %_Key Sequence in User's Manual..."
+ Info-goto-emacs-key-command-node]
+ ["Lookup %_Command in User's Manual..." Info-goto-emacs-command-node]
+ ["Lookup %_Function in Lisp Reference..." Info-elisp-ref]
+ "-----"
+ ["Find %_Topic in User's Manual/Lispref..."
+ Info-search-index-in-xemacs-and-lispref]
+ ["%_Search Text in User's Manual..." Info-search-text-in-xemacs]
+ ["S%_earch Text in Lisp Reference..."
+ Info-search-text-in-lispref]
)
-
- nil ; the partition: menus after this are flushright
-
- ("%_Help"
- ["%_About XEmacs..." about-xemacs]
- ["%_Home Page (www.xemacs.org)" xemacs-www-page
-:active (fboundp 'browse-url)]
- ["What's %_New in XEmacs" view-emacs-news]
- ["B%_eta Info" describe-beta
- :included (string-match "beta" emacs-version)]
- "-----"
- ("%_Info (Online Docs)"
- ["%_Info Contents" (Info-goto-node "(dir)")]
- "-----"
- ["XEmacs %_User's Manual" (Info-goto-node "(XEmacs)")]
- ["XEmacs %_Lisp Reference Manual" (Info-goto-node "(Lispref)")]
- ["All About %_Packages" (Info-goto-node "(xemacs)Packages")]
- ["%_Getting Started with XEmacs" (Info-goto-node "(New-Users-Guide)")]
- ["%_XEmacs Internals Manual" (Info-goto-node "(Internals)")]
- ["%_How to Use Info" (Info-goto-node "(Info)")]
- "-----"
- ["Lookup %_Key Sequence in User's Manual..."
- Info-goto-emacs-key-command-node]
- ["Lookup %_Command in User's Manual..." Info-goto-emacs-command-node]
- ["Lookup %_Function in Lisp Reference..." Info-elisp-ref]
- "-----"
- ["Find %_Topic in User's Manual/Lispref..."
- Info-search-index-in-xemacs-and-lispref]
- ["%_Search Text in User's Manual..." Info-search-text-in-xemacs]
- ["S%_earch Text in Lisp Reference..."
- Info-search-text-in-lispref]
- )
- ("XEmacs %_FAQ"
- ["%_FAQ (local)" xemacs-local-faq]
- ["FAQ via %_WWW" xemacs-www-faq
- :active (fboundp 'browse-url)])
- ("%_Tutorials"
-:filter tutorials-menu-filter)
- ("%_Samples"
- ["View Sample %_init.el" view-sample-init-el
- :active (locate-data-file "sample.init.el")]
- ["View Sample .%_gtkrc"
- (Help-find-file (locate-data-file "sample.gtkrc"))
- :included (featurep 'gtk)
- :active (locate-data-file "sample.gtkrc")]
- ["View Sample .%_Xresources"
- (Help-find-file (locate-data-file "sample.Xresources"))
- :included (featurep 'x)
- :active (locate-data-file "sample.Xresources")]
- ["View Sample %_enriched.doc"
- (Help-find-file (locate-data-file "enriched.doc"))
- :active (locate-data-file "enriched.doc")])
- ("%_Commands, Variables, Keys"
- ["Describe %_Mode" describe-mode]
- ["%_Apropos..." hyper-apropos]
- ["%_Command-Only Apropos..." command-hyper-apropos]
- ["Apropos %_Docs..." apropos-documentation]
- "-----"
- ["Describe %_Key..." describe-key]
- ["Show %_Bindings" describe-bindings]
- ["Show M%_ouse Bindings" describe-pointer]
- "-----"
- ["Describe %_Function..." describe-function]
- ["Describe %_Variable..." describe-variable]
- ["%_Locate Command in Keymap..." where-is])
- ,@(when (featurep 'mule)
- '(("Internationa%_l"
- ("Describe %_Language Support"
- :filter
- (lambda (menu)
- (menu-split-long-menu-and-sort
- (mapcar #'(lambda (entry)
- `[ ,(car entry)
- (describe-language-environment
- ',(car entry))
- :style radio
- :selected
- ,(equal (car entry)
- current-language-environment)])
- language-info-alist)
- )))
- ["Describe %_Input Method" describe-input-method]
- ["Describe Current %_Coding Systems"
- describe-current-coding-system]
- ["Show Character %_Table" view-charset-by-menu]
- ;; not implemented yet
- ["Show %_Diagnosis for MULE" mule-diag :active nil]
- ["Show \"%_hello\" in Many Languages" view-hello-file]
- )))
- ("%_Other"
- ["%_Current Installation Info" describe-installation
- :active (boundp 'Installation-string)]
- ["%_Known Problems" view-xemacs-problems ]
- ["%_Obtaining the Latest Version" describe-distribution]
- ["%_No Warranty" describe-no-warranty]
- ["XEmacs %_License" describe-copying]
- ["Find %_Packages" finder-by-keyword]
- ["View %_Splash Screen" xemacs-splash-buffer]
- ["%_Unix Manual..." manual-entry])
- "-----"
- ["Recent %_Messages" (view-lossage t)]
- ["Recent %_Keystrokes" view-lossage]
- ["Recent %_Warnings" view-warnings]
- ["Send %_Bug Report..." report-xemacs-bug
-:active (fboundp 'report-xemacs-bug)])))
+ ("XEmacs %_FAQ"
+ ["%_FAQ (local)" xemacs-local-faq]
+ ["FAQ via %_WWW" xemacs-www-faq
+:active (fboundp 'browse-url)])
+ ("%_Tutorials"
+:filter tutorials-menu-filter)
+ ("%_Samples"
+ ["View Sample %_init.el" view-sample-init-el
+:active (locate-data-file "sample.init.el")]
+ ["View Sample .%_gtkrc"
+ (Help-find-file (locate-data-file "sample.gtkrc"))
+:included (featurep 'gtk)
+:active (locate-data-file "sample.gtkrc")]
+ ["View Sample .%_Xresources"
+ (Help-find-file (locate-data-file "sample.Xresources"))
+:included (featurep 'x)
+:active (locate-data-file "sample.Xresources")]
+ ["View Sample %_enriched.doc"
+ (Help-find-file (locate-data-file "enriched.doc"))
+:active (locate-data-file "enriched.doc")])
+ ("%_Commands, Variables, Keys"
+ ["Describe %_Mode" describe-mode]
+ ["%_Apropos..." hyper-apropos]
+ ["%_Command-Only Apropos..." command-hyper-apropos]
+ ["Apropos %_Docs..." apropos-documentation]
+ "-----"
+ ["Describe %_Key..." describe-key]
+ ["Show %_Bindings" describe-bindings]
+ ["Show M%_ouse Bindings" describe-pointer]
+ "-----"
+ ["Describe %_Function..." describe-function]
+ ["Describe %_Variable..." describe-variable]
+ ["%_Locate Command in Keymap..." where-is])
+ ,@(when (featurep 'mule)
+ `(("Internationa%_l"
+ ("Describe %_Language Support"
+ :filter
+ ,#'(lambda (menu)
+ (menu-split-long-menu-and-sort
+ (mapcar #'(lambda (entry)
+ `[ ,(car entry)
+ (describe-language-environment
+ ',(car entry))
+ :style radio
+ :selected
+ ,(equal (car entry)
+ current-language-environment)])
+ language-info-alist)
+ )))
+ ["Describe %_Input Method" describe-input-method]
+ ["Describe Current %_Coding Systems"
+ describe-current-coding-system]
+ ["Show Character %_Table" view-charset-by-menu]
+ ;; not implemented yet
+ ["Show %_Diagnosis for MULE" mule-diag :active nil]
+ ["Show \"%_hello\" in Many Languages" view-hello-file]
+ )))
+ ("%_Other"
+ ["%_Current Installation Info" describe-installation
+:active (boundp 'Installation-string)]
+ ["%_Known Problems" view-xemacs-problems ]
+ ["%_Obtaining the Latest Version" describe-distribution]
+ ["%_No Warranty" describe-no-warranty]
+ ["XEmacs %_License" describe-copying]
+ ["Find %_Packages" finder-by-keyword]
+ ["View %_Splash Screen" xemacs-splash-buffer]
+ ["%_Unix Manual..." manual-entry])
+ "-----"
+ ["Recent %_Messages" (view-lossage t)]
+ ["Recent %_Keystrokes" view-lossage]
+ ["Recent %_Warnings" view-warnings]
+ ["Send %_Bug Report..." report-xemacs-bug
+:active (fboundp 'report-xemacs-bug)]))
+ "The default XEmacs menubar.
+See the documentation for `current-menubar' for details of the syntax
+used here.")
(defun init-menubar-at-startup ()
@@ -1929,6 +1926,11 @@ items by redefining the function `format
;; included it first
(not (string= (car lang)
current-language-environment))
+ ;; Hackish approach; if a language environment
+ ;; doesn't have associated locale information,
+ ;; it's not the preferred implementation for that
+ ;; language. Don't use it.
+ (assq 'locale lang)
`([,(car lang)
(help-with-tutorial nil ,(car lang))]))))
language-info-alist)
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-patches
Re: [COMMIT PACKAGES] Accept built-in macros in #'find-func
16 years, 12 months
Aidan Kehoe
Ar an t-aonú lá is triochad de mí na Nollaig, scríobh Stephen J. Turnbull:
> Aidan Kehoe writes:
> >
> > APPROVE COMMIT
> >
> > NOTE: This patch has been committed.
> >
> > xemacs-packages/xemacs-devel/ChangeLog addition:
> >
> > 2007-12-30 Aidan Kehoe <kehoea(a)parhasard.net>
> >
> > * find-func.el (find-function-C-source):
> > Accept built-in macros in this function.
>
> Is this a new feature (previously it gracefully said "that's not a
> function"), or a bugfix (previously it errored on the cons)?
Previously this function was never called on built-in macros, because
built-in-symbol-file (in core, called via #'symbol-file in
#'find-function-noselect) failed when passed one. Since my change of today,
http://hg.debian.org//hg/xemacs/xemacs/?cs=69e6352406f0 it can receive
built-in macros, and needs this change to avoid erroring on them. I’m not
sure whether that’s a feature or a bugfix following your description; I
choose to be pessimistic and call it a bugfix.
--
¿Dónde estará ahora mi sobrino Yoghurtu Nghé, que tuvo que huir
precipitadamente de la aldea por culpa de la escasez de rinocerontes?
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-patches
commit: Provide 'iso8859-1 again; one file (iso-syntax.el) uses it in the packages.
16 years, 12 months
Aidan Kehoe
changeset: 4371:9fdac4a4ae623190f7accdb2d6dba196e1a8cfd9
tag: tip
user: Aidan Kehoe <kehoea(a)parhasard.net>
date: Sun Dec 30 16:48:34 2007 +0100
files: lisp/ChangeLog lisp/iso8859-1.el
description:
Provide 'iso8859-1 again; one file (iso-syntax.el) uses it in the packages.
2007-12-30 Aidan Kehoe <kehoea(a)parhasard.net>
* iso8859-1.el: (provide 'iso8859-1) again, because one file uses
it in the packages.
diff -r b94710365f92d6c1d9f65e9c982320b389b95bd8 -r 9fdac4a4ae623190f7accdb2d6dba196e1a8cfd9 lisp/ChangeLog
--- a/lisp/ChangeLog Sun Dec 30 16:19:21 2007 +0100
+++ b/lisp/ChangeLog Sun Dec 30 16:48:34 2007 +0100
@@ -1,3 +1,8 @@ 2007-12-30 Aidan Kehoe <kehoea@parhasa
+2007-12-30 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * iso8859-1.el: (provide 'iso8859-1) again, because one file uses
+ it in the packages.
+
2007-12-30 Aidan Kehoe <kehoea(a)parhasard.net>
* subr.el (with-case-table): New.
diff -r b94710365f92d6c1d9f65e9c982320b389b95bd8 -r 9fdac4a4ae623190f7accdb2d6dba196e1a8cfd9 lisp/iso8859-1.el
--- a/lisp/iso8859-1.el Sun Dec 30 16:19:21 2007 +0100
+++ b/lisp/iso8859-1.el Sun Dec 30 16:48:34 2007 +0100
@@ -84,4 +84,7 @@
;; by default.
(setq-default ctl-arrow #xA0)
+;; Shouldn't be necessary, but one file in the packages uses it:
+(provide 'iso8859-1)
+
;;; iso8859-1.el ends here
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-patches
carbon2-commit: Accept strings as glyph instantiators, fix control-arrow-glyph, etc.
16 years, 12 months
Aidan Kehoe
changeset: 4373:6a17ac5da3c4d311bec3618f02b531b0a0467e4b
parent: 4366:cc293ef846d240af187a523bb32eb5e26a083531
user: Aidan Kehoe <kehoea(a)parhasard.net>
date: Tue Dec 25 14:19:45 2007 +0100
files: lisp/ChangeLog lisp/glyphs.el
description:
Accept strings as glyph instantiators, fix control-arrow-glyph, etc.
2007-12-25 Aidan Kehoe <kehoea(a)parhasard.net>
* glyphs.el (init-glyphs):
Revert part of Didier's 2007-10-15 commit, which broke
#'make-image-specifier with string arguments, and more noticeably
truncation-glyph, continuation-glyph, octal-escape-glyph,
control-arrow-glyph.
diff -r cc293ef846d240af187a523bb32eb5e26a083531 -r 6a17ac5da3c4d311bec3618f02b531b0a0467e4b lisp/ChangeLog
--- a/lisp/ChangeLog Mon Dec 24 14:00:51 2007 +0100
+++ b/lisp/ChangeLog Tue Dec 25 14:19:45 2007 +0100
@@ -1,3 +1,11 @@ 2007-12-22 Stephen J. Turnbull <stephe
+2007-12-25 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * glyphs.el (init-glyphs):
+ Revert part of Didier's 2007-10-15 commit, which broke
+ #'make-image-specifier with string arguments, and more noticeably
+ truncation-glyph, continuation-glyph, octal-escape-glyph,
+ control-arrow-glyph.
+
2007-12-22 Stephen J. Turnbull <stephen(a)xemacs.org>
Factor out lists of operators specially treated by `make-autoload'.
diff -r cc293ef846d240af187a523bb32eb5e26a083531 -r 6a17ac5da3c4d311bec3618f02b531b0a0467e4b lisp/glyphs.el
--- a/lisp/glyphs.el Mon Dec 24 14:00:51 2007 +0100
+++ b/lisp/glyphs.el Tue Dec 25 14:19:45 2007 +0100
@@ -1185,8 +1185,7 @@ If unspecified in a particular domain, `
[jpeg :data nil] 2)))
,@(if (featurep 'png) '(("\\.png\\'" [png :file nil] 2)))
,@(if (featurep 'png) '(("\\`\211PNG" [png :data nil] 2)))
- ;; No, I don't think we want to inline images... -- dvl
- ;; ("" [string :data nil] 2)
+ ("" [string :data nil] 2)
("" [nothing]))))
;; #### this should really be formatted-string, not string but we
;; don't have it implemented yet
@@ -1210,8 +1209,7 @@ If unspecified in a particular domain, `
("\\`\377\330\377\340\000\020JFIF" [string :data "[jpeg]"])
("\\.png\\'" [string :data nil] 2)
("\\`\211PNG" [string :data "[png]"])
- ;; No, I don't think we want to inline images... -- dvl
- ;;("" [string :data nil] 2)
+ ("" [string :data nil] 2)
;; this last one is here for pointers and icons and such --
;; strings are not allowed so they will be ignored.
("" [nothing])))
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-patches
carbon2-commit: Automated merge with file:/Sources/xemacs-21.5-checked-out
16 years, 12 months
Aidan Kehoe
changeset: 4370:b545430be2eb1d007008624cb1bce9d4eea9efff
parent: 4369:df1f1f49ef702d66951ed0833cf160116c2b4e01
parent: 4367:3af63264d32008e05044cc024b6308ee0114d278
user: Aidan Kehoe <kehoea(a)parhasard.net>
date: Wed Dec 26 22:21:45 2007 +0100
files:
description:
Automated merge with file:/Sources/xemacs-21.5-checked-out
diff -r df1f1f49ef702d66951ed0833cf160116c2b4e01 -r b545430be2eb1d007008624cb1bce9d4eea9efff ChangeLog
--- a/ChangeLog Mon Dec 24 15:04:01 2007 +0100
+++ b/ChangeLog Wed Dec 26 22:21:45 2007 +0100
@@ -1,3 +1,7 @@ 2007-12-23 Stephen J. Turnbull <stephe
+2007-12-26 Stephen J. Turnbull <stephen(a)xemacs.org>
+
+ * Makefile.in.in (check-available-packages): Say where to install.
+
2007-12-23 Stephen J. Turnbull <stephen(a)xemacs.org>
* Makefile.in.in (mkpkgdir):
diff -r df1f1f49ef702d66951ed0833cf160116c2b4e01 -r b545430be2eb1d007008624cb1bce9d4eea9efff Makefile.in.in
--- a/Makefile.in.in Mon Dec 24 15:04:01 2007 +0100
+++ b/Makefile.in.in Wed Dec 26 22:21:45 2007 +0100
@@ -500,15 +500,18 @@ pkgsrcdir = ${srcdir}/etc/bundled-packag
check-available-packages:
@if test -r ${pkgsrcdir}/bootstrap.tar.gz; \
- then echo "To install a set of bootstrap packages, type:"; \
+ then echo "To install a set of bootstrap packages in"; \
+ echo "${package_path}/xemacs-packages, type:"; \
echo " make install-bootstrap-packages"; \
fi; \
if test -r ${pkgsrcdir}/xemacs-sumo.tar.gz; \
- then echo "To install the full set of non-mule packages, type:"; \
+ then echo "To install the full set of non-mule packages in"; \
+ echo "${package_path}/xemacs-packages, type:"; \
echo " make install-nonmule-packages"; \
fi; \
if test -r ${pkgsrcdir}/xemacs-mule-sumo.tar.gz; \
- then echo "To install the full set of packages with mule, type:"; \
+ then echo "To install the full set of packages with mule in"; \
+ echo "${package_path}/mule-packages, type:"; \
echo " make install-all-packages"; \
fi;
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-patches
carbon2-commit: Ensure LATE_PACKAGES_DIRECTORIES is a trivial search path.
16 years, 12 months
Aidan Kehoe
changeset: 4371:146742e30f05ab3437ec96ac13b33feb2a8e3ba7
user: Stephen J. Turnbull <stephen(a)xemacs.org>
date: Wed Dec 26 22:38:40 2007 -0800
files: ChangeLog Makefile.in.in etc/ChangeLog etc/bundled-packages/README
description:
Ensure LATE_PACKAGES_DIRECTORIES is a trivial search path.
diff -r b545430be2eb1d007008624cb1bce9d4eea9efff -r 146742e30f05ab3437ec96ac13b33feb2a8e3ba7 ChangeLog
--- a/ChangeLog Wed Dec 26 22:21:45 2007 +0100
+++ b/ChangeLog Wed Dec 26 22:38:40 2007 -0800
@@ -1,6 +1,11 @@ 2007-12-26 Stephen J. Turnbull <stephe
2007-12-26 Stephen J. Turnbull <stephen(a)xemacs.org>
+ * Makefile.in.in (mkpkgdir): Ensure only one late package directory.
+
+2007-12-26 Stephen J. Turnbull <stephen(a)xemacs.org>
+
* Makefile.in.in (check-available-packages): Say where to install.
+ (mkpkgdir):
2007-12-23 Stephen J. Turnbull <stephen(a)xemacs.org>
diff -r b545430be2eb1d007008624cb1bce9d4eea9efff -r 146742e30f05ab3437ec96ac13b33feb2a8e3ba7 Makefile.in.in
--- a/Makefile.in.in Wed Dec 26 22:21:45 2007 +0100
+++ b/Makefile.in.in Wed Dec 26 22:38:40 2007 -0800
@@ -513,11 +513,18 @@ check-available-packages:
then echo "To install the full set of packages with mule in"; \
echo "${package_path}/mule-packages, type:"; \
echo " make install-all-packages"; \
- fi;
+ fi
+
+# The test for a non-trivial path simply checks for the conventional Unix
+# path separator ":". This is reasonable because this is basically just
+# a convenience feature, anyway.
mkpkgdir: FRC.mkdir ${MAKEPATH}
@if test -z ${package_path}; \
- then echo "not configured --with-late-packages; no place to install."; \
+ then echo "Not configured --with-late-packages; no place to install."; \
+ exit -1; \
+ elif echo ${package_path} | grep ":"; \
+ then echo "Configured with multiple late package directories; you decide where to install."; \
exit -1; \
elif test -e ${package_path}/xemacs-packages \
-o -e ${package_path}/mule-packages; \
diff -r b545430be2eb1d007008624cb1bce9d4eea9efff -r 146742e30f05ab3437ec96ac13b33feb2a8e3ba7 etc/ChangeLog
--- a/etc/ChangeLog Wed Dec 26 22:21:45 2007 +0100
+++ b/etc/ChangeLog Wed Dec 26 22:38:40 2007 -0800
@@ -1,3 +1,7 @@ 2007-12-23 Stephen J. Turnbull <stephe
+2007-12-26 Stephen J. Turnbull <stephen(a)xemacs.org>
+
+ * bundled-packages/README: Document restriction on --with-late-packages.
+
2007-12-23 Stephen J. Turnbull <stephen(a)xemacs.org>
* bundled-packages/README: Documentation for bundled packages.
diff -r b545430be2eb1d007008624cb1bce9d4eea9efff -r 146742e30f05ab3437ec96ac13b33feb2a8e3ba7 etc/bundled-packages/README
--- a/etc/bundled-packages/README Wed Dec 26 22:21:45 2007 +0100
+++ b/etc/bundled-packages/README Wed Dec 26 22:38:40 2007 -0800
@@ -1,10 +1,13 @@ Package distributions may be placed in t
Package distributions may be placed in this directory.
If present and a package-path is configured, packages can be installed
-using the top-level makefile.
+using the top-level Makefile.
To configure the package path, use the --with-late-packages option to
-configure, which specifies the path to the directory containing the
-xemacs-packages and mule-packages hierarchies to install.
+configure, which specifies a single directory in which to install the
+xemacs-packages and mule-packages hierarchies provided. If this is null,
+or contains a Unix-style search path (i.e., a colon is present in the
+argument of the --with-late-packages option), you will have to install
+the packages by hand.
To find out if a distribution includes bundled packages, type
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-patches
carbon2-commit: Automated merge with file:/Sources/xemacs-21.5-checked-out
16 years, 12 months
Aidan Kehoe
changeset: 4369:df1f1f49ef702d66951ed0833cf160116c2b4e01
parent: 4368:63c25d1cbecf001ad5d3df335e95283d0a3d917d
parent: 4366:cc293ef846d240af187a523bb32eb5e26a083531
user: Aidan Kehoe <kehoea(a)parhasard.net>
date: Mon Dec 24 15:04:01 2007 +0100
files: src/ChangeLog tests/reproduce-bugs.el
description:
Automated merge with file:/Sources/xemacs-21.5-checked-out
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 .hgignore
--- a/.hgignore Mon Dec 24 15:02:36 2007 +0100
+++ b/.hgignore Mon Dec 24 15:04:01 2007 +0100
@@ -1,3 +1,47 @@
(^|/)CVS($|/)
(^|/)\.hg($|/)
(^|/)\.hgtags($|/)
+\.o$
+\.elc$
+~$
+\.orig$
+\.rej$
+(^|/)\#[^/]*\#$
+(^|/)\.\#[^/]*$
+info/.*\.info(-[0-9]+)?$
+^GNUmakefile$
+^Installation$
+^Makefile$
+^Makefile\.in$
+^autom4te\.cache
+^config\.(log|status)$
+^lib-src/DOC$
+^lib-src/(GNUmakefile|Makefile(\.in)?)$
+^lib-src/config\.values$
+^lib-src/(b2m|ctags|cvtmail|digest-doc|ellcc|etags|fakemail|gnuclient|gnuserv|hexl|insert-data-in-exec|make-docfile|make-dump-id|make-path|mmencode|movemail|ootags|profile|sorted-doc|wakeup|yow)$
+^lib-src/ellcc\.h$
+^lisp/(auto-autoloads|custom-load|finder-inf)\.el$
+^lisp/mule/(auto-autoloads|custom-load)\.el$
+^lwlib/(GNUmakefile|Makefile(\.in)?)$
+^lwlib/liblw\.a$
+^lwlib/config\.h$
+^modules/auto-autoloads\.el$
+^modules/ldap/(GNUmakefile|Makefile(\.in)?)$
+^modules/ldap/eldap\.ell$
+^modules/ldap/eldap_i\.c$
+^(xemacs|mule)-packages
+^etc/PROBLEMS$
+^src/(.dbxrc|.gdbinit)(\.in)?$
+^src/(GNUmakefile|Makefile(\.in)?)$
+^src/NEEDTODUMP$
+^src/config\.h$
+^src/dump-id\.c$
+^src/dump-size$
+^src/paths\.h$
+^src/sheap-adjust\.h$
+^src/temacs$
+^src/xemacs$
+^src/xemacs\.def(\.in)?$
+^src/xemacs\.dmp$
+^src/Emacs\.ad\.h$
+^etc/bundled-packages/.*\.tar\.gz$
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 ChangeLog
--- a/ChangeLog Mon Dec 24 15:02:36 2007 +0100
+++ b/ChangeLog Mon Dec 24 15:04:01 2007 +0100
@@ -1,3 +1,26 @@ 2007-08-27 Mike Sperber <mike(a)xemacs.o
+2007-12-23 Stephen J. Turnbull <stephen(a)xemacs.org>
+
+ * Makefile.in.in (mkpkgdir):
+ (check-available-packages):
+ (install-bootstrap-packages):
+ (install-nonmule-packages):
+ (install-all-packages):
+ New targets supporting bundled packages.
+
+ * .hgignore: Ignore tarballs in etc/bundled-packages/.
+
+2007-12-08 Jerry James <james(a)xemacs.org>
+
+ * config.guess:
+ * config.sub: Sync with the latest upstream versions.
+
+2007-12-12 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * configure.ac :
+ Check for FcConfigGetRescanInterval, FcConfigSetRescanInterval.
+ * configure :
+ Rebuild.
+
2007-08-27 Mike Sperber <mike(a)xemacs.org>
* configure.ac: Try to use pkg-config for finding Xft includes and
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 Makefile.in.in
--- a/Makefile.in.in Mon Dec 24 15:02:36 2007 +0100
+++ b/Makefile.in.in Mon Dec 24 15:04:01 2007 +0100
@@ -491,6 +491,48 @@ mkdir: FRC.mkdir
#endif
${sitelispdir}
+## Install bundled packages, if present.
+
+package_path = @LATE_PACKAGE_DIRECTORIES@
+pkgsrcdir = ${srcdir}/etc/bundled-packages
+
+## #### Probably we should add a rule for lib-src/make-path here.
+
+check-available-packages:
+ @if test -r ${pkgsrcdir}/bootstrap.tar.gz; \
+ then echo "To install a set of bootstrap packages, type:"; \
+ echo " make install-bootstrap-packages"; \
+ fi; \
+ if test -r ${pkgsrcdir}/xemacs-sumo.tar.gz; \
+ then echo "To install the full set of non-mule packages, type:"; \
+ echo " make install-nonmule-packages"; \
+ fi; \
+ if test -r ${pkgsrcdir}/xemacs-mule-sumo.tar.gz; \
+ then echo "To install the full set of packages with mule, type:"; \
+ echo " make install-all-packages"; \
+ fi;
+
+mkpkgdir: FRC.mkdir ${MAKEPATH}
+ @if test -z ${package_path}; \
+ then echo "not configured --with-late-packages; no place to install."; \
+ exit -1; \
+ elif test -e ${package_path}/xemacs-packages \
+ -o -e ${package_path}/mule-packages; \
+ then echo "${package_path} is installed; won't overwrite packages."; \
+ exit -1; \
+ fi
+ ${MAKEPATH} ${package_path};
+
+install-bootstrap-packages: mkpkgdir
+ cd ${package_path}; tar xvzf ${pkgsrcdir}/bootstrap.tar.gz
+
+install-nonmule-packages: mkpkgdir
+ cd ${package_path}; tar xvzf ${pkgsrcdir}/xemacs-sumo.tar.gz
+
+install-all-packages: mkpkgdir
+ cd ${package_path}; tar xvzf ${pkgsrcdir}/xemacs-sumo.tar.gz; \
+ cd ${package_path}; tar xvzf ${pkgsrcdir}/xemacs-mule-sumo.tar.gz
+
## Delete all the installed files that the `install' target would
## create (but not the noninstalled files such as `make all' would
## create).
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 config.guess
--- a/config.guess Mon Dec 24 15:02:36 2007 +0100
+++ b/config.guess Mon Dec 24 15:04:01 2007 +0100
@@ -1,9 +1,10 @@
#! /bin/sh
# Attempt to guess a canonical system name.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-
-timestamp='2005-02-10'
+# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
+# Inc.
+
+timestamp='2007-12-05'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -17,12 +18,14 @@ timestamp='2005-02-10'
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
+
# Originally written by Per Bothner <per(a)bothner.com>.
# Please send patches to <config-patches(a)gnu.org>. Submit a context
@@ -66,11 +69,11 @@ while test $# -gt 0 ; do
while test $# -gt 0 ; do
case $1 in
--time-stamp | --time* | -t )
- echo "$timestamp" ; exit 0 ;;
+ echo "$timestamp" ; exit ;;
--version | -v )
- echo "$version" ; exit 0 ;;
+ echo "$version" ; exit ;;
--help | --h* | -h )
- echo "$usage"; exit 0 ;;
+ echo "$usage"; exit ;;
-- ) # Stop option processing
shift; break ;;
- ) # Use stdin as input.
@@ -104,7 +107,7 @@ trap "exitcode=\$?; (rm -f \$tmpfiles 2>
trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
: ${TMPDIR=/tmp} ;
- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
@@ -123,7 +126,7 @@ case $CC_FOR_BUILD,$HOST_CC,$CC in
;;
,,*) CC_FOR_BUILD=$CC ;;
,*,*) CC_FOR_BUILD=$HOST_CC ;;
-esac ;'
+esac ; set_cc_for_build= ;'
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
# (ghazi(a)noc.rutgers.edu 1994-08-24)
@@ -158,6 +161,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
arm*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;;
sh3eb) machine=sh-unknown ;;
+ sh5el) machine=sh5le-unknown ;;
*) machine=${UNAME_MACHINE_ARCH}-unknown ;;
esac
# The Operating System including object format, if it has switched
@@ -196,55 +200,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
# contains redundant information, the shorter form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
echo "${machine}-${os}${release}"
- exit 0 ;;
- amd64:OpenBSD:*:*)
- echo x86_64-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- amiga:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- cats:OpenBSD:*:*)
- echo arm-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- hp300:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- luna88k:OpenBSD:*:*)
- echo m88k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mac68k:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- macppc:OpenBSD:*:*)
- echo powerpc-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mvme68k:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mvme88k:OpenBSD:*:*)
- echo m88k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mvmeppc:OpenBSD:*:*)
- echo powerpc-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- sgi:OpenBSD:*:*)
- echo mips64-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- sun3:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:OpenBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+ exit ;;
*:ekkoBSD:*:*)
echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
+ *:SolidBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+ exit ;;
macppc:MirBSD:*:*)
- echo powerppc-unknown-mirbsd${UNAME_RELEASE}
- exit 0 ;;
+ echo powerpc-unknown-mirbsd${UNAME_RELEASE}
+ exit ;;
*:MirBSD:*:*)
echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
alpha:OSF1:*:*)
case $UNAME_RELEASE in
*4.0)
@@ -297,40 +269,43 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- exit 0 ;;
+ exit ;;
Alpha\ *:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# Should we change UNAME_MACHINE based on the output of uname instead
# of the specific Alpha model?
echo alpha-pc-interix
- exit 0 ;;
+ exit ;;
21064:Windows_NT:50:3)
echo alpha-dec-winnt3.5
- exit 0 ;;
+ exit ;;
Amiga*:UNIX_System_V:4.0:*)
echo m68k-unknown-sysv4
- exit 0;;
+ exit ;;
*:[Aa]miga[Oo][Ss]:*:*)
echo ${UNAME_MACHINE}-unknown-amigaos
- exit 0 ;;
+ exit ;;
*:[Mm]orph[Oo][Ss]:*:*)
echo ${UNAME_MACHINE}-unknown-morphos
- exit 0 ;;
+ exit ;;
*:OS/390:*:*)
echo i370-ibm-openedition
- exit 0 ;;
+ exit ;;
*:z/VM:*:*)
echo s390-ibm-zvmoe
- exit 0 ;;
+ exit ;;
*:OS400:*:*)
echo powerpc-ibm-os400
- exit 0 ;;
+ exit ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
echo arm-acorn-riscix${UNAME_RELEASE}
- exit 0;;
+ exit ;;
+ arm:riscos:*:*|arm:RISCOS:*:*)
+ echo arm-unknown-riscos
+ exit ;;
SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
echo hppa1.1-hitachi-hiuxmpp
- exit 0;;
+ exit ;;
Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
# akee(a)wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
if test "`(/bin/universe) 2>/dev/null`" = att ; then
@@ -338,32 +313,32 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
else
echo pyramid-pyramid-bsd
fi
- exit 0 ;;
+ exit ;;
NILE*:*:*:dcosx)
echo pyramid-pyramid-svr4
- exit 0 ;;
+ exit ;;
DRS?6000:unix:4.0:6*)
echo sparc-icl-nx6
- exit 0 ;;
+ exit ;;
DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
case `/usr/bin/uname -p` in
- sparc) echo sparc-icl-nx7 && exit 0 ;;
+ sparc) echo sparc-icl-nx7; exit ;;
esac ;;
sun4H:SunOS:5.*:*)
echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
+ exit ;;
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- i86pc:SunOS:5.*:*)
+ exit ;;
+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
+ exit ;;
sun4*:SunOS:6*:*)
# According to config.sub, this is the proper way to canonicalize
# SunOS6. Hard to guess exactly what SunOS6 will be like, but
# it's likely to be more like Solaris than SunOS4.
echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
+ exit ;;
sun4*:SunOS:*:*)
case "`/usr/bin/arch -k`" in
Series*|S4*)
@@ -372,10 +347,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
esac
# Japanese Language versions have a version number like `4.1.3-JL'.
echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
- exit 0 ;;
+ exit ;;
sun3*:SunOS:*:*)
echo m68k-sun-sunos${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
sun*:*:4.2BSD:*)
UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
@@ -387,10 +362,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
echo sparc-sun-sunos${UNAME_RELEASE}
;;
esac
- exit 0 ;;
+ exit ;;
aushp:SunOS:*:*)
echo sparc-auspex-sunos${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
# The situation for MiNT is a little confusing. The machine name
# can be virtually everything (everything which is not
# "atarist" or "atariste" at least should have a processor
@@ -401,40 +376,40 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
# be no problem.
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
echo m68k-milan-mint${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
echo m68k-hades-mint${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
echo m68k-unknown-mint${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
m68k:machten:*:*)
echo m68k-apple-machten${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
powerpc:machten:*:*)
echo powerpc-apple-machten${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
RISC*:Mach:*:*)
echo mips-dec-mach_bsd4.3
- exit 0 ;;
+ exit ;;
RISC*:ULTRIX:*:*)
echo mips-dec-ultrix${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
VAX*:ULTRIX*:*:*)
echo vax-dec-ultrix${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
2020:CLIX:*:* | 2430:CLIX:*:*)
echo clipper-intergraph-clix${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
mips:*:*:UMIPS | mips:*:*:RISCos)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
@@ -458,32 +433,33 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
exit (-1);
}
EOF
- $CC_FOR_BUILD -o $dummy $dummy.c \
- && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
- && exit 0
+ $CC_FOR_BUILD -o $dummy $dummy.c &&
+ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+ SYSTEM_NAME=`$dummy $dummyarg` &&
+ { echo "$SYSTEM_NAME"; exit; }
echo mips-mips-riscos${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
Motorola:PowerMAX_OS:*:*)
echo powerpc-motorola-powermax
- exit 0 ;;
+ exit ;;
Motorola:*:4.3:PL8-*)
echo powerpc-harris-powermax
- exit 0 ;;
+ exit ;;
Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
echo powerpc-harris-powermax
- exit 0 ;;
+ exit ;;
Night_Hawk:Power_UNIX:*:*)
echo powerpc-harris-powerunix
- exit 0 ;;
+ exit ;;
m88k:CX/UX:7*:*)
echo m88k-harris-cxux7
- exit 0 ;;
+ exit ;;
m88k:*:4*:R4*)
echo m88k-motorola-sysv4
- exit 0 ;;
+ exit ;;
m88k:*:3*:R3*)
echo m88k-motorola-sysv3
- exit 0 ;;
+ exit ;;
AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
@@ -499,29 +475,29 @@ EOF
else
echo i586-dg-dgux${UNAME_RELEASE}
fi
- exit 0 ;;
+ exit ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
echo m88k-dolphin-sysv3
- exit 0 ;;
+ exit ;;
M88*:*:R3*:*)
# Delta 88k system running SVR3
echo m88k-motorola-sysv3
- exit 0 ;;
+ exit ;;
XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
echo m88k-tektronix-sysv3
- exit 0 ;;
+ exit ;;
Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
echo m68k-tektronix-bsd
- exit 0 ;;
+ exit ;;
*:IRIX*:*:*)
echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
- exit 0 ;;
+ exit ;;
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
+ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
i*86:AIX:*:*)
echo i386-ibm-aix
- exit 0 ;;
+ exit ;;
ia64:AIX:*:*)
if [ -x /usr/bin/oslevel ] ; then
IBM_REV=`/usr/bin/oslevel`
@@ -529,7 +505,7 @@ EOF
IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
fi
echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
- exit 0 ;;
+ exit ;;
*:AIX:2:3)
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
eval $set_cc_for_build
@@ -544,14 +520,18 @@ EOF
exit(0);
}
EOF
- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
- echo rs6000-ibm-aix3.2.5
+ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+ then
+ echo "$SYSTEM_NAME"
+ else
+ echo rs6000-ibm-aix3.2.5
+ fi
elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
echo rs6000-ibm-aix3.2.4
else
echo rs6000-ibm-aix3.2
fi
- exit 0 ;;
+ exit ;;
*:AIX:*:[45])
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
@@ -565,28 +545,28 @@ EOF
IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
fi
echo ${IBM_ARCH}-ibm-aix${IBM_REV}
- exit 0 ;;
+ exit ;;
*:AIX:*:*)
echo rs6000-ibm-aix
- exit 0 ;;
+ exit ;;
ibmrt:4.4BSD:*|romp-ibm:BSD:*)
echo romp-ibm-bsd4.4
- exit 0 ;;
+ exit ;;
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
- exit 0 ;; # report: romp-ibm BSD 4.3
+ exit ;; # report: romp-ibm BSD 4.3
*:BOSX:*:*)
echo rs6000-bull-bosx
- exit 0 ;;
+ exit ;;
DPX/2?00:B.O.S.:*:*)
echo m68k-bull-sysv3
- exit 0 ;;
+ exit ;;
9000/[34]??:4.3bsd:1.*:*)
echo m68k-hp-bsd
- exit 0 ;;
+ exit ;;
hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
echo m68k-hp-bsd4.4
- exit 0 ;;
+ exit ;;
9000/[34678]??:HP-UX:*:*)
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
case "${UNAME_MACHINE}" in
@@ -648,9 +628,19 @@ EOF
esac
if [ ${HP_ARCH} = "hppa2.0w" ]
then
- # avoid double evaluation of $set_cc_for_build
- test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
+ eval $set_cc_for_build
+
+ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
+ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
+ # generating 64-bit code. GNU and HP use different nomenclature:
+ #
+ # $ CC_FOR_BUILD=cc ./config.guess
+ # => hppa2.0w-hp-hpux11.23
+ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+ # => hppa64-hp-hpux11.23
+
+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+ grep __LP64__ >/dev/null
then
HP_ARCH="hppa2.0w"
else
@@ -658,11 +648,11 @@ EOF
fi
fi
echo ${HP_ARCH}-hp-hpux${HPUX_REV}
- exit 0 ;;
+ exit ;;
ia64:HP-UX:*:*)
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
echo ia64-hp-hpux${HPUX_REV}
- exit 0 ;;
+ exit ;;
3050*:HI-UX:*:*)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
@@ -690,161 +680,189 @@ EOF
exit (0);
}
EOF
- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
+ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+ { echo "$SYSTEM_NAME"; exit; }
echo unknown-hitachi-hiuxwe2
- exit 0 ;;
+ exit ;;
9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
echo hppa1.1-hp-bsd
- exit 0 ;;
+ exit ;;
9000/8??:4.3bsd:*:*)
echo hppa1.0-hp-bsd
- exit 0 ;;
+ exit ;;
*9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
echo hppa1.0-hp-mpeix
- exit 0 ;;
+ exit ;;
hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
echo hppa1.1-hp-osf
- exit 0 ;;
+ exit ;;
hp8??:OSF1:*:*)
echo hppa1.0-hp-osf
- exit 0 ;;
+ exit ;;
i*86:OSF1:*:*)
if [ -x /usr/sbin/sysversion ] ; then
echo ${UNAME_MACHINE}-unknown-osf1mk
else
echo ${UNAME_MACHINE}-unknown-osf1
fi
- exit 0 ;;
+ exit ;;
parisc*:Lites*:*:*)
echo hppa1.1-hp-lites
- exit 0 ;;
+ exit ;;
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
echo c1-convex-bsd
- exit 0 ;;
+ exit ;;
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
- exit 0 ;;
+ exit ;;
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
echo c34-convex-bsd
- exit 0 ;;
+ exit ;;
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
echo c38-convex-bsd
- exit 0 ;;
+ exit ;;
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
echo c4-convex-bsd
- exit 0 ;;
+ exit ;;
CRAY*Y-MP:*:*:*)
echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
+ exit ;;
CRAY*[A-Z]90:*:*:*)
echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
-e 's/\.[^.]*$/.X/'
- exit 0 ;;
+ exit ;;
CRAY*TS:*:*:*)
echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
+ exit ;;
CRAY*T3E:*:*:*)
echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
+ exit ;;
CRAY*SV1:*:*:*)
echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
+ exit ;;
*:UNICOS/mp:*:*)
echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
+ exit ;;
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit 0 ;;
+ exit ;;
5000:UNIX_System_V:4.*:*)
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit 0 ;;
+ exit ;;
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
sparc*:BSD/OS:*:*)
echo sparc-unknown-bsdi${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:BSD/OS:*:*)
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:FreeBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
- exit 0 ;;
+ case ${UNAME_MACHINE} in
+ pc98)
+ echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ amd64)
+ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ *)
+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ esac
+ exit ;;
i*:CYGWIN*:*)
echo ${UNAME_MACHINE}-pc-cygwin
- exit 0 ;;
- i*:MINGW*:*)
+ exit ;;
+ *:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32
- exit 0 ;;
+ exit ;;
+ i*:windows32*:*)
+ # uname -m includes "-pc" on this system.
+ echo ${UNAME_MACHINE}-mingw32
+ exit ;;
i*:PW*:*)
echo ${UNAME_MACHINE}-pc-pw32
- exit 0 ;;
- x86:Interix*:[34]*)
- echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
- exit 0 ;;
+ exit ;;
+ *:Interix*:[3456]*)
+ case ${UNAME_MACHINE} in
+ x86)
+ echo i586-pc-interix${UNAME_RELEASE}
+ exit ;;
+ EM64T | authenticamd)
+ echo x86_64-unknown-interix${UNAME_RELEASE}
+ exit ;;
+ esac ;;
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
echo i${UNAME_MACHINE}-pc-mks
- exit 0 ;;
+ exit ;;
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
# UNAME_MACHINE based on the output of uname instead of i386?
echo i586-pc-interix
- exit 0 ;;
+ exit ;;
i*:UWIN*:*)
echo ${UNAME_MACHINE}-pc-uwin
- exit 0 ;;
- amd64:CYGWIN*:*:*)
+ exit ;;
+ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
echo x86_64-unknown-cygwin
- exit 0 ;;
+ exit ;;
p*:CYGWIN*:*)
echo powerpcle-unknown-cygwin
- exit 0 ;;
+ exit ;;
prep*:SunOS:5.*:*)
echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
+ exit ;;
*:GNU:*:*)
# the GNU system
echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
- exit 0 ;;
+ exit ;;
*:GNU/*:*:*)
# other systems with GNU libc and userland
echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
- exit 0 ;;
+ exit ;;
i*86:Minix:*:*)
echo ${UNAME_MACHINE}-pc-minix
- exit 0 ;;
+ exit ;;
arm*:Linux:*:*)
+ eval $set_cc_for_build
+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_EABI__
+ then
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ else
+ echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+ fi
+ exit ;;
+ avr32*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit 0 ;;
+ exit ;;
cris:Linux:*:*)
echo cris-axis-linux-gnu
- exit 0 ;;
+ exit ;;
crisv32:Linux:*:*)
echo crisv32-axis-linux-gnu
- exit 0 ;;
+ exit ;;
frv:Linux:*:*)
echo frv-unknown-linux-gnu
- exit 0 ;;
+ exit ;;
ia64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit 0 ;;
+ exit ;;
m32r*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit 0 ;;
+ exit ;;
m68*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit 0 ;;
+ exit ;;
mips:Linux:*:*)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
@@ -861,8 +879,12 @@ EOF
#endif
#endif
EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+ /^CPU/{
+ s: ::g
+ p
+ }'`"
+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
;;
mips64:Linux:*:*)
eval $set_cc_for_build
@@ -880,15 +902,22 @@ EOF
#endif
#endif
EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+ /^CPU/{
+ s: ::g
+ p
+ }'`"
+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
;;
+ or32:Linux:*:*)
+ echo or32-unknown-linux-gnu
+ exit ;;
ppc:Linux:*:*)
echo powerpc-unknown-linux-gnu
- exit 0 ;;
+ exit ;;
ppc64:Linux:*:*)
echo powerpc64-unknown-linux-gnu
- exit 0 ;;
+ exit ;;
alpha:Linux:*:*)
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
EV5) UNAME_MACHINE=alphaev5 ;;
@@ -902,7 +931,7 @@ EOF
objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
- exit 0 ;;
+ exit ;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
@@ -910,25 +939,31 @@ EOF
PA8*) echo hppa2.0-unknown-linux-gnu ;;
*) echo hppa-unknown-linux-gnu ;;
esac
- exit 0 ;;
+ exit ;;
parisc64:Linux:*:* | hppa64:Linux:*:*)
echo hppa64-unknown-linux-gnu
- exit 0 ;;
+ exit ;;
s390:Linux:*:* | s390x:Linux:*:*)
echo ${UNAME_MACHINE}-ibm-linux
- exit 0 ;;
+ exit ;;
sh64*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit 0 ;;
+ exit ;;
sh*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit 0 ;;
+ exit ;;
sparc:Linux:*:* | sparc64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit 0 ;;
+ exit ;;
+ vax:Linux:*:*)
+ echo ${UNAME_MACHINE}-dec-linux-gnu
+ exit ;;
x86_64:Linux:*:*)
echo x86_64-unknown-linux-gnu
- exit 0 ;;
+ exit ;;
+ xtensa*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
i*86:Linux:*:*)
# The BFD linker knows what the default object file format is, so
# first see if it will tell us. cd to the root directory to prevent
@@ -946,15 +981,15 @@ EOF
;;
a.out-i386-linux)
echo "${UNAME_MACHINE}-pc-linux-gnuaout"
- exit 0 ;;
+ exit ;;
coff-i386)
echo "${UNAME_MACHINE}-pc-linux-gnucoff"
- exit 0 ;;
+ exit ;;
"")
# Either a pre-BFD a.out linker (linux-gnuoldld) or
# one that does not give us useful --help.
echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
- exit 0 ;;
+ exit ;;
esac
# Determine whether the default compiler is a.out or elf
eval $set_cc_for_build
@@ -971,7 +1006,7 @@ EOF
LIBC=gnulibc1
# endif
#else
- #ifdef __INTEL_COMPILER
+ #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
LIBC=gnu
#else
LIBC=gnuaout
@@ -981,16 +1016,23 @@ EOF
LIBC=dietlibc
#endif
EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
- test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
- test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+ /^LIBC/{
+ s: ::g
+ p
+ }'`"
+ test x"${LIBC}" != x && {
+ echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+ exit
+ }
+ test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
;;
i*86:DYNIX/ptx:4*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
# earlier versions are messed up and put the nodename in both
# sysname and nodename.
echo i386-sequent-sysv4
- exit 0 ;;
+ exit ;;
i*86:UNIX_SV:4.2MP:2.*)
# Unixware is an offshoot of SVR4, but it has its own version
# number series starting with 2...
@@ -998,27 +1040,27 @@ EOF
# I just have to hope. -- rms.
# Use sysv4.2uw... so that sysv4* matches it.
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
- exit 0 ;;
+ exit ;;
i*86:OS/2:*:*)
# If we were able to find `uname', then EMX Unix compatibility
# is probably installed.
echo ${UNAME_MACHINE}-pc-os2-emx
- exit 0 ;;
+ exit ;;
i*86:XTS-300:*:STOP)
echo ${UNAME_MACHINE}-unknown-stop
- exit 0 ;;
+ exit ;;
i*86:atheos:*:*)
echo ${UNAME_MACHINE}-unknown-atheos
- exit 0 ;;
- i*86:syllable:*:*)
+ exit ;;
+ i*86:syllable:*:*)
echo ${UNAME_MACHINE}-pc-syllable
- exit 0 ;;
+ exit ;;
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
echo i386-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
i*86:*DOS:*:*)
echo ${UNAME_MACHINE}-pc-msdosdjgpp
- exit 0 ;;
+ exit ;;
i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
@@ -1026,15 +1068,16 @@ EOF
else
echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
fi
- exit 0 ;;
- i*86:*:5:[78]*)
+ exit ;;
+ i*86:*:5:[678]*)
+ # UnixWare 7.x, OpenUNIX and OpenServer 6.
case `/bin/uname -X | grep "^Machine"` in
*486*) UNAME_MACHINE=i486 ;;
*Pentium) UNAME_MACHINE=i586 ;;
*Pent*|*Celeron) UNAME_MACHINE=i686 ;;
esac
echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
- exit 0 ;;
+ exit ;;
i*86:*:3.2:*)
if test -f /usr/options/cb.name; then
UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
@@ -1052,73 +1095,73 @@ EOF
else
echo ${UNAME_MACHINE}-pc-sysv32
fi
- exit 0 ;;
+ exit ;;
pc:*:*:*)
# Left here for compatibility:
# uname -m prints for DJGPP always 'pc', but it prints nothing about
# the processor, so we play safe by assuming i386.
echo i386-pc-msdosdjgpp
- exit 0 ;;
+ exit ;;
Intel:Mach:3*:*)
echo i386-pc-mach3
- exit 0 ;;
+ exit ;;
paragon:*:*:*)
echo i860-intel-osf1
- exit 0 ;;
+ exit ;;
i860:*:4.*:*) # i860-SVR4
if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
else # Add other i860-SVR4 vendors below as they are discovered.
echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
fi
- exit 0 ;;
+ exit ;;
mini*:CTIX:SYS*5:*)
# "miniframe"
echo m68010-convergent-sysv
- exit 0 ;;
+ exit ;;
mc68k:UNIX:SYSTEM5:3.51m)
echo m68k-convergent-sysv
- exit 0 ;;
+ exit ;;
M680?0:D-NIX:5.3:*)
echo m68k-diab-dnix
- exit 0 ;;
+ exit ;;
M68*:*:R3V[5678]*:*)
- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
+ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
OS_REL=''
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && echo i486-ncr-sysv4.3${OS_REL} && exit 0
+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && echo i486-ncr-sysv4 && exit 0 ;;
+ && { echo i486-ncr-sysv4; exit; } ;;
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
echo m68k-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
mc68030:UNIX_System_V:4.*:*)
echo m68k-atari-sysv4
- exit 0 ;;
+ exit ;;
TSUNAMI:LynxOS:2.*:*)
echo sparc-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
rs6000:LynxOS:2.*:*)
echo rs6000-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
echo powerpc-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
SM[BE]S:UNIX_SV:*:*)
echo mips-dde-sysv${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
RM*:ReliantUNIX-*:*:*)
echo mips-sni-sysv4
- exit 0 ;;
+ exit ;;
RM*:SINIX-*:*:*)
echo mips-sni-sysv4
- exit 0 ;;
+ exit ;;
*:SINIX-*:*:*)
if uname -p 2>/dev/null >/dev/null ; then
UNAME_MACHINE=`(uname -p) 2>/dev/null`
@@ -1126,69 +1169,81 @@ EOF
else
echo ns32k-sni-sysv
fi
- exit 0 ;;
+ exit ;;
PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
# says <Richard.M.Bartel(a)ccMail.Census.GOV>
echo i586-unisys-sysv4
- exit 0 ;;
+ exit ;;
*:UNIX_System_V:4*:FTX*)
# From Gerald Hewes <hewes(a)openmarket.com>.
# How about differentiating between stratus architectures? -djm
echo hppa1.1-stratus-sysv4
- exit 0 ;;
+ exit ;;
*:*:*:FTX*)
# From seanf(a)swdc.stratus.com.
echo i860-stratus-sysv4
- exit 0 ;;
+ exit ;;
+ i*86:VOS:*:*)
+ # From Paul.Green(a)stratus.com.
+ echo ${UNAME_MACHINE}-stratus-vos
+ exit ;;
*:VOS:*:*)
# From Paul.Green(a)stratus.com.
echo hppa1.1-stratus-vos
- exit 0 ;;
+ exit ;;
mc68*:A/UX:*:*)
echo m68k-apple-aux${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
news*:NEWS-OS:6*:*)
echo mips-sony-newsos6
- exit 0 ;;
+ exit ;;
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
if [ -d /usr/nec ]; then
echo mips-nec-sysv${UNAME_RELEASE}
else
echo mips-unknown-sysv${UNAME_RELEASE}
fi
- exit 0 ;;
+ exit ;;
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
echo powerpc-be-beos
- exit 0 ;;
+ exit ;;
BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
echo powerpc-apple-beos
- exit 0 ;;
+ exit ;;
BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
echo i586-pc-beos
- exit 0 ;;
+ exit ;;
SX-4:SUPER-UX:*:*)
echo sx4-nec-superux${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
SX-5:SUPER-UX:*:*)
echo sx5-nec-superux${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
SX-6:SUPER-UX:*:*)
echo sx6-nec-superux${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
+ SX-7:SUPER-UX:*:*)
+ echo sx7-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-8:SUPER-UX:*:*)
+ echo sx8-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-8R:SUPER-UX:*:*)
+ echo sx8r-nec-superux${UNAME_RELEASE}
+ exit ;;
Power*:Rhapsody:*:*)
echo powerpc-apple-rhapsody${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:Rhapsody:*:*)
echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:Darwin:*:*)
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
case $UNAME_PROCESSOR in
- *86) UNAME_PROCESSOR=i686 ;;
unknown) UNAME_PROCESSOR=powerpc ;;
esac
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*)
UNAME_PROCESSOR=`uname -p`
if test "$UNAME_PROCESSOR" = "x86"; then
@@ -1196,25 +1251,25 @@ EOF
UNAME_MACHINE=pc
fi
echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:QNX:*:4*)
echo i386-pc-qnx
- exit 0 ;;
+ exit ;;
NSE-?:NONSTOP_KERNEL:*:*)
echo nse-tandem-nsk${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
NSR-?:NONSTOP_KERNEL:*:*)
echo nsr-tandem-nsk${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:NonStop-UX:*:*)
echo mips-compaq-nonstopux
- exit 0 ;;
+ exit ;;
BS2000:POSIX*:*:*)
echo bs2000-siemens-sysv
- exit 0 ;;
+ exit ;;
DS/*:UNIX_System_V:*:*)
echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:Plan9:*:*)
# "uname -m" is not consistent, so use $cputype instead. 386
# is converted to i386 for consistency with other x86
@@ -1225,41 +1280,47 @@ EOF
UNAME_MACHINE="$cputype"
fi
echo ${UNAME_MACHINE}-unknown-plan9
- exit 0 ;;
+ exit ;;
*:TOPS-10:*:*)
echo pdp10-unknown-tops10
- exit 0 ;;
+ exit ;;
*:TENEX:*:*)
echo pdp10-unknown-tenex
- exit 0 ;;
+ exit ;;
KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
echo pdp10-dec-tops20
- exit 0 ;;
+ exit ;;
XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
echo pdp10-xkl-tops20
- exit 0 ;;
+ exit ;;
*:TOPS-20:*:*)
echo pdp10-unknown-tops20
- exit 0 ;;
+ exit ;;
*:ITS:*:*)
echo pdp10-unknown-its
- exit 0 ;;
+ exit ;;
SEI:*:*:SEIUX)
echo mips-sei-seiux${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:DragonFly:*:*)
echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
- exit 0 ;;
+ exit ;;
*:*VMS:*:*)
UNAME_MACHINE=`(uname -p) 2>/dev/null`
case "${UNAME_MACHINE}" in
- A*) echo alpha-dec-vms && exit 0 ;;
- I*) echo ia64-dec-vms && exit 0 ;;
- V*) echo vax-dec-vms && exit 0 ;;
+ A*) echo alpha-dec-vms ; exit ;;
+ I*) echo ia64-dec-vms ; exit ;;
+ V*) echo vax-dec-vms ; exit ;;
esac ;;
*:XENIX:*:SysV)
echo i386-pc-xenix
- exit 0 ;;
+ exit ;;
+ i*86:skyos:*:*)
+ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+ exit ;;
+ i*86:rdos:*:*)
+ echo ${UNAME_MACHINE}-pc-rdos
+ exit ;;
esac
#echo '(No uname command or uname output not recognized.)' 1>&2
@@ -1291,7 +1352,7 @@ main ()
#endif
#if defined (__arm) && defined (__acorn) && defined (__unix)
- printf ("arm-acorn-riscix"); exit (0);
+ printf ("arm-acorn-riscix\n"); exit (0);
#endif
#if defined (hp300) && !defined (hpux)
@@ -1380,11 +1441,12 @@ main ()
}
EOF
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
+ { echo "$SYSTEM_NAME"; exit; }
# Apollos put the system type in the environment.
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
# Convex versions that predate uname can use getsysinfo(1)
@@ -1393,22 +1455,22 @@ then
case `getsysinfo -f cpu_type` in
c1*)
echo c1-convex-bsd
- exit 0 ;;
+ exit ;;
c2*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
- exit 0 ;;
+ exit ;;
c34*)
echo c34-convex-bsd
- exit 0 ;;
+ exit ;;
c38*)
echo c38-convex-bsd
- exit 0 ;;
+ exit ;;
c4*)
echo c4-convex-bsd
- exit 0 ;;
+ exit ;;
esac
fi
@@ -1419,7 +1481,9 @@ the operating system you are using. It i
the operating system you are using. It is advised that you
download the most up to date version of the config scripts from
- ftp://ftp.gnu.org/pub/gnu/config/
+ http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.g...
+and
+ http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
If the version you run ($0) is already up to date, please
send the following data and any information you think might be
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 config.sub
--- a/config.sub Mon Dec 24 15:02:36 2007 +0100
+++ b/config.sub Mon Dec 24 15:04:01 2007 +0100
@@ -1,9 +1,10 @@
#! /bin/sh
# Configuration validation subroutine script.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-
-timestamp='2005-02-10'
+# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
+# Inc.
+
+timestamp='2007-12-05'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
@@ -21,13 +22,14 @@ timestamp='2005-02-10'
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
+
# Please send patches to <config-patches(a)gnu.org>. Submit a context
# diff and a properly formatted ChangeLog entry.
@@ -83,11 +85,11 @@ while test $# -gt 0 ; do
while test $# -gt 0 ; do
case $1 in
--time-stamp | --time* | -t )
- echo "$timestamp" ; exit 0 ;;
+ echo "$timestamp" ; exit ;;
--version | -v )
- echo "$version" ; exit 0 ;;
+ echo "$version" ; exit ;;
--help | --h* | -h )
- echo "$usage"; exit 0 ;;
+ echo "$usage"; exit ;;
-- ) # Stop option processing
shift; break ;;
- ) # Use stdin as input.
@@ -99,7 +101,7 @@ while test $# -gt 0 ; do
*local*)
# First pass through any local machine types.
echo $1
- exit 0;;
+ exit ;;
* )
break ;;
@@ -118,8 +120,9 @@ esac
# Here we must recognize all the valid KERNEL-OS combinations.
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
- nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \
- kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
+ nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
+ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
+ storm-chaos* | os2-emx* | rtmk-nova*)
os=-$maybe_os
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
;;
@@ -170,6 +173,10 @@ case $os in
-hiux*)
os=-hiuxwe2
;;
+ -sco6)
+ os=-sco5v6
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
-sco5)
os=-sco3.2v5
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
@@ -183,6 +190,10 @@ case $os in
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-sco3.2v[4-9]*)
+ # Don't forget version if it is 3.2v4 or newer.
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco5v6*)
# Don't forget version if it is 3.2v4 or newer.
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
@@ -230,14 +241,16 @@ case $basic_machine in
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
| am33_2.0 \
- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
+ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
+ | bfin \
| c4x | clipper \
| d10v | d30v | dlx | dsp16xx \
- | fr30 | frv \
+ | fido | fr30 | frv \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \
- | m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \
+ | m32c | m32r | m32rle | m68000 | m68k | m88k \
+ | maxq | mb | microblaze | mcore | mep \
| mips | mipsbe | mipseb | mipsel | mipsle \
| mips16 \
| mips64 | mips64el \
@@ -246,6 +259,7 @@ case $basic_machine in
| mips64vr4100 | mips64vr4100el \
| mips64vr4300 | mips64vr4300el \
| mips64vr5000 | mips64vr5000el \
+ | mips64vr5900 | mips64vr5900el \
| mipsisa32 | mipsisa32el \
| mipsisa32r2 | mipsisa32r2el \
| mipsisa64 | mipsisa64el \
@@ -254,20 +268,24 @@ case $basic_machine in
| mipsisa64sr71k | mipsisa64sr71kel \
| mipstx39 | mipstx39el \
| mn10200 | mn10300 \
+ | mt \
| msp430 \
+ | nios | nios2 \
| ns16k | ns32k \
- | openrisc | or32 \
+ | or32 \
| pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
| pyramid \
- | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
+ | score \
+ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
| sh64 | sh64le \
- | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \
- | strongarm \
+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+ | spu | strongarm \
| tahoe | thumb | tic4x | tic80 | tron \
| v850 | v850e \
| we32k \
- | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
+ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
| z8k)
basic_machine=$basic_machine-unknown
;;
@@ -277,6 +295,9 @@ case $basic_machine in
os=-none
;;
m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+ ;;
+ ms1)
+ basic_machine=mt-unknown
;;
# We use `pc' rather than `unknown'
@@ -297,18 +318,18 @@ case $basic_machine in
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
- | avr-* \
- | bs2000-* \
+ | avr-* | avr32-* \
+ | bfin-* | bs2000-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
| clipper-* | craynv-* | cydra-* \
| d10v-* | d30v-* | dlx-* \
| elxsi-* \
- | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
+ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
| h8300-* | h8500-* \
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
| i*86-* | i860-* | i960-* | ia64-* \
| ip2k-* | iq2000-* \
- | m32r-* | m32rle-* \
+ | m32c-* | m32r-* | m32rle-* \
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
| m88110-* | m88k-* | maxq-* | mcore-* \
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
@@ -319,6 +340,7 @@ case $basic_machine in
| mips64vr4100-* | mips64vr4100el-* \
| mips64vr4300-* | mips64vr4300el-* \
| mips64vr5000-* | mips64vr5000el-* \
+ | mips64vr5900-* | mips64vr5900el-* \
| mipsisa32-* | mipsisa32el-* \
| mipsisa32r2-* | mipsisa32r2el-* \
| mipsisa64-* | mipsisa64el-* \
@@ -327,26 +349,33 @@ case $basic_machine in
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
| mipstx39-* | mipstx39el-* \
| mmix-* \
+ | mt-* \
| msp430-* \
+ | nios-* | nios2-* \
| none-* | np1-* | ns16k-* | ns32k-* \
| orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
| pyramid-* \
| romp-* | rs6000-* \
- | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
+ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
- | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
- | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
+ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
+ | sparclite-* \
+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
| tahoe-* | thumb-* \
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
| tron-* \
| v850-* | v850e-* | vax-* \
| we32k-* \
- | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
- | xstormy16-* | xtensa-* \
+ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
+ | xstormy16-* | xtensa*-* \
| ymp-* \
| z8k-*)
+ ;;
+ # Recognize the basic CPU types without company name, with glob match.
+ xtensa*)
+ basic_machine=$basic_machine-unknown
;;
# Recognize the various machine names and aliases which stand
# for a CPU type and a company and sometimes even an OS.
@@ -418,6 +447,14 @@ case $basic_machine in
basic_machine=ns32k-sequent
os=-dynix
;;
+ blackfin)
+ basic_machine=bfin-unknown
+ os=-linux
+ ;;
+ blackfin-*)
+ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+ os=-linux
+ ;;
c90)
basic_machine=c90-cray
os=-unicos
@@ -450,8 +487,8 @@ case $basic_machine in
basic_machine=craynv-cray
os=-unicosmp
;;
- cr16c)
- basic_machine=cr16c-unknown
+ cr16)
+ basic_machine=cr16-unknown
os=-elf
;;
crds | unos)
@@ -643,6 +680,14 @@ case $basic_machine in
basic_machine=m68k-isi
os=-sysv
;;
+ m68knommu)
+ basic_machine=m68k-unknown
+ os=-linux
+ ;;
+ m68knommu-*)
+ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+ os=-linux
+ ;;
m88k-omron*)
basic_machine=m88k-omron
;;
@@ -658,6 +703,10 @@ case $basic_machine in
basic_machine=i386-pc
os=-mingw32
;;
+ mingw32ce)
+ basic_machine=arm-unknown
+ os=-mingw32ce
+ ;;
miniframe)
basic_machine=m68000-convergent
;;
@@ -682,6 +731,9 @@ case $basic_machine in
msdos)
basic_machine=i386-pc
os=-msdos
+ ;;
+ ms1-*)
+ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
;;
mvs)
basic_machine=i370-ibm
@@ -758,9 +810,8 @@ case $basic_machine in
basic_machine=hppa1.1-oki
os=-proelf
;;
- or32 | or32-*)
+ openrisc | openrisc-*)
basic_machine=or32-unknown
- os=-coff
;;
os400)
basic_machine=powerpc-ibm
@@ -782,6 +833,14 @@ case $basic_machine in
basic_machine=i860-intel
os=-osf
;;
+ parisc)
+ basic_machine=hppa-unknown
+ os=-linux
+ ;;
+ parisc-*)
+ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+ os=-linux
+ ;;
pbd)
basic_machine=sparc-tti
;;
@@ -790,6 +849,12 @@ case $basic_machine in
;;
pc532 | pc532-*)
basic_machine=ns32k-pc532
+ ;;
+ pc98)
+ basic_machine=i386-pc
+ ;;
+ pc98-*)
+ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
pentium | p5 | k5 | k6 | nexgen | viac3)
basic_machine=i586-pc
@@ -847,6 +912,10 @@ case $basic_machine in
basic_machine=i586-unknown
os=-pw32
;;
+ rdos)
+ basic_machine=i386-pc
+ os=-rdos
+ ;;
rom68k)
basic_machine=m68k-rom68k
os=-coff
@@ -873,6 +942,10 @@ case $basic_machine in
sb1el)
basic_machine=mipsisa64sb1el-unknown
;;
+ sde)
+ basic_machine=mipsisa32-sde
+ os=-elf
+ ;;
sei)
basic_machine=mips-sei
os=-seiux
@@ -883,6 +956,9 @@ case $basic_machine in
sh)
basic_machine=sh-hitachi
os=-hms
+ ;;
+ sh5el)
+ basic_machine=sh5le-unknown
;;
sh64)
basic_machine=sh64-unknown
@@ -1086,13 +1162,10 @@ case $basic_machine in
we32k)
basic_machine=we32k-att
;;
- sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
+ sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
basic_machine=sh-unknown
;;
- sh64)
- basic_machine=sh64-unknown
- ;;
- sparc | sparcv8 | sparcv9 | sparcv9b)
+ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
basic_machine=sparc-sun
;;
cydra)
@@ -1165,20 +1238,23 @@ case $os in
| -aos* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
- | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+ | -openbsd* | -solidbsd* \
| -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -chorusos* | -chorusrdb* \
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \
+ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
+ | -uxpv* | -beos* | -mpeix* | -udk* \
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
- | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*)
+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
@@ -1196,7 +1272,7 @@ case $os in
os=`echo $os | sed -e 's|nto|nto-qnx|'`
;;
-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
- | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
| -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
;;
-mac*)
@@ -1330,6 +1406,12 @@ else
# system, and we'll never get to this point.
case $basic_machine in
+ score-*)
+ os=-elf
+ ;;
+ spu-*)
+ os=-elf
+ ;;
*-acorn)
os=-riscix1.2
;;
@@ -1339,9 +1421,9 @@ case $basic_machine in
arm*-semi)
os=-aout
;;
- c4x-* | tic4x-*)
- os=-coff
- ;;
+ c4x-* | tic4x-*)
+ os=-coff
+ ;;
# This must come before the *-dec entry.
pdp10-*)
os=-tops20
@@ -1367,6 +1449,9 @@ case $basic_machine in
m68*-cisco)
os=-aout
;;
+ mep-*)
+ os=-elf
+ ;;
mips*-cisco)
os=-elf
;;
@@ -1384,6 +1469,9 @@ case $basic_machine in
;;
*-be)
os=-beos
+ ;;
+ *-haiku)
+ os=-haiku
;;
*-ibm)
os=-aix
@@ -1556,7 +1644,7 @@ esac
esac
echo $basic_machine$os
-exit 0
+exit
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 configure
--- a/configure Mon Dec 24 15:02:36 2007 +0100
+++ b/configure Mon Dec 24 15:04:01 2007 +0100
@@ -1521,7 +1521,7 @@ Run-time path-searching options
Specify location of last/legacy packages (instead of
default location; same as --with-legacy-packages).
--with-legacy-packages=DIR
- Specify location of late/legacy packages (instead of
+ Specify location of last/legacy packages (instead of
default location; same as --with-last-packages).
--with-package-path=PATH
Search path for package directories.
@@ -2842,7 +2842,7 @@ if test "${with_legacy_packages+set}" =
enableval="$with_legacy_packages"
withval="$with_legacy_packages"
cat >>confdefs.h <<\_ACEOF
-#define LATE_PACKAGE_DIRECTORIES_USER_DEFINED 1
+#define LAST_PACKAGE_DIRECTORIES_USER_DEFINED 1
_ACEOF
fi;
@@ -20122,6 +20122,195 @@ else
else
{ echo "Error:" "Unable to find libXft for --with-xft" >&2; exit 1; }
fi
+
+
+
+for ac_func in FcConfigGetRescanInterval
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
+int
+main ()
+{
+return $ac_func ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext &&
+ $as_test_x conftest$ac_exeext; then
+ eval "$as_ac_var=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ eval "$as_ac_var=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval echo '${'$as_ac_var'}'`
+ { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
+for ac_func in FcConfigSetRescanInterval
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
+int
+main ()
+{
+return $ac_func ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext &&
+ $as_test_x conftest$ac_exeext; then
+ eval "$as_ac_var=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ eval "$as_ac_var=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval echo '${'$as_ac_var'}'`
+ { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
with_fontconfig=yes
cat >>confdefs.h <<\_ACEOF
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 configure.ac
--- a/configure.ac Mon Dec 24 15:02:36 2007 +0100
+++ b/configure.ac Mon Dec 24 15:04:01 2007 +0100
@@ -666,8 +666,8 @@ XE_MERGED_ARG([last-packages],
AS_HELP_STRING([--with-last-packages=DIR],[Specify location of last/legacy packages (instead of default location; same as --with-legacy-packages).]),
[AC_DEFINE(LAST_PACKAGE_DIRECTORIES_USER_DEFINED)], [])
XE_MERGED_ARG([legacy-packages],
- AS_HELP_STRING([--with-legacy-packages=DIR],[Specify location of late/legacy packages (instead of default location; same as --with-last-packages).]),
- [AC_DEFINE(LATE_PACKAGE_DIRECTORIES_USER_DEFINED)], [])
+ AS_HELP_STRING([--with-legacy-packages=DIR],[Specify location of last/legacy packages (instead of default location; same as --with-last-packages).]),
+ [AC_DEFINE(LAST_PACKAGE_DIRECTORIES_USER_DEFINED)], [])
XE_MERGED_ARG([package-path],
AS_HELP_STRING([--with-package-path=PATH],[Search path for package directories.]),
[AC_DEFINE(PACKAGE_PATH_USER_DEFINED)], [])
@@ -3532,6 +3532,9 @@ extern Bool XRegisterIMInstantiateCallba
[XE_DIE(["Unable to find libfontconfig for --with-xft"])])
AC_CHECK_LIB(Xft, XftFontOpen, XE_PREPEND(-lXft, libs_x),
[XE_DIE(["Unable to find libXft for --with-xft"])])
+
+ AC_CHECK_FUNCS(FcConfigGetRescanInterval)
+ AC_CHECK_FUNCS(FcConfigSetRescanInterval)
dnl #### detect fontconfig properly!!!!
with_fontconfig=yes
AC_DEFINE(HAVE_FONTCONFIG)
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 etc/ChangeLog
--- a/etc/ChangeLog Mon Dec 24 15:02:36 2007 +0100
+++ b/etc/ChangeLog Mon Dec 24 15:04:01 2007 +0100
@@ -1,3 +1,8 @@ 2007-11-22 Vin Shelton <acs(a)xemacs.org
+2007-12-23 Stephen J. Turnbull <stephen(a)xemacs.org>
+
+ * bundled-packages/README: Documentation for bundled packages.
+ * bundled-packages/test.sh: Test suite for bundled packages.
+
2007-11-22 Vin Shelton <acs(a)xemacs.org>
* photos/vin.png:
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 lisp/ChangeLog
--- a/lisp/ChangeLog Mon Dec 24 15:02:36 2007 +0100
+++ b/lisp/ChangeLog Mon Dec 24 15:04:01 2007 +0100
@@ -1,3 +1,72 @@ 2007-12-09 Aidan Kehoe <kehoea@parhasa
+2007-12-22 Stephen J. Turnbull <stephen(a)xemacs.org>
+
+ Factor out lists of operators specially treated by `make-autoload'.
+
+ * autoload.el (autoload-make-autoload-operators): New.
+ (autoload-make-autoload-complex-operators): New.
+ (make-autoload): Use them.
+
+2007-12-18 Mike Sperber <mike(a)xemacs.org>
+
+ * autoload.el (process-one-lisp-autoload): Insert <immediate> into
+ the section header for immediate autoloads, to make sure the
+ upstream doesn't think there aren't any autoloads at all.
+
+2007-12-19 Mike Sperber <mike(a)xemacs.org>
+
+ * startup.el (ask-about-user-init-file-migration-p): Factored out
+ check.
+ (maybe-migrate-user-init-file):
+ (migrate-user-init-file): Don't do a backup of ~/.emacs anymore.
+ Instead, make only a manual adjustment of the file, if at all,
+ i.e. don't go through customize magic anymore.
+ (unmigrate-user-init-file): Don't use customize to set
+ `load-home-init-file' anymore.
+ (set-load-home-init-file): Add; performs the modification
+ previously done through customize.
+ (unmigrate-user-init-file): Use `set-load-home-init-file' instead
+ of customize.
+ (command-line-1): Only wait for the first event if we're not going
+ to ask about migration.
+
+2007-12-18 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * help.el (describe-function-1):
+ Give details of bindings for commands, taking into account
+ global-window-system-map and global-tty-map when bindings differ
+ compared to the global map.
+
+2007-12-17 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * subr.el (integer-to-bit-vector): New.
+ * subr.el (bit-vector-to-integer): New.
+ Provide naive implementations using the Lisp reader for these.
+
+2007-12-14 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * process.el (substitute-env-vars):
+ Merge an example from GNU's docstring.
+ * process.el (setenv):
+ Pass nil as the default abbrev table to the #'read-from-minibuffer
+ call, instead of passing the current value of the variable. Bug
+ introduced by an incorrect sync from GNU by Ben; reported by
+ Thomas Mittelstaedt in 47626712.40609(a)cadenas.de.
+
+ Document the #'set-time-zone-rule call when TZ is set. Push the
+ old value on to the beginning of setenv-history. (Both merged from
+ GNU.) Document that we don't do the coding-system frobbing at this
+ level that GNU does.
+
+ Provide a commented-out, sample implementation of GNU's
+ #'environment; document why I think we shouldn't include it.
+
+2007-12-11 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * mule/latin.el :
+ Specify tutorial-coding-system using dotted cons notation, since
+ it's not a list. Prevents an error in help-with-tutorial for these
+ languages.
+
2007-12-09 Aidan Kehoe <kehoea(a)parhasard.net>
* abbrev.el (write-abbrev-file):
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 lisp/autoload.el
--- a/lisp/autoload.el Mon Dec 24 15:02:36 2007 +0100
+++ b/lisp/autoload.el Mon Dec 24 15:04:01 2007 +0100
@@ -226,6 +226,20 @@ the section of autoloads for a file.")
;; Parsing the source file text.
;; Autoloads in C source differ from those in Lisp source.
+;; #### Eventually operators like defclass and defmethod (defined in an
+;; external package, EIEIO) may be factored out. Don't add operators here
+;; without discussing whether and how to do that on the developers' channel.
+(defvar autoload-make-autoload-operators
+ '(defun define-skeleton defmacro define-derived-mode define-generic-mode
+ easy-mmode-define-minor-mode easy-mmode-define-global-mode
+ define-minor-mode defun* defmacro* defclass defmethod)
+ "`defun'-like operators that use `autoload' to load the library.")
+
+(defvar autoload-make-autoload-complex-operators
+ '(easy-mmode-define-minor-mode easy-mmode-define-global-mode
+ define-minor-mode)
+ "`defun'-like operators to macroexpand before using `autoload'.")
+
(defun make-autoload (form file)
"Turn FORM into an autoload or defvar for source file FILE.
Returns nil if FORM is not a special autoload form (i.e. a function definition
@@ -233,8 +247,7 @@ or macro definition or a defcustom)."
(let ((car (car-safe form)) expand)
(cond
;; For complex cases, try again on the macro-expansion.
- ((and (memq car '(easy-mmode-define-global-mode
- easy-mmode-define-minor-mode define-minor-mode))
+ ((and (memq car autoload-make-autoload-complex-operators)
(setq expand (let ((load-file-name file)) (macroexpand form)))
(eq (car expand) 'progn)
(memq :autoload-end expand))
@@ -246,11 +259,7 @@ or macro definition or a defcustom)."
(cdr expand)))))
;; For special function-like operators, use the `autoload' function.
- ((memq car '(defun define-skeleton defmacro define-derived-mode
- define-generic-mode easy-mmode-define-minor-mode
- easy-mmode-define-global-mode
- define-minor-mode defun* defmacro*
- defclass defmethod)) ; from the EIEIO package
+ ((memq car autoload-make-autoload-operators)
(let* ((macrop (memq car '(defmacro defmacro*)))
(name (nth 1 form))
(body (nthcdr (get car 'doc-string-elt) form))
@@ -516,7 +525,8 @@ Updates AUTOLOADS-DONE and returns the n
(let ((begin (point)))
(forward-sexp)
(forward-line 1)
- (princ (buffer-substring begin (point)) outbuf)))
+ (princ (buffer-substring begin (point)) outbuf))
+ (setq autoloads-done (cons '<immediate> autoloads-done)))
(t
(princ (buffer-substring
(progn
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 lisp/help.el
--- a/lisp/help.el Mon Dec 24 15:02:36 2007 +0100
+++ b/lisp/help.el Mon Dec 24 15:04:01 2007 +0100
@@ -1484,7 +1484,53 @@ part of the documentation of internal su
(goto-char newp standard-output))
(unless (or (equal doc "")
(eq ?\n (aref doc (1- (length doc)))))
- (terpri)))))))))
+ (terpri)))
+ (when (commandp function)
+ (princ "\nInvoked with:\n")
+ (let ((global-binding
+ (where-is-internal function global-map))
+ (global-tty-binding
+ (where-is-internal function global-tty-map))
+ (global-window-system-binding
+ (where-is-internal function global-window-system-map)))
+ (if (or global-binding global-tty-binding
+ global-window-system-binding)
+ (if (and (equal global-binding
+ global-tty-binding)
+ (equal global-binding
+ global-window-system-binding))
+ (princ
+ (substitute-command-keys
+ (format "\n\\[%s]" function)))
+ (when (and global-window-system-binding
+ (not (equal global-window-system-binding
+ global-binding)))
+ (princ
+ (format
+ "\n%s\n -- under window systems\n"
+ (mapconcat #'key-description
+ global-window-system-binding
+ ", "))))
+ (when (and global-tty-binding
+ (not (equal global-tty-binding
+ global-binding)))
+ (princ
+ (format
+ "\n%s\n -- under TTYs\n"
+ (mapconcat #'key-description
+ global-tty-binding
+ ", "))))
+ (when global-binding
+ (princ
+ (format
+ "\n%s\n -- generally (that is, unless\
+ overridden by TTY- or
+ window-system-specific mappings)\n"
+ (mapconcat #'key-description
+ global-binding
+ ", ")))))
+ (princ (substitute-command-keys
+ (format "\n\\[%s]" function))))))))))))
;;; [Obnoxious, whining people who complain very LOUDLY on Usenet
;;; are binding this to keys.]
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 lisp/mule/latin.el
--- a/lisp/mule/latin.el Mon Dec 24 15:02:36 2007 +0100
+++ b/lisp/mule/latin.el Mon Dec 24 15:04:01 2007 +0100
@@ -907,7 +907,7 @@ Generic language environment for %s (%s)
(native-coding-system ,codesys)
,@(if locale `((locale . ,locale)))
,@(if tutorial `((tutorial . ,tutorial)
- (tutorial-coding-system ,codesys)))
+ (tutorial-coding-system . ,codesys)))
,@(if sample-text `((sample-text . ,sample-text)))
(input-method . ,(or input-method default-input))
(documentation . ,(format "\
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 lisp/process.el
--- a/lisp/process.el Mon Dec 24 15:02:36 2007 +0100
+++ b/lisp/process.el Mon Dec 24 15:04:01 2007 +0100
@@ -25,7 +25,7 @@
;; Boston, MA 02111-1307, USA.
;;; Synched up with: FSF 19.30, except for setenv/getenv (synched with FSF
-;;; 21.0.105).
+;;; 21.2.1).
;;; Authorship:
@@ -542,8 +542,10 @@ If it is also not t, RET does not exit i
`$FOO' where FOO is an environment variable name means to substitute
the value of that variable. The variable name should be terminated
with a character not a letter, digit or underscore; otherwise, enclose
-the entire variable name in braces. Use `$$' to insert a single
-dollar sign."
+the entire variable name in braces. For instance, in `ab$cd-x',
+`$cd' is treated as an environment variable.
+
+Use `$$' to insert a single dollar sign."
(let ((start 0))
(while (string-match
;; XEmacs change - FSF use their rx macro to generate this regexp
@@ -575,19 +577,40 @@ Interactively, the current value (if any
Interactively, the current value (if any) of the variable
appears at the front of the history list when you type in the new value.
-This function works by modifying `process-environment'."
+This function works by modifying `process-environment'.
+
+As a special case, setting variable `TZ' calls `set-time-zone-rule' as
+a side-effect."
(interactive
(if current-prefix-arg
(list (read-envvar-name "Clear environment variable: " 'exact) nil t)
- (let ((var (read-envvar-name "Set environment variable: " nil)))
+ (let* ((var (read-envvar-name "Set environment variable: " nil))
+ (value (getenv var)))
+ (when value
+ (push value setenv-history))
;; Here finally we specify the args to call setenv with.
(list var (read-from-minibuffer (format "Set %s to value: " var)
nil nil nil 'setenv-history
- (getenv var))))))
+ ;; XEmacs change; don't specify a
+ ;; default. (Nor an abbrev table.)
+ )))))
(if unset
(setq value nil)
(if substitute-env-vars
(setq value (substitute-env-vars value))))
+
+ ;; GNU fuck around with coding systems here. We do it at a much lower
+ ;; level; an equivalent of the following code of Handa's would be
+ ;; worthwhile here, though:
+
+; (let ((codings (find-coding-systems-string (concat variable value))))
+; (unless (or (eq 'undecided (car codings))
+; (memq (coding-system-base locale-coding-system) codings))
+; (error "Can't encode `%s=%s' with `locale-coding-system'"
+; variable (or value "")))))
+
+ ;; But then right now our find-coding-systems analogue is in packages.
+
(if (string-match "=" variable)
(error "Environment variable name `%s' contains `='" variable)
(let ((pattern (concat "\\`" (regexp-quote (concat variable "="))))
@@ -626,6 +649,25 @@ This function works by modifying `proces
; (message "%s" (if value value "Not set")))
; value))
+
+;; GNU have an #'environment function here, as of 2007-12-14. If someone
+;; actually uses it in the wild, this would suffice as an implementation:
+
+; (defun environment (&optional frame)
+; "Return a list of environment variables with their values.
+; Each entry in the list is a string of the form NAME=VALUE.
+;
+; Optional argument FRAME is ignored, for GNU compatibility.
+;
+; Non-ASCII characters look like Mojibake (that is, they are unreadable.)"
+; (loop
+; for entry in process-environment
+; collect (encode-coding-string entry 'native)))
+;
+
+;; but we shouldn't encourage that sort of ugliness and needless backwards
+;; incompatibility.
+
(provide 'env) ;; Yuck. Formerly the above were in env.el, which did this
;; provide.
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 lisp/startup.el
--- a/lisp/startup.el Mon Dec 24 15:02:36 2007 +0100
+++ b/lisp/startup.el Mon Dec 24 15:04:01 2007 +0100
@@ -849,12 +849,16 @@ the menubar)."
(or (find-user-init-directory-init-file init-directory)
(find-user-home-directory-init-file home-directory))))
+(defun ask-about-user-init-file-migration-p ()
+ "Check whether we want to ask the user if she wants to migrate the init file."
+ (and (not load-home-init-file)
+ (not (find-user-init-directory-init-file user-init-directory))
+ (stringp user-init-file)
+ (file-readable-p user-init-file)))
+
(defun maybe-migrate-user-init-file ()
"Ask user if she wants to migrate the init file(s) to new location."
- (if (and (not load-home-init-file)
- (not (find-user-init-directory-init-file user-init-directory))
- (stringp user-init-file)
- (file-readable-p user-init-file))
+ (if (ask-about-user-init-file-migration-p)
(if (with-output-to-temp-buffer (help-buffer-name nil)
(progn
(princ "XEmacs recommends that the initialization code in
@@ -881,7 +885,8 @@ perform the migration at any time with M
user-init-directory
"? "))))
- (let ((backup (migrate-user-init-file)))
+ (progn
+ (migrate-user-init-file)
(with-output-to-temp-buffer (help-buffer-name nil)
(progn
(princ "The initialization code has now been migrated to the ")
@@ -890,46 +895,63 @@ perform the migration at any time with M
For backwards compatibility with, for example, older versions of XEmacs,
XEmacs can create a special old-style .emacs file in your home
-directory which will load the relocated initialization code.")
- (if backup
- (progn
- (princ "\nMoreover, a backup of your old .emacs file was created as\n")
- (princ backup)
- (princ ".\n")))
+directory which will load the relocated initialization code.
+
+NOTE THAT THIS WILL OVERWRITE YOUR EXISTING .emacs FILE!")
(show-temp-buffer-in-current-frame standard-output)
(maybe-create-compatibility-dot-emacs))))
- (customize-save-variable 'load-home-init-file t))))
+ (set-load-home-init-file user-init-file t))))
(defun maybe-create-compatibility-dot-emacs ()
"Ask user if she wants to create a .emacs compatibility file."
- (if (yes-or-no-p-minibuf "Create compatibility .emacs? ")
+ (if (yes-or-no-p-minibuf "Create compatibility .emacs?")
(create-compatibility-dot-emacs)))
(defun migrate-user-init-file ()
- "Migrate the init file from the home directory.
-Return the name of backup file, if one was created."
+ "Migrate the init file from the home directory."
(interactive)
(if (not (file-exists-p user-init-directory))
(progn
(message "Creating %s directory..." user-init-directory)
(make-directory user-init-directory)))
(message "Migrating custom file...")
- (let* ((backup (concat user-init-file ".backup"))
- (backup-p
- (and (not (file-exists-p backup))
- (progn
- (copy-file user-init-file backup)
- t))))
- (customize-set-value 'load-home-init-file nil)
- (custom-migrate-custom-file (make-custom-file-name user-init-file
- 'force-new))
- (message "Moving init file...")
- (let ((new-user-init-file (expand-file-name user-init-file-base
- user-init-directory)))
- (rename-file user-init-file new-user-init-file)
- (setq user-init-file new-user-init-file))
- (message "Migration done.")
- (and backup-p backup)))
+ (set-load-home-init-file user-init-file nil)
+ (setq custom-file (make-custom-file-name user-init-file 'force-new))
+ (custom-save-all)
+ (message "Copying init file...")
+ (let ((new-user-init-file (expand-file-name user-init-file-base
+ user-init-directory)))
+ (copy-file user-init-file new-user-init-file)
+ (setq user-init-file new-user-init-file))
+ (message "Migration done."))
+
+(defun set-load-home-init-file (filename val)
+ "Put code in `filename' to set `load-home-init-file' to `val'.
+More precisely, remove the first `setq' form for `load-home-init-file',
+and replace it by (setq load-home-init-file t) if `val' is non-nil."
+ (save-excursion
+ (set-buffer (find-file-noselect filename))
+ (goto-char (point-min))
+ (condition-case nil
+ (block find-existing
+ (while (not (eobp))
+ (forward-sexp 1)
+ (backward-sexp 1)
+ (let* ((beginning (point))
+ (sexp (read (current-buffer))))
+ (if (and (consp sexp)
+ (consp (cdr sexp))
+ (eq 'setq (car sexp))
+ (eq 'load-home-init-file (cadr sexp)))
+ (progn
+ (forward-line 1)
+ (delete-region beginning (point))
+ (return-from find-existing nil))
+ (forward-sexp 1)))))
+ (error nil)) ; ignore if there are no sexprs in the file
+ (if val
+ (insert "(setq load-home-init-file t) ; don't load init file from ~/.xemacs/init.el\n"))
+ (save-buffer)))
(defun create-compatibility-dot-emacs ()
"Create .emacs compatibility file for migrated setup."
@@ -965,8 +987,9 @@ Return the name of backup file, if one w
(rename-file user-init-file target-file-name 'ok-if-already-exists)
(setq user-init-file target-file-name)
(let ((old-custom-file custom-file))
- (custom-migrate-custom-file target-file-name)
- (customize-save-variable 'load-home-init-file t)
+ (setq custom-file target-file-name)
+ (custom-save-all)
+ (set-load-home-init-file user-init-file t)
(delete-file old-custom-file))))
(defun load-user-init-file ()
@@ -1089,7 +1112,8 @@ a new format, when variables have change
;; Don't clobber a non-scratch buffer if init file
;; has selected it.
- (when (string= (buffer-name) "*scratch*")
+ (when (and (string= (buffer-name) "*scratch*")
+ (not (ask-about-user-init-file-migration-p)))
(unless (or inhibit-startup-message
(input-pending-p))
(let (tmout)
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 lisp/subr.el
--- a/lisp/subr.el Mon Dec 24 15:02:36 2007 +0100
+++ b/lisp/subr.el Mon Dec 24 15:04:01 2007 +0100
@@ -912,6 +912,26 @@ See also `equalp'."
;; foo-to-bar naming scheme, but CLtL2 has them, so they stay.
(define-function 'char-int 'char-to-int)
(define-function 'int-char 'int-to-char)
+
+;; XEmacs addition.
+(defun integer-to-bit-vector (integer &optional minlength)
+ "Return INTEGER converted to a bit vector.
+Optional argument MINLENGTH gives a minimum length for the returned vector.
+If MINLENGTH is not given, zero high-order bits will be ignored."
+ (check-argument-type #'integerp integer)
+ (setq minlength (or minlength 0))
+ (check-nonnegative-number minlength)
+ (read (format (format "#*%%0%db" minlength) integer)))
+
+;; XEmacs addition.
+(defun bit-vector-to-integer (bit-vector)
+ "Return BIT-VECTOR converted to an integer.
+If bignum support is available, BIT-VECTOR's length is unlimited.
+Otherwise the limit is the number of value bits in an Lisp integer. "
+ (check-argument-type #'bit-vector-p bit-vector)
+ (setq bit-vector (prin1-to-string bit-vector))
+ (aset bit-vector 1 ?b)
+ (read bit-vector))
(defun string-width (string)
"Return number of columns STRING occupies when displayed.
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 man/ChangeLog
--- a/man/ChangeLog Mon Dec 24 15:02:36 2007 +0100
+++ b/man/ChangeLog Mon Dec 24 15:04:01 2007 +0100
@@ -1,3 +1,12 @@ 2007-12-07 Ville Skyttä <scop(a)xemacs.o
+2007-12-17 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * lispref/strings.texi (Formatting Strings):
+ Document %b for binary output.
+
+2007-12-10 Ville Skyttä <scop(a)xemacs.org>
+
+ * internals/internals.texi: Spelling fixes.
+
2007-12-07 Ville Skyttä <scop(a)xemacs.org>
* beta.texi, emodules.texi, term.texi, termcap.texi, texinfo.texi,
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 man/internals/internals.texi
--- a/man/internals/internals.texi Mon Dec 24 15:02:36 2007 +0100
+++ b/man/internals/internals.texi Mon Dec 24 15:04:01 2007 +0100
@@ -947,21 +947,21 @@ Menus: Jamie Zawinski, someone at Lucid
@item
Scrollbars: Chuck Thompson, ??? (Lucid scrollbar)
@item
-Multi-device/device-independence work (console/device/etc methods): Ben Wing, prototype by chuck thompson
+Multi-device/device-independence work (console/device/etc methods): Ben Wing, prototype by Chuck Thompson
@item
Faces: first implementation, Jamie Zawinski; second, chuck; third, Ben Wing
@item
Fonts/colors: first implementation, Jamie Zawinski; further work, Ben Wing
@item
-Toolbars: implementation, chuck, much interface work, Ben Wing
-@item
-Gutters, tabs: andy piper
+Toolbars: implementation, Chuck, much interface work, Ben Wing
+@item
+Gutters, tabs: Andy Piper
@end itemize
@item Device subsystems
@itemize @minus
@item
-X Windows: Jamie Zawinksi, Ben Wing, others
+X Windows: Jamie Zawinski, Ben Wing, others
@item
GTK: William Perry, Malcolm Purvis
@item
@@ -975,7 +975,7 @@ Cygwin: Andy Piper
@item Misc
@itemize @minus
@item
-Configure: initial porting from fsf, Chuck Thompson; conversion to autoconf 2, much rewriting, Martin Buchholz
+Configure: initial porting from FSF, Chuck Thompson; conversion to autoconf 2, much rewriting, Martin Buchholz
@item
Most initialization-related code: Ben Wing
@item
@@ -1023,7 +1023,7 @@ and has attempted to be the "face" of XE
and has attempted to be the "face" of XEmacs on the newsgroups and
mailing lists.
@item
-Steve Youngs, Ville Skytta, and now Norbert Koch have taken turns
+Steve Youngs, Ville Skyttä¬ and now Norbert Koch have taken turns
maintaining the packages.
@item
Vin Shelton maintains the stable releases.
@@ -1037,7 +1037,7 @@ Testing - #### Norbert, Adrian, ???
@table @asis
@item Jamie Zawinski, Eric Benson, Matthieu Devin, Harlan Sexton
-These were the early creators of Lucid Emacs, the predecessor of Xemacs.
+These were the early creators of Lucid Emacs, the predecessor of XEmacs.
Jamie Zawinski was the primary maintainer and coder for Lucid Emacs,
active between early 1991 and June 1994. He presided over versions 19.0
through 19.10, and then abruptly left for Netscape. He wrote the
@@ -1054,44 +1054,44 @@ Active 1991 to 1993, author of much of t
Active 1991 to 1993, author of much of the current Lisp object scheme,
including Lrecords and LC records (added this support in 1993 to allow
for 28-bit pointers, which had previously been restricted to 26 bits.)
-Moved the minibuffer and abbreve code into Lisp, worked on the keymap
-code and did the initial synching between Xemacs and the first released
+Moved the minibuffer and abbrev code into Lisp, worked on the keymap
+code and did the initial synching between XEmacs and the first released
version of GNU Emacs version 19 in mid-1993.
@item Martin Buchholz
-Active 1995 to 2001, maintainer of Xemacs late 1999 to ?, author of the
+Active 1995 to 2001, maintainer of XEmacs late 1999 to ?, author of the
current configure support, mini optimizations to the byte interpreter,
many improvements to the case changing code and many bug fixes to the
process and system-specific code, also general spell checking and code
cleanliness guru.
@item Steve Baur
-Maintainer of Xemacs 1996 to 1999, responsible for many improvements to
-the Xemacs development process, for example, creation of the review
-board and arranging for Xemacs to be placed under CVS. Author of the
+Maintainer of XEmacs 1996 to 1999, responsible for many improvements to
+the XEmacs development process, for example, creation of the review
+board and arranging for XEmacs to be placed under CVS. Author of the
package code.
@item Chuck Thompson
Active January 1993 to June 1996, author of the current and previous
-versions of the redisplay code and maintainer of Xemacs from mid-1994
-to mid-1996. Creator of XEMacs.org. Also wrote the scrollbar code, the
+versions of the redisplay code and maintainer of XEmacs from mid-1994
+to mid-1996. Creator of xemacs.org. Also wrote the scrollbar code, the
original configure support, and prototype versions of the toolbar and
device code.
@item Ben Wing
Active April 1993 to April 1996 and February 2000 to present. Chief
-coder for Xemacs between 1994 and 1996. Ben Wing was never the
-maintainer of Xemacs, and as a result, is the author of more of the
-Xemacs specific code in Xemacs than anyone else. Author of the mule
+coder for XEmacs between 1994 and 1996. Ben Wing was never the
+maintainer of XEmacs, and as a result, is the author of more of the
+XEmacs specific code in XEmacs than anyone else. Author of the mule
support (Extense code), the glis-phonetically spelled-and specifiers
code most of the toolbars, and device distraction code, the error
checking code, the Lstream code, the bit vector, char-table, and
range-table code, much of the current Xt code, much, much of the events
code (including most of the TTY event code), some of the phase code, and
-numerous other aspects of the code. Also author of most of the Xemacs
-documentation including the internals manual and the Xemacs editions to
+numerous other aspects of the code. Also author of most of the XEmacs
+documentation including the internals manual and the XEmacs editions to
the Lisp reference manual, and responsible for much of the synching
-between Xemacs and GNU Emacs.
+between XEmacs and GNU Emacs.
@item Kyle Jones
Author of the minimal tag bits support, which allows for 32-bit
@@ -1160,13 +1160,13 @@ structures.
@item alloca.c
Inherited a long time ago from a prerelease version of GNU Emacs 19,
-kept in sync with more recent versions very few changes from Xemacs.
+kept in sync with more recent versions very few changes from XEmacs.
Most changes consist of converting the code to ANSI C, and fixing up the
-includes at the top of the file to follow Xemacs conventions.
+includes at the top of the file to follow XEmacs conventions.
@item alloca.s
Inherited almost unchanged from FSF kept in sync up through 19.30
-basically no changes for Xemacs.
+basically no changes for XEmacs.
@end table
@end ignore
@@ -1275,13 +1275,13 @@ transmitted/read by emacs (one or the ot
transmitted/read by emacs (one or the other) correctly.
The 4410 terminal description that I'm using defines up=M-[A
(it appears as ^[[A, with the initial ^[ as one character).
-Pressting cntrl-Q up_arrow while in emacs shows me the same thing.
+Pressing Ctrl-Q up_arrow while in emacs shows me the same thing.
On the vt100 the same thing happens but the terminal file says up=M-A
(it appears as ^[A). I've tried every other imaginable up= but get
the same results. I've also been unsuccessful writing a macro that
understands what my keyboard is saying.
-Any ideas on how I can get the arrow keys to do somethingt?
+Any ideas on how I can get the arrow keys to do something?
Anything? Thanks in advance.
--Bruce Burger AT&T-Information Systems Freehold, NJ
@@ -1751,7 +1751,7 @@ these same years. Steve Baur added the
these same years. Steve Baur added the package system in 1997 (?),
and Olivier Galibert also added the portable dumper support around
2000. Martin Buchholz took over from Steve Baur as release manager in
-late 1998 (?), and continued in this position through to eary 2000
+late 1998 (?), and continued in this position through to early 2000
(?), when Stephen Turnbull took it over. XEmacs has also been split
into stable and experimental branches since early 1999, and Vin
Shelton has been the release manager of the stable branches since the
@@ -4630,7 +4630,7 @@ Autoconf 2.59 divides the @file{configur
Autoconf 2.59 divides the @file{configure} options into those that
specify features (@samp{--enable}) and those that specify external
libraries (@samp{--with}). Many XEmacs options to not fall neatly into
-either of these catagories and so as a matter of policy all options can
+either of these categories and so as a matter of policy all options can
be specified by either method.
These merged options are declared with the @code{XE_MERGED_ARG} macro.
@@ -4660,7 +4660,7 @@ pre-defined values (if support for sets
@samp{--with-mail-locking=flock}.
Keyword options are defined with an expanded form of
-@samp{XE_MERGED_ARG} called @samp{XE_KEYWORD_ARG}, which taks 5
+@samp{XE_MERGED_ARG} called @samp{XE_KEYWORD_ARG}, which takes 5
parameters. The first 4 parameters are the same as original macro with
the exception that all of these four parameters are @strong{required}.
The @var{action-if-true} code is run after the argument list has been
@@ -5954,7 +5954,7 @@ a search-and-replace is done to change t
a search-and-replace is done to change type names and such. Some people
disagree with such changes, and certainly if done without good reason
will just lead to headaches. But it's important to keep the code clean
-and understable, and consistent naming goes a long way towards this.
+and understandable, and consistent naming goes a long way towards this.
An example of the right way to do this was the so-called "great integral
type renaming".
@@ -11328,7 +11328,7 @@ the actual multi-byte encoding.
the actual multi-byte encoding.
@end enumerate
- None of the pre-Unciode standard non-modal encodings meet all of these
+ None of the pre-Unicode standard non-modal encodings meet all of these
conditions. For example, EUC satisfies only (2) and (3), while
Shift-JIS and Big5 (not yet described) satisfy only (2). (All non-modal
encodings must satisfy (2), in order to be unambiguous.) UTF-8,
@@ -11515,7 +11515,7 @@ inside of DNS names.
inside of DNS names.
@end itemize
-Thus, we can imagine three levels in the representation of texual data:
+Thus, we can imagine three levels in the representation of textual data:
@example
series of characters -> series of textual units -> series of bytes
@@ -12095,7 +12095,7 @@ variable section:
variable section:
DECLARE_EISTRING (name);
- Declare a new Eistring and initialize it to the empy string. This
+ Declare a new Eistring and initialize it to the empty string. This
is a standard local variable declaration and can go anywhere in the
variable declaration section. NAME itself is declared as an
Eistring *, and its storage declared on the stack.
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 man/lispref/strings.texi
--- a/man/lispref/strings.texi Mon Dec 24 15:02:36 2007 +0100
+++ b/man/lispref/strings.texi Mon Dec 24 15:04:01 2007 +0100
@@ -714,6 +714,11 @@ integer, using lowercase letters.
@cindex integer to hexadecimal
Replace the specification with the base-sixteen representation of an
integer, using uppercase letters.
+
+@item %b
+@cindex integer to binary
+Replace the specification with the base-two representation of an
+integer.
@item %c
Replace the specification with the character which is the value given.
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 src/ChangeLog
--- a/src/ChangeLog Mon Dec 24 15:02:36 2007 +0100
+++ b/src/ChangeLog Mon Dec 24 15:04:01 2007 +0100
@@ -4,6 +4,117 @@ 2007-12-24 Aidan Kehoe <kehoea@parhasa
* event-xlike-inc.c (gtk_keysym_to_character):
Unify the typed character if possible, following the current value
for the unicode precedence list.
+
+2007-12-24 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * symbols.c (Fintern_soft):
+ Provide a new optional third argument, DEFAULT, for those who want
+ to check if "nil" is a symbol or not. (More realistically, general
+ code that may get handed "nil" should probably use this argument.)
+
+2007-12-23 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * objects-tty.c (tty_find_charset_font):
+ * objects-msw.c (mswindows_font_spec_matches_charset_stage_2):
+ * objects-msw.c (mswindows_font_spec_matches_charset_stage_1):
+ * objects-xlike-inc.c (x_font_spec_matches_charset):
+ * objects-xlike-inc.c (gtk_font_spec_matches_charset):
+ If the charset is not specified when calling the
+ font_spec_matches_charset device method, its value is Qnil, not
+ Qunbound. See
+ http://mid.gmane.org/E1EfbmW-00029r-5G@iwi191.iwi.uni-sb.de and
+ Ben Wing's patch of
+ http://mid.gmane.org/439FA06B.3090007@xemacs.org.
+
+2007-12-22 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * database.c (Fopen_database):
+ Actually respect the CODESYS argument; don't require EOL
+ autodetection from the coding system, because autodetection mostly
+ fails with reads of small amounts of data. It might be possible
+ with an implicit #'map-database on open, though I don't think
+ that's a great idea.
+ * database.c (print_database):
+ Give the coding system used for text conversion when printing a
+ database object.
+
+2007-12-20 Jerry James <james(a)xemacs.org>
+
+ * sound.c: Fix unused parameter warnings when HAVE_ALSA_SOUND.
+
+2007-12-18 Kenny Chien <Kenny.Chien(a)morganstanley.com>
+
+ * extw-Xt.c (extw_wait_for_response): Don't use undocumented
+ internal Xt functions, avoiding inconsistent behavior between
+ different Solaris versions.
+
+2007-12-18 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * symbols.c (Fspecial_form_p):
+ Following commentary from Jerry James, don't error if not passed a
+ subr.
+
+ Flesh out the docstring; give details of what a subr is, what a
+ special form is, and why one should probably not write special
+ forms oneself.
+
+2007-12-18 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * symbols.c (Fspecial_form_p): New.
+ For the use of advice.el, and perhaps other files; is SUBR a
+ special form?
+
+2007-12-17 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * doprnt.c (emacs_doprnt_1):
+ Add support for formatted printing of both longs and bignums as
+ base 2.
+ * editfns.c (Fformat):
+ Document the new %b escape for #'format.
+ * lisp.h:
+ Make ulong_to_bit_string available beside long_to_string.
+ * lread.c:
+ Fix a bug where the integer base was being ignored in certain
+ contexts; thank you Sebastian Freundt. This is necessary for
+ correct behaviour of #'integer-to-bit-vector and
+ #'bit-vector-to-integer, just added to subr.el
+ * print.c (ulong_to_bit_string): New.
+ Analagous to long_to_string, but used all the time when %b is
+ encountered, since we can't pass that to sprintf.
+
+2007-12-12 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * config.h.in:
+ Make the results of the checks for
+ FcConfigGetRescanInterval, FcConfigSetRescanInterval
+ available.
+ * font-mgr.h:
+ If FcConfigSetRescanInterval and FcConfigGetRescanInterval are not
+ available as functions, #define them to map to their old
+ misspelled names.
+ * font-mgr.c (Ffc_config_get_rescan_interval):
+ * font-mgr.c (Ffc_config_set_rescan_interval):
+ Use the correct spelling in
+ FcConfigGetRescanInterval, FcConfigSetRescanInterval
+
+2007-12-11 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * glyphs-eimage.c:
+ Merge Ron Isaacson's patch of
+ 3ggprxj7ifh.wl_Ron.Isaacson(a)morganstanley.com , originally from
+ Gennady Khokhorin. Prevents library incompatibilities on Win32.
+
+2007-12-11 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * fileio.c (Fsubstitute_in_file_name):
+ On encountering non-existent environment variables or incorrect
+ syntax for specifying environment variables (as is routine on
+ Windows) don't error, instead pass the original strings through.
+
+2007-12-05 Stephen J. Turnbull <stephen(a)xemacs.org>
+
+ * search.c (simple_search): Fix underrun in reverse search.
+ (search_buffer): Clarify decision to use boyer_moore or not.
2007-12-06 Aidan Kehoe <kehoea(a)parhasard.net>
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 src/config.h.in
--- a/src/config.h.in Mon Dec 24 15:02:36 2007 +0100
+++ b/src/config.h.in Mon Dec 24 15:04:01 2007 +0100
@@ -208,6 +208,14 @@ things are arranged in config.h.in. In
/* Compile with support for fontconfig? */
#undef HAVE_FONTCONFIG
+
+/* Was the spelling of FcConfigGetRescanInterval corrected in this
+ fontconfig version? */
+#undef HAVE_FCCONFIGGETRESCANINTERVAL
+
+/* Was the spelling of FcConfigSetRescanInterval corrected in this
+ fontconfig version? */
+#undef HAVE_FCCONFIGSETRESCANINTERVAL
/* Compile with support for Xft? */
#undef USE_XFT
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 src/database.c
--- a/src/database.c Mon Dec 24 15:02:36 2007 +0100
+++ b/src/database.c Mon Dec 24 15:04:01 2007 +0100
@@ -31,6 +31,7 @@ Boston, MA 02111-1307, USA. */
#include "sysfile.h"
#include "buffer.h"
+#include "file-coding.h"
#ifndef HAVE_DATABASE
#error HAVE_DATABASE not defined!!
@@ -181,11 +182,16 @@ print_database (Lisp_Object obj, Lisp_Ob
3, db->fname, db->funcs->get_type (db),
db->funcs->get_subtype (db));
- write_fmt_string (printcharfun, "%s) 0x%x>",
+ write_fmt_string (printcharfun, "%s) ",
(!DATABASE_LIVE_P (db) ? "closed" :
(db->access_ & O_WRONLY) ? "writeonly" :
- (db->access_ & O_RDWR) ? "readwrite" : "readonly"),
- db->header.uid);
+ (db->access_ & O_RDWR) ? "readwrite" : "readonly"));
+
+ write_fmt_string_lisp (printcharfun, "coding: %s ", 1,
+ XSYMBOL_NAME (XCODING_SYSTEM_NAME
+ (db->coding_system)));
+
+ write_fmt_string (printcharfun, "0x%x>", db->header.uid);
}
static void
@@ -654,7 +660,7 @@ variable `database-coding-system'.
if (NILP (codesys))
codesys = Vdatabase_coding_system;
- codesys = get_coding_system_for_text_file (Vdatabase_coding_system, 1);
+ codesys = get_coding_system_for_text_file (codesys, 0);
#ifdef HAVE_DBM
if (NILP (type) || EQ (type, Qdbm))
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 src/doprnt.c
--- a/src/doprnt.c Mon Dec 24 15:02:36 2007 +0100
+++ b/src/doprnt.c Mon Dec 24 15:04:01 2007 +0100
@@ -34,7 +34,7 @@ Boston, MA 02111-1307, USA. */
#include "lstream.h"
static const char * const valid_flags = "-+ #0";
-static const char * const valid_converters = "dic" "ouxX" "feEgG" "sS"
+static const char * const valid_converters = "dic" "ouxX" "feEgG" "sS" "b"
#if defined(HAVE_BIGNUM) || defined(HAVE_RATIO)
"npyY"
#endif
@@ -43,11 +43,11 @@ static const char * const valid_converte
#endif
;
static const char * const int_converters = "dic";
-static const char * const unsigned_int_converters = "ouxX";
+static const char * const unsigned_int_converters = "ouxXb";
static const char * const double_converters = "feEgG";
static const char * const string_converters = "sS";
#if defined(HAVE_BIGNUM) || defined(HAVE_RATIO)
-static const char * const bignum_converters = "npyY";
+static const char * const bignum_converters = "npyY\337";
#endif
#ifdef HAVE_BIGFLOAT
static const char * const bigfloat_converters = "FhHkK";
@@ -665,6 +665,7 @@ emacs_doprnt_1 (Lisp_Object stream, cons
case 'o': ch = 'p'; break;
case 'x': ch = 'y'; break;
case 'X': ch = 'Y'; break;
+ case 'b': ch = '\337'; break;
default: /* ch == 'u' */
if (strchr (unsigned_int_converters, ch) &&
ratio_sign (XRATIO_DATA (obj)) < 0)
@@ -684,6 +685,7 @@ emacs_doprnt_1 (Lisp_Object stream, cons
case 'o': ch = 'p'; break;
case 'x': ch = 'y'; break;
case 'X': ch = 'Y'; break;
+ case 'b': ch = '\337'; break;
default: /* ch == 'u' */
if (strchr (unsigned_int_converters, ch) &&
bignum_sign (XBIGNUM_DATA (obj)) < 0)
@@ -733,13 +735,21 @@ emacs_doprnt_1 (Lisp_Object stream, cons
#if defined(HAVE_BIGNUM) || defined(HAVE_RATIO)
else if (strchr (bignum_converters, ch))
{
+ int base = 16;
+
+ if (ch == 'n')
+ base = 10;
+ else if (ch == 'p')
+ base = 8;
+ else if (ch == '\337')
+ base = 2;
+
#ifdef HAVE_BIGNUM
if (BIGNUMP (arg.obj))
{
Ibyte *text_to_print =
(Ibyte *) bignum_to_string (XBIGNUM_DATA (arg.obj),
- ch == 'n' ? 10 :
- (ch == 'p' ? 8 : 16));
+ base);
doprnt_2 (stream, text_to_print,
strlen ((const char *) text_to_print),
spec->minwidth, -1, spec->minus_flag,
@@ -751,9 +761,7 @@ emacs_doprnt_1 (Lisp_Object stream, cons
if (RATIOP (arg.obj))
{
Ibyte *text_to_print =
- (Ibyte *) ratio_to_string (XRATIO_DATA (arg.obj),
- ch == 'n' ? 10 :
- (ch == 'p' ? 8 : 16));
+ (Ibyte *) ratio_to_string (XRATIO_DATA (arg.obj), base);
doprnt_2 (stream, text_to_print,
strlen ((const char *) text_to_print),
spec->minwidth, -1, spec->minus_flag,
@@ -774,6 +782,15 @@ emacs_doprnt_1 (Lisp_Object stream, cons
xfree (text_to_print, Ibyte *);
}
#endif /* HAVE_BIGFLOAT */
+ else if (ch == 'b')
+ {
+ Ascbyte *text_to_print = alloca_array (char, SIZEOF_LONG * 8 + 1);
+
+ ulong_to_bit_string (text_to_print, arg.ul);
+ doprnt_2 (stream, (Ibyte *)text_to_print,
+ qxestrlen ((Ibyte *)text_to_print),
+ spec->minwidth, -1, spec->minus_flag, spec->zero_flag);
+ }
else
{
Ascbyte *text_to_print;
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 src/editfns.c
--- a/src/editfns.c Mon Dec 24 15:02:36 2007 +0100
+++ b/src/editfns.c Mon Dec 24 15:04:01 2007 +0100
@@ -2155,7 +2155,7 @@ It may contain %-sequences meaning to su
%s means print all objects as-is, using `princ'.
%S means print all objects as s-expressions, using `prin1'.
%d or %i means print as an integer in decimal (%o octal, %x lowercase hex,
- %X uppercase hex).
+ %X uppercase hex, %b binary).
%c means print as a single character.
%f means print as a floating-point number in fixed notation (e.g. 785.200).
%e or %E means print as a floating-point number in scientific notation
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 src/extw-Xt.c
--- a/src/extw-Xt.c Mon Dec 24 15:02:36 2007 +0100
+++ b/src/extw-Xt.c Mon Dec 24 15:04:01 2007 +0100
@@ -37,38 +37,8 @@ static void fatal (char *msg);
#include <X11/IntrinsicP.h>
#include <stdlib.h>
#include <stdio.h>
+#include "compiler.h"
#include "extw-Xt.h"
-
-/* Yeah, that's portable!
-
- Why the hell didn't the Xt people just export this function
- for real? */
-
-#if (XT_REVISION > 5)
-EXTERN_C int
-_XtWaitForSomething (XtAppContext app, _XtBoolean ignoreEvents,
- _XtBoolean ignoreTimers, _XtBoolean ignoreInputs,
- _XtBoolean ignoreSignals, _XtBoolean block,
-#ifdef XTHREADS
- _XtBoolean drop_lock,
-#endif
- unsigned long *howlong);
-
-# ifndef XTHREADS
-# define _XT_WAIT_FOR_SOMETHING(timers,inputs,events,block,howlong,appCtx) \
- _XtWaitForSomething (appCtx,events,timers,inputs,0,block,howlong)
-# else
-# define _XT_WAIT_FOR_SOMETHING(timers,inputs,events,block,howlong,appCtx) \
- _XtWaitForSomething (appCtx,events,timers,inputs,0,block,1,howlong)
-# endif
-#else
-EXTERN_C int
-_XtwaitForSomething (Boolean ignoreTimers, Boolean ignoreInputs,
- Boolean ignoreEvents, Boolean block,
- unsigned long *howlong, XtAppContext app);
-# define _XT_WAIT_FOR_SOMETHING(timers,inputs,events,block,howlong,appCtx) \
- _XtwaitForSomething (timers,inputs,events,block,howlong,appCtx)
-#endif
#ifdef DEBUG_WIDGET
@@ -181,60 +151,87 @@ extw_get_geometry_value(Display *display
#endif
}
-typedef struct {
- Widget w;
- unsigned long request_num;
- en_extw_notify type;
+typedef struct
+{
+ Widget w;
+ unsigned long request_num;
+ en_extw_notify type;
} QueryStruct;
/* check if an event is of the sort we're looking for */
static Bool
-isMine(Display *dpy, XEvent *event, char *arg)
-{
- QueryStruct *q = (QueryStruct *) arg;
- Widget w = q->w;
-
- if ( (dpy != XtDisplay(w)) || (event->xany.window != XtWindow(w)) ) {
- return FALSE;
- }
- if (event->xany.serial >= q->request_num) {
- if (event->type == ClientMessage &&
- event->xclient.message_type == a_EXTW_NOTIFY &&
- event->xclient.data.l[0] == 1 - extw_which_side &&
- (en_extw_notify) event->xclient.data.l[1] == q->type)
- return TRUE;
- }
- return FALSE;
+isMine(XEvent *event, QueryStruct *q)
+{
+ Widget w = q->w;
+
+ if ( (event->xany.display != XtDisplay(w)) || (event->xany.window != XtWindow(w)) )
+ {
+ return FALSE;
+ }
+ if (event->xany.serial >= q->request_num)
+ {
+ if (event->type == ClientMessage &&
+ event->xclient.message_type == a_EXTW_NOTIFY &&
+ event->xclient.data.l[0] == 1 - extw_which_side &&
+ event->xclient.data.l[1] == (int) q->type)
+ {
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+void responseTimeOut(XtPointer clientData, XtIntervalId * UNUSED (id))
+{
+ Bool *expired=(Bool *)clientData;
+ *expired=TRUE;
}
/* wait for a ClientMessage of the specified type from the other widget, or
- time-out. isMine() determines whether an event matches. Culled from
- Shell.c. */
+ time-out. isMine() determines whether an event matches.
+ Took out the call to _XtWaitForSomething and replaced it with public
+ Xt api's.
+*/
Bool
extw_wait_for_response (Widget w, XEvent *event, unsigned long request_num,
en_extw_notify type, unsigned long timeout)
{
XtAppContext app = XtWidgetToApplicationContext(w);
+ XtInputMask inputMask;
QueryStruct q;
-
- XFlush(XtDisplay(w));
+ Bool expired;
+ XtIntervalId id;
+
q.w = w;
q.request_num = request_num;
q.type = type;
-
- for(;;)
- {
- /*
- * look for match event
- */
- if (XCheckIfEvent (XtDisplay(w), event, isMine, (char*)&q))
- return TRUE;
- if (_XT_WAIT_FOR_SOMETHING (TRUE, TRUE, FALSE, TRUE, &timeout, app)
- != -1)
- continue;
- if (timeout == 0)
- return FALSE;
- }
-}
+ expired=FALSE;
+
+ id=XtAppAddTimeOut(app, timeout, responseTimeOut,&expired);
+ while (!expired)
+ {
+ inputMask=XtAppPending(app);
+ if (inputMask & XtIMXEvent)
+ {
+ XtAppNextEvent(app, event);
+ if (isMine(event,&q))
+ {
+ if (!expired) XtRemoveTimeOut(id);
+ return True;
+ }
+ else
+ {
+ /* Do Nothing and go back to waiting */
+ }
+ }
+ if (inputMask & XtIMTimer)
+ {
+ /* Process the expired timer */
+ XtAppProcessEvent(app,XtIMTimer);
+ }
+ }
+ /* Must have expired */
+ return False;
+}
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 src/fileio.c
--- a/src/fileio.c Mon Dec 24 15:02:36 2007 +0100
+++ b/src/fileio.c Mon Dec 24 15:04:01 2007 +0100
@@ -1518,10 +1518,10 @@ If `/~' appears, all of FILENAME through
/* This function can GC. GC checked 2000-07-28 ben. */
Ibyte *nm;
- Ibyte *s, *p, *o, *x, *endp;
+ Ibyte *s, *p, *o, *x, *endp, *got;
Ibyte *target = 0;
int total = 0;
- int substituted = 0;
+ int substituted = 0, seen_braces;
Ibyte *xnm;
Lisp_Object handler;
@@ -1576,7 +1576,10 @@ If `/~' appears, all of FILENAME through
{
p++;
if (p == endp)
- goto badsubst;
+ {
+ /* No substitution, no error. */
+ break;
+ }
else if (*p == '$')
{
/* "$$" means a single "$" */
@@ -1589,7 +1592,12 @@ If `/~' appears, all of FILENAME through
{
o = ++p;
while (p != endp && *p != '}') p++;
- if (*p != '}') goto missingclose;
+ if (*p != '}')
+ {
+ /* No substitution, no error. Keep looking. */
+ p = o;
+ continue;
+ }
s = p;
}
else
@@ -1608,10 +1616,12 @@ If `/~' appears, all of FILENAME through
#endif /* WIN32_NATIVE */
/* Get variable value */
- o = egetenv ((CIbyte *) target);
- if (!o) goto badvar;
- total += qxestrlen (o);
- substituted = 1;
+ got = egetenv ((CIbyte *) target);
+ if (got)
+ {
+ total += qxestrlen (got);
+ substituted = 1;
+ }
}
if (!substituted)
@@ -1629,8 +1639,12 @@ If `/~' appears, all of FILENAME through
else
{
p++;
+ seen_braces = 0;
if (p == endp)
- goto badsubst;
+ {
+ *x++ = '$';
+ break;
+ }
else if (*p == '$')
{
*x++ = *p++;
@@ -1638,9 +1652,16 @@ If `/~' appears, all of FILENAME through
}
else if (*p == '{')
{
+ seen_braces = 1;
o = ++p;
while (p != endp && *p != '}') p++;
- if (*p != '}') goto missingclose;
+ if (*p != '}')
+ {
+ /* Don't syntax error, don't substitute */
+ *x++ = '{';
+ p = o;
+ continue;
+ }
s = p++;
}
else
@@ -1659,12 +1680,30 @@ If `/~' appears, all of FILENAME through
#endif /* WIN32_NATIVE */
/* Get variable value */
- o = egetenv ((CIbyte *) target);
- if (!o)
- goto badvar;
-
- qxestrcpy (x, o);
- x += qxestrlen (o);
+ got = egetenv ((CIbyte *) target);
+ if (got)
+ {
+ qxestrcpy (x, got);
+ x += qxestrlen (got);
+ }
+ else
+ {
+ *x++ = '$';
+ if (seen_braces)
+ {
+ *x++ = '{';
+ /* Preserve the original case. */
+ qxestrncpy (x, o, s - o);
+ x += s - o;
+ *x++ = '}';
+ }
+ else
+ {
+ /* Preserve the original case. */
+ qxestrncpy (x, o, s - o);
+ x += s - o;
+ }
+ }
}
*x = 0;
@@ -1689,17 +1728,6 @@ If `/~' appears, all of FILENAME through
#endif
return make_string (xnm, x - xnm);
-
- badsubst:
- syntax_error ("Bad format environment-variable substitution", filename);
- missingclose:
- syntax_error ("Missing \"}\" in environment-variable substitution",
- filename);
- badvar:
- syntax_error_2 ("Substituting nonexistent environment variable",
- filename, build_intstring (target));
-
- RETURN_NOT_REACHED (Qnil);
}
/* A slightly faster and more convenient way to get
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 src/font-mgr.c
--- a/src/font-mgr.c Mon Dec 24 15:02:36 2007 +0100
+++ b/src/font-mgr.c Mon Dec 24 15:04:01 2007 +0100
@@ -898,10 +898,8 @@ XEmacs: should convert to a chartable.
intern ("fc-config-get-blanks"));
}
-/* The misspelling in the fontconfig function name accurately corresponds to
- the version of fontconfig.h I had on 2007-04-13. -- sjt */
DEFUN("fc-config-get-rescan-interval", Ffc_config_get_rescan_interval, 1, 1, 0, /*
- -- Function: int FcConfigGetRescanInverval (FcConfig *config)
+ -- Function: int FcConfigGetRescanInterval (FcConfig *config)
Returns the interval between automatic checks of the configuration
(in seconds) specified in 'config'. The configuration is checked
during a call to FcFontList when this interval has passed since
@@ -909,13 +907,11 @@ DEFUN("fc-config-get-rescan-interval", F
(config))
{
CHECK_FCCONFIG (config);
- return make_int (FcConfigGetRescanInverval (XFCCONFIG_PTR (config)));
-}
-
-/* The misspelling in the fontconfig function name accurately corresponds to
- the version of fontconfig.h I had on 2007-04-13. -- sjt */
+ return make_int (FcConfigGetRescanInterval (XFCCONFIG_PTR (config)));
+}
+
DEFUN("fc-config-set-rescan-interval", Ffc_config_set_rescan_interval, 2, 2, 0, /*
- -- Function: FcBool FcConfigSetRescanInverval (FcConfig *config, int
+ -- Function: FcBool FcConfigSetRescanInterval (FcConfig *config, int
rescanInterval)
Sets the rescan interval; returns FcFalse if an error occurred.
XEmacs: signal such error, or return nil on success. */
@@ -923,7 +919,7 @@ DEFUN("fc-config-set-rescan-interval", F
{
CHECK_FCCONFIG (config);
CHECK_INT (rescan_interval);
- if (FcConfigSetRescanInverval (XFCCONFIG_PTR (config),
+ if (FcConfigSetRescanInterval (XFCCONFIG_PTR (config),
XINT (rescan_interval)) == FcFalse)
signal_error (Qio_error, "FcConfigSetRescanInverval barfed",
intern ("fc-config-set-rescan-interval"));
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 src/font-mgr.h
--- a/src/font-mgr.h Mon Dec 24 15:02:36 2007 +0100
+++ b/src/font-mgr.h Mon Dec 24 15:04:01 2007 +0100
@@ -90,6 +90,17 @@ DECLARE_LRECORD(fc_config, struct fc_con
#endif /* FONTCONFIG_EXPOSE_CONFIG */
#ifdef USE_XFT
+
+#ifndef HAVE_FCCONFIGGETRESCANINTERVAL
+/* Older fontconfig versions misspell this function name. */
+#define FcConfigGetRescanInterval FcConfigGetRescanInverval
+#endif /* */
+
+#ifndef HAVE_FCCONFIGSETRESCANINTERVAL
+/* Older fontconfig versions misspell this function name. */
+#define FcConfigSetRescanInterval FcConfigSetRescanInverval
+#endif /* */
+
/*
The format of a fontname (as returned by fontconfig) is not well-documented,
But the character repertoire is represented in an ASCII-compatible way. See
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 src/glyphs-eimage.c
--- a/src/glyphs-eimage.c Mon Dec 24 15:02:36 2007 +0100
+++ b/src/glyphs-eimage.c Mon Dec 24 15:04:01 2007 +0100
@@ -109,6 +109,14 @@ BEGIN_C_DECLS
#define XMD_H
typedef signed int INT32;
typedef signed short INT16;
+
+/* And another one... jmorecfg.h defines the 'boolean' type as int,
+ which conflicts with the standard Windows 'boolean' definition as
+ unsigned char. Ref: http://www.asmail.be/msg0054688232.html */
+#ifndef __RPCNDR_H__ /* don't conflict if rpcndr.h already read */
+typedef unsigned char boolean;
+#endif
+#define HAVE_BOOLEAN /* prevent jmorecfg.h from redefining it */
#endif
#include <jpeglib.h>
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 src/keymap.c
--- a/src/keymap.c Mon Dec 24 15:02:36 2007 +0100
+++ b/src/keymap.c Mon Dec 24 15:04:01 2007 +0100
@@ -1388,7 +1388,7 @@ define_key_check_and_coerce_keysym (Lisp
DECLARE_EISTRING (temp);
eicpy_raw (temp, name, qxestrlen (name));
eisetch_char (temp, 2, '-');
- *keysym = Fintern_soft (eimake_string (temp), Qnil);
+ *keysym = Fintern_soft (eimake_string (temp), Qnil, Qnil);
}
else if (EQ (*keysym, QLFD))
*keysym = QKlinefeed;
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 src/lisp.h
--- a/src/lisp.h Mon Dec 24 15:02:36 2007 +0100
+++ b/src/lisp.h Mon Dec 24 15:04:01 2007 +0100
@@ -4982,6 +4982,7 @@ void print_float (Lisp_Object, Lisp_Obje
#define DECIMAL_PRINT_SIZE(integral_type) \
(((2410824 * sizeof (integral_type)) / 1000000) + 3)
void long_to_string (char *, long);
+void ulong_to_bit_string (char *, unsigned long);
extern int print_escape_newlines;
extern MODULE_API int print_readably;
Lisp_Object internal_with_output_to_temp_buffer (Lisp_Object,
@@ -5066,7 +5067,7 @@ EXFUN (Ffboundp, 1);
EXFUN (Ffboundp, 1);
EXFUN (Ffset, 2);
EXFUN (Fintern, 2);
-EXFUN (Fintern_soft, 2);
+EXFUN (Fintern_soft, 3);
EXFUN (Fkill_local_variable, 1);
EXFUN (Fset, 2);
EXFUN (Fset_default, 2);
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 src/lread.c
--- a/src/lread.c Mon Dec 24 15:02:36 2007 +0100
+++ b/src/lread.c Mon Dec 24 15:04:01 2007 +0100
@@ -2029,7 +2029,7 @@ parse_integer (const Ibyte *buf, Bytecou
overflow:
#ifdef HAVE_BIGNUM
{
- bignum_set_string (scratch_bignum, (const char *) buf, 0);
+ bignum_set_string (scratch_bignum, (const char *) buf, base);
return make_bignum_bg (scratch_bignum);
}
#else
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 src/objects-msw.c
--- a/src/objects-msw.c Mon Dec 24 15:02:36 2007 +0100
+++ b/src/objects-msw.c Mon Dec 24 15:04:01 2007 +0100
@@ -1976,7 +1976,7 @@ mswindows_font_spec_matches_charset_stag
const Ibyte *c;
Bytecount the_length = length;
- if (UNBOUNDP (charset))
+ if (NILP (charset))
return 1;
if (!the_nonreloc)
@@ -2038,7 +2038,7 @@ mswindows_font_spec_matches_charset_stag
Bytecount the_length = length;
int i;
- if (UNBOUNDP (charset))
+ if (NILP (charset))
return 1;
if (!the_nonreloc)
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 src/objects-tty.c
--- a/src/objects-tty.c Mon Dec 24 15:02:36 2007 +0100
+++ b/src/objects-tty.c Mon Dec 24 15:04:01 2007 +0100
@@ -347,7 +347,7 @@ tty_font_spec_matches_charset (struct de
fixup_internal_substring (nonreloc, reloc, offset, &length);
the_nonreloc += offset;
- if (UNBOUNDP (charset))
+ if (NILP (charset))
return !memchr (the_nonreloc, '/', length);
the_nonreloc = (const Ibyte *) memchr (the_nonreloc, '/', length);
if (!the_nonreloc)
@@ -379,7 +379,7 @@ tty_find_charset_font (Lisp_Object devic
return Qnil;
}
- if (UNBOUNDP (charset))
+ if (NILP (charset))
return font;
return concat3 (font, build_string ("/"),
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 src/objects-xlike-inc.c
--- a/src/objects-xlike-inc.c Mon Dec 24 15:02:36 2007 +0100
+++ b/src/objects-xlike-inc.c Mon Dec 24 15:04:01 2007 +0100
@@ -125,7 +125,7 @@ x_font_spec_matches_charset (struct devi
#endif
/* Hmm, this smells bad. */
- if (UNBOUNDP (charset))
+ if (NILP (charset))
return 1;
/* Hack! Short font names don't have the registry in them,
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 src/print.c
--- a/src/print.c Mon Dec 24 15:02:36 2007 +0100
+++ b/src/print.c Mon Dec 24 15:04:01 2007 +0100
@@ -1269,6 +1269,29 @@ long_to_string (char *buffer, long numbe
#undef DIGITS_18
#undef DIGITS_19
+void
+ulong_to_bit_string (char *p, unsigned long number)
+{
+ int i, seen_high_order = 0;;
+
+ for (i = ((SIZEOF_LONG * 8) - 1); i >= 0; --i)
+ {
+ if (number & (unsigned long)1 << i)
+ {
+ seen_high_order = 1;
+ *p++ = '1';
+ }
+ else
+ {
+ if (seen_high_order)
+ {
+ *p++ = '0';
+ }
+ }
+ }
+ *p = '\0';
+}
+
static void
print_vector_internal (const char *start, const char *end,
Lisp_Object obj,
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 src/search.c
--- a/src/search.c Mon Dec 24 15:02:36 2007 +0100
+++ b/src/search.c Mon Dec 24 15:04:01 2007 +0100
@@ -1371,14 +1371,17 @@ search_buffer (struct buffer *buf, Lisp_
boyer_moore_ok = 0;
if (translated != c || inverse != c)
{
- /* Keep track of which character set row
- contains the characters that need translation. */
+ /* Keep track of which charset and character set row
+ contains the characters that need translation.
+ Zero out the bits corresponding to the last byte.
+ */
int charset_base_code = c & ~ICHAR_FIELD3_MASK;
if (charset_base == -1)
charset_base = charset_base_code;
else if (charset_base != charset_base_code)
- /* If two different rows appear, needing translation,
- then we cannot use boyer_moore search. */
+ /* If two different rows appear, needing translation, then
+ we cannot use boyer_moore search. See the comment at the
+ head of boyer_moore(). */
boyer_moore_ok = 0;
}
memcpy (pat, tmp_str, new_bytelen);
@@ -1468,43 +1471,51 @@ simple_search (struct buffer *buf, Ibyte
n--;
}
else
- while (n < 0)
- {
- while (1)
- {
- Bytecount this_len = len;
- Bytebpos this_pos = pos;
- Ibyte *p;
- if (pos <= lim)
- goto stop;
- p = base_pat + len;
-
- while (this_len > 0)
- {
- Ichar pat_ch, buf_ch;
-
- DEC_IBYTEPTR (p);
- DEC_BYTEBPOS (buf, this_pos);
- pat_ch = itext_ichar (p);
- buf_ch = BYTE_BUF_FETCH_CHAR (buf, this_pos);
-
- buf_ch = TRANSLATE (trt, buf_ch);
-
- if (buf_ch != pat_ch)
+ {
+ /* If lim < len, then there are too few buffer positions to hold the
+ pattern between the beginning of the buffer and lim. Adjust to
+ ensure pattern fits. If we don't do this, we can assert in the
+ DEC_BYTEBPOS below. */
+ if (lim < len)
+ lim = len;
+ while (n < 0)
+ {
+ while (1)
+ {
+ Bytecount this_len = len;
+ Bytebpos this_pos = pos;
+ Ibyte *p;
+ if (pos <= lim)
+ goto stop;
+ p = base_pat + len;
+
+ while (this_len > 0)
+ {
+ Ichar pat_ch, buf_ch;
+
+ DEC_IBYTEPTR (p);
+ DEC_BYTEBPOS (buf, this_pos);
+ pat_ch = itext_ichar (p);
+ buf_ch = BYTE_BUF_FETCH_CHAR (buf, this_pos);
+
+ buf_ch = TRANSLATE (trt, buf_ch);
+
+ if (buf_ch != pat_ch)
+ break;
+
+ this_len -= itext_ichar_len (p);
+ }
+ if (this_len == 0)
+ {
+ buf_len = pos - this_pos;
+ pos = this_pos;
break;
-
- this_len -= itext_ichar_len (p);
- }
- if (this_len == 0)
- {
- buf_len = pos - this_pos;
- pos = this_pos;
- break;
- }
- DEC_BYTEBPOS (buf, pos);
- }
- n++;
- }
+ }
+ DEC_BYTEBPOS (buf, pos);
+ }
+ n++;
+ }
+ }
stop:
if (n == 0)
{
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 src/sound.c
--- a/src/sound.c Mon Dec 24 15:02:36 2007 +0100
+++ b/src/sound.c Mon Dec 24 15:04:01 2007 +0100
@@ -64,7 +64,7 @@ Boston, MA 02111-1307, USA. */
#endif
#if defined(HAVE_NATIVE_SOUND) || defined(HAVE_NAS_SOUND) \
- || defined(HAVE_ESD_SOUND)
+ || defined(HAVE_ALSA_SOUND) || defined(HAVE_ESD_SOUND)
#define USED_IF_HAVE_ANY(decl) decl
#else
#define USED_IF_HAVE_ANY(decl) UNUSED (decl)
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 src/symbols.c
--- a/src/symbols.c Mon Dec 24 15:02:36 2007 +0100
+++ b/src/symbols.c Mon Dec 24 15:04:01 2007 +0100
@@ -256,17 +256,17 @@ it defaults to the value of the variable
return object;
}
-DEFUN ("intern-soft", Fintern_soft, 1, 2, 0, /*
+DEFUN ("intern-soft", Fintern_soft, 1, 3, 0, /*
Return the canonical symbol named NAME, or nil if none exists.
NAME may be a string or a symbol. If it is a symbol, that exact
symbol is searched for.
Optional second argument OBARRAY specifies the obarray to use;
it defaults to the value of the variable `obarray'.
-*/
- (name, obarray))
-{
- /* #### Bug! (intern-soft "nil") returns nil. Perhaps we should
- add a DEFAULT-IF-NOT-FOUND arg, like in get. */
+Optional third argument DEFAULT says what Lisp object to return if there is
+no canonical symbol named NAME, and defaults to nil.
+*/
+ (name, obarray, default_))
+{
Lisp_Object tem;
Lisp_Object string;
@@ -283,7 +283,7 @@ it defaults to the value of the variable
tem = oblookup (obarray, XSTRING_DATA (string), XSTRING_LENGTH (string));
if (INTP (tem) || (SYMBOLP (name) && !EQ (name, tem)))
- return Qnil;
+ return default_;
else
return tem;
}
@@ -730,6 +730,26 @@ SUBR must be a built-in function.
name = XSUBR (subr)->name;
return make_string ((const Ibyte *)name, strlen (name));
+}
+
+DEFUN ("special-form-p", Fspecial_form_p, 1, 1, 0, /*
+Return whether SUBR is a special form.
+
+A special form is a built-in function (a subr, that is a function
+implemented in C, not Lisp) which does not necessarily evaluate all its
+arguments. Much of the basic XEmacs Lisp syntax is implemented by means of
+special forms; examples are `let', `condition-case', `defun', `setq' and so
+on.
+
+If you intend to write a Lisp function that does not necessarily evaluate
+all its arguments, the portable (across emacs variants, and across Lisp
+implementations) way to go about it is to write a macro instead. See
+`defmacro' and `backquote'.
+*/
+ (subr))
+{
+ subr = indirect_function (subr, 0);
+ return (SUBRP (subr) && XSUBR (subr)->max_args == UNEVALLED) ? Qt : Qnil;
}
DEFUN ("setplist", Fsetplist, 2, 2, 0, /*
@@ -3719,6 +3739,7 @@ syms_of_symbols (void)
DEFSUBR (Fdefine_function);
Ffset (intern ("defalias"), intern ("define-function"));
DEFSUBR (Fsubr_name);
+ DEFSUBR (Fspecial_form_p);
DEFSUBR (Fsetplist);
DEFSUBR (Fsymbol_value_in_buffer);
DEFSUBR (Fsymbol_value_in_console);
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 tests/ChangeLog
--- a/tests/ChangeLog Mon Dec 24 15:02:36 2007 +0100
+++ b/tests/ChangeLog Mon Dec 24 15:04:01 2007 +0100
@@ -1,3 +1,39 @@ 2007-12-06 Aidan Kehoe <kehoea@parhasa
+2007-12-21 Stephen J. Turnbull <stephen(a)xemacs.org>
+
+ * reproduce-crashes.el: Renamed from reproduce-bugs.el. Update to-do.
+
+2007-12-21 Stephen J. Turnbull <stephen(a)xemacs.org>
+
+ * reproduce-bugs.el: Reorganize. Minor cosmetic improvements.
+ Update to-do list.
+ (defbug): Include status and docstring in value.
+ (bug-hashtable): Document the table format.
+ (reproduce-bug): Handle revised table format. Remove broken
+ autoload cookie.
+ (describe-bug): New function. Pop up description of one bug.
+ (list-bugs): New function. Pop up brief descriptions of all bugs.
+ (1,2,3,4,5,6,7,8,9,10,11): (Re)number all bugs. Move comments to
+ docstrings.
+
+2007-12-11 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * automated/syntax-tests.el:
+ Check that substitute-in-file-name doesn't error when handed
+ non-existing environment variables, passing through the specified
+ string instead. Also check that existing environment variables are
+ correctly substituted. Also check that double slashes in the
+ middle of a path name are treated as re-starting the path.
+
+2007-12-10 Stephen J. Turnbull <stephen(a)xemacs.org>
+
+ * reproduce-bugs.el (reproduce-bug): Add bug 10, crash in search.
+
+2007-12-10 Stephen J. Turnbull <stephen(a)xemacs.org>
+
+ * reproduce-bugs.el: Add some commentary.
+ Number the two unnumbered bugs.
+ Comment out the keybinding.
+
2007-12-06 Aidan Kehoe <kehoea(a)parhasard.net>
* automated/mule-tests.el:
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 tests/automated/syntax-tests.el
--- a/tests/automated/syntax-tests.el Mon Dec 24 15:02:36 2007 +0100
+++ b/tests/automated/syntax-tests.el Mon Dec 24 15:04:01 2007 +0100
@@ -205,3 +205,37 @@
;; special-case check that point didn't move
(Assert (= (point) 25))))
+(loop
+ with envvar-not-existing = (symbol-name (gensym "whatever"))
+ with envvar-existing = (symbol-name (gensym "whatever"))
+ with envvar-existing-val = (make-string #x10000 ?\xe1)
+ with examples =
+ (list (list (format "%chome%cwhatever%c%chi-there%c$%s"
+ directory-sep-char
+ directory-sep-char
+ directory-sep-char
+ directory-sep-char
+ directory-sep-char
+ envvar-existing)
+ (format "%chi-there%c%s"
+ directory-sep-char
+ directory-sep-char
+ envvar-existing-val))
+ (if (memq system-type '(windows-nt cygwin32))
+ '("//network-path/c$" "//network-path/c$")
+ '("/network-path/c$" "/network-path/c$"))
+ (list (format "/home/whoever/$%s" envvar-not-existing)
+ (format "/home/whoever/$%s" envvar-not-existing))
+ (list (format "/home/whoever/$%s" envvar-existing)
+ (format "/home/whoever/%s" envvar-existing-val))
+ (list (format "/home/whoever/${%s}" envvar-existing)
+ (format "/home/whoever/%s" envvar-existing-val))
+ (list (format "/home/whoever/${%s}" envvar-not-existing)
+ (format "/home/whoever/${%s}" envvar-not-existing)))
+ initially (progn (setenv envvar-not-existing nil t)
+ (setenv envvar-existing envvar-existing-val))
+ for (pre post)
+ in examples
+ do
+ (Assert (string= post (substitute-in-file-name pre))))
+
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 tests/automated/test-harness.el
--- a/tests/automated/test-harness.el Mon Dec 24 15:02:36 2007 +0100
+++ b/tests/automated/test-harness.el Mon Dec 24 15:04:01 2007 +0100
@@ -203,7 +203,29 @@ The output file's name is made by append
`(let ((test-harness-failure-tag "KNOWN BUG")
(test-harness-success-tag "PASS (FAILURE EXPECTED)"))
,@body))
-
+
+ (defmacro Known-Bug-Expect-Error (expected-error &rest body)
+ (let ((quoted-body (if (= 1 (length body))
+ `(quote ,(car body)) `(quote (progn ,@body)))))
+ `(let ((test-harness-failure-tag "KNOWN BUG")
+ (test-harness-success-tag "PASS (FAILURE EXPECTED)"))
+ (condition-case error-info
+ (progn
+ (setq trick-optimizer (progn ,@body))
+ (Print-Pass
+ "%S executed successfully, but expected error %S"
+ ,quoted-body
+ ',expected-error)
+ (incf passes))
+ (,expected-error
+ (Print-Failure "%S ==> error %S, as expected"
+ ,quoted-body ',expected-error)
+ (incf no-error-failures))
+ (error
+ (Print-Failure "%S ==> expected error %S, got error %S instead"
+ ,quoted-body ',expected-error error-info)
+ (incf wrong-error-failures))))))
+
(defmacro Implementation-Incomplete-Expect-Failure (&rest body)
`(let ((test-harness-failure-tag "IMPLEMENTATION INCOMPLETE")
(test-harness-success-tag "PASS (FAILURE EXPECTED)"))
@@ -337,7 +359,9 @@ BODY is a sequence of expressions and ma
;; #### Perhaps this should override `message' itself, too?
(defmacro Silence-Message (&rest body)
- `(flet ((append-message (&rest args) ())) ,@body))
+ `(flet ((append-message (&rest args) ())
+ (clear-message (&rest args) ()))
+ ,@body))
(defmacro Ignore-Ebola (&rest body)
`(let ((debug-issue-ebola-notices -42)) ,@body))
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 etc/bundled-packages/README
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/bundled-packages/README Mon Dec 24 15:04:01 2007 +0100
@@ -0,0 +1,68 @@
+Package distributions may be placed in this directory.
+If present and a package-path is configured, packages can be installed
+using the top-level makefile.
+
+To configure the package path, use the --with-late-packages option to
+configure, which specifies the path to the directory containing the
+xemacs-packages and mule-packages hierarchies to install.
+
+To find out if a distribution includes bundled packages, type
+
+ make check-available-packages
+
+There are three Make targets that may be available depending on the package
+sets supplied.
+
+ make install-bootstrap-packages
+ Install a selected set of packages sufficient to support
+ downloading and installing packages via the M-x list-packages
+ interface. Chose this if you want to be able to install the
+ latest version of each package immediately.
+
+ make install-nomule-packages
+ Install the full distribution of packages that do not require a
+ Mule-enabled XEmacs. Choose this package if you don't have a
+ Mule-enabled XEmacs and want the convenience of a single-command
+ installation. You can add or update packages via M-x list-packages
+ at any time.
+
+ make install-all-packages
+ Install the full distribution of packages, including those requiring
+ a Mule-enabled XEmacs. Choose this package if you have a Mule-
+ enabled XEmacs and want the convenience of a single-command
+ installation. You can add or update packages via M-x list-packages
+ at any time.
+
+DISTRIBUTOR'S NOTE: you may choose what packages you wish to include in
+bootstrap.tar.gz, but to make list-packages work you need to include at
+least xemacs-base, dired, and efs. The tarball should unpack directly as
+an xemacs-packages tree (and optionaly, a mule-packages tree. Also, if
+either of xemacs-sumo.tar.gz or xemacs-mule-sumo.tar.gz is provided, the
+other should be as well.
+
+If packages are not available with the distribution, you can get them at
+
+ ftp://ftp.xemacs.org/pub/xemacs/packages/xemacs-sumo.tar.gz
+ ftp://ftp.xemacs.org/pub/xemacs/packages/xemacs-mule-sumo.tar.gz
+ http://turnbull.sk.tsukuba.ac.jp/Tools/XEmacs/bootstrap.tar.gz
+
+and place them in the same directory as this file. You can also make your
+own bootstrap.tar.gz by creating a directory xemacs-packages, then
+untarring the packages of your choice into that directory, and tarring the
+whole thing up with "tar czf bootstrap.tar.gz xemacs-packages". (If you
+wish to include mule-packages, you should place them in mule-packages as
+a sibling of xemacs-packages.)
+
+This facility currently does not support installations which configure
+the --with-early-packages, --with-late-packages, or --with-last-packages
+options.
+
+This facility currently will not overwrite an existing package
+installation, not even if a whole hierarchy (usually the mule-packages)
+is missing. In particular, you cannot use this feature to add the
+mule-packages to a package installation which lacks them, even if the
+hierarchy is missing, or the xemacs-packages hierarchy was installed
+this way. Nor can you "upgrade" a bootstrap installation to a full
+installation. If you wish to do any of these things you will need to
+remove the existing hierarchies.
+
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 etc/bundled-packages/test.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/bundled-packages/test.sh Mon Dec 24 15:04:01 2007 +0100
@@ -0,0 +1,105 @@
+# tests for the bundled packages feature
+
+# usage: sh etc/bundled-packages/tests.sh [TMP_TEST_DIR]
+
+# Always run this script from the top directory of the source tree.
+# You need a mv that supports the -v for verbose flag, and a mkdir that
+# supports the -p flag to make parents.
+# Output from this script is preceded by 4 stars (****).
+
+# This test script is probably more fragile than the build process, but if
+# it runs to completion things are probably OK.
+
+# configure the installation target
+
+if test -z "$1"; then
+ TMP_TEST_DIR=/tmp/test/bundled-packages
+else
+ TMP_TEST_DIR=$1
+fi
+
+srcdir=`pwd`
+blddir=${TMP_TEST_DIR}/build
+pkgdir=${TMP_TEST_DIR}/lib/xemacs
+
+echo "**** srcdir = ${srcdir}"
+echo "**** blddir = ${blddir}"
+echo "**** pkgdir = ${pkgdir}"
+
+if test -e "${pkgdir}"; then
+ echo "**** pkgdir (${pkgdir}) exists; bailing out."
+ exit -1
+fi
+
+# mv existing tarballs out of harm's way and make a fake one
+
+echo "**** Moving existing tarballs to etc/bundled-packages/saved."
+mkdir -p etc/bundled-packages/saved
+cd etc/bundled-packages
+echo "**** 'mv' may error because there are no files to move. It's harmless."
+mv -v *.tar.gz saved/
+cd ../..
+
+# configure in a temporary directory
+
+if test -e ${blddir}; then
+ echo "**** blddir (${blddir}) exists; bailing out."
+ exit -1
+fi
+mkdir -p ${blddir}
+cd ${blddir}
+echo "**** Running 'configure'. This takes *several minutes*."
+echo "**** Redirecting configure output to ${blddir}/beta.err."
+${srcdir}/configure >beta.err 2>&1
+
+# test check-available-packages
+
+echo "**** This test should produce no error and no output."
+make check-available-packages
+cd ${srcdir}/etc/bundled-packages
+echo "**** This test should explain how to install bootstrap packages."
+echo "This file pretends to be a bootstrap hierarchy." > xemacs-packages
+tar czf bootstrap.tar.gz xemacs-packages
+rm xemacs-packages
+cd ${blddir}
+make check-available-packages
+echo "**** This test should explain how to install all three."
+cd ${srcdir}/etc/bundled-packages
+echo "This file pretends to be a xemacs-packages hierarchy." > xemacs-packages
+echo "This file pretends to be a mule-packages hierarchy." > mule-packages
+tar czf xemacs-sumo.tar.gz xemacs-packages
+tar czf xemacs-mule-sumo.tar.gz mule-packages
+rm xemacs-packages mule-packages
+cd ${blddir}
+make check-available-packages
+
+# test installation without package path given
+
+echo "**** Make the 'make-path' utility needed by the installation routine."
+make -C lib-src make-path
+echo "**** This test should error because --with-late-packages wasn't given."
+make install-bootstrap-packages
+
+# test installation with package path given
+
+echo "**** Running 'configure'. This takes *several minutes*."
+echo "**** Redirecting configure output to ${blddir}/beta.err."
+${srcdir}/configure --with-late-packages=${pkgdir} >beta.err 2>&1
+echo "**** Make the 'make-path' utility needed by the installation routine."
+make -C lib-src make-path
+echo "**** Test install-bootstrap-packages."
+make install-bootstrap-packages
+echo "**** The following should list xemacs-packages in the right place."
+ls ${pkgdir}/*
+
+#### no tests below this line ####
+
+# put tarballs back and clean up
+
+cd ${srcdir}/etc/bundled-packages
+rm *.tar.gz
+echo "**** 'mv' may error because there are no files to move. It's harmless."
+mv -v saved/*.tar.gz ../
+rmdir saved
+rm -rf ${blddir} ${pkgdir}
+exit 0
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 tests/reproduce-crashes.el
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/reproduce-crashes.el Mon Dec 24 15:04:01 2007 +0100
@@ -0,0 +1,275 @@
+;;; reproduce-bugs.el --- reproduce bugs in XEmacs
+
+;; Copyright (C) 1997 Free Software Foundation, Inc.
+;; Copyright (C) 1997 Sun Microsystems, Inc.
+
+;; Keywords: bugs, crash, burn, die, croak, munge
+
+;; This file is part of XEmacs.
+
+;; This file 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 2, or (at your option)
+;; any later version.
+
+;; XEmacs 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 XEmacs; see the file COPYING. If not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; Synched up with: Not in FSF.
+
+;;; Commentary:
+
+;; Reproduce XEmacs crashes, so that they can get fixed.
+;; A table of bugs is created. You can list, describe, or reproduce bugs.
+
+;; Non-crash bugs should not be in this file; they should be placed in
+;; an appropriate file in the tests/automated suite.
+;; You may need to use a debug version of XEmacs to reproduce some of these.
+
+;; For XEmacs maintainers and other masochists.
+;; It's a bad idea to rely on code in this file continuing to work in
+;; the same way. :-)
+
+;; #### Bugs < 11 need to be tested and versions where they pass recorded.
+;; #### Fixed bugs should become regression tests, maybe?
+;; #### Non-crashes should be copied (not moved) to tests/automatic.
+;; #### `list-bugs' should optionally sort on status.
+;; #### Bugs that depend on features (eg, Mule) should check for them and
+;; document them.
+
+;;; Code:
+
+;; UI entry points
+
+(defun reproduce-bug (number)
+ "Reproduce XEmacs bugs, so that they can get fixed.
+Especially, make XEmacs crash.
+See reproduce-bugs.el for bug descriptions and bug numbers.
+A debug version of XEmacs may be needed to reproduce some bugs."
+ (interactive "nBug Number: ")
+ (funcall (nth 0 (gethash number bug-hashtable))))
+
+(defun describe-bug (number &optional show-code)
+ "Describe the bug with index NUMBER in a popup window.
+If optional argument SHOW-CODE is non-nil, also display the reproduction code."
+ (interactive "nBug number: \ncShow code? [y/N] ")
+ (setq show-code (cond ((not (interactive-p)) show-code)
+ ((member show-code '(?y ?Y)) t)
+ (t nil)))
+ (with-displaying-temp-buffer (format "Bug %d" number)
+ (let ((bug (gethash number bug-hashtable)))
+ (princ (format "Bug #%d is %s.\n%s\n\n%s"
+ number
+ (nth 1 bug)
+ (nth 2 bug)
+ (if show-code (pp-to-string (nth 0 bug)) ""))))))
+
+(defun list-bugs ()
+ "List bugs most recent first, each with brief description in a popup window.
+Assumes a maximum of 999 bugs and a minimum of 80 column width window."
+ (interactive)
+ (with-displaying-temp-buffer "*Bug list*"
+ (princ " # status description\n")
+ (let (buglist)
+ (maphash (lambda (number bug)
+ (push (format "%3d %-9s %s"
+ number
+ (nth 1 bug)
+ (let ((description (nth 2 bug)))
+ (save-match-data
+ (string-match "\\(.*\\)\\(\n\\|$\\)"
+ description)
+ (match-string 1 description))))
+ buglist))
+ bug-hashtable)
+ (setq buglist (sort buglist (lambda (b1 b2) (string< b2 b1))))
+ (while buglist
+ (let ((bug (pop buglist)))
+ (princ (if (< (length bug) 79) bug (substring bug 0 78)))
+ (terpri))))))
+
+;; Database and utilities (internal)
+
+(defvar bug-hashtable (make-hashtable 10)
+ "Table of bugs, keyed by bug index number.
+The value is a list (LAMBDA STATUS DOCSTRING), where LAMBDA is a lambda
+expression reproducing the bug, and STATUS and DOCSTRING describe the bug.
+For details, see `defbug'.")
+
+(put 'defbug 'lisp-indent-function 'defun)
+(defmacro defbug (bug-number status docstring &rest body)
+ "Record a bug with key BUG-NUMBER and value (LAMBDA STATUS DOCSTRING).
+LAMBDA is a lambda expression which when called executes BODY.
+BUG-NUMBER is the bug's index number, a positive integer.
+STATUS is the current status of the bug, one of
+ fixed The bug has been diagnosed and fixed.
+ diagnosed The bug has been localized but not fixed.
+ current The bug has been reported and reproduced but cause is unknown.
+ legacy The bug is undocumented but presumed fixed.
+DOCSTRING should be a string describing the bug, including any relevant
+descriptive information and references to archived mailing list traffic or
+a BTS issue.
+BODY is a sequence of expressions to execute to reproduce the bug."
+ (let ((body (if (stringp docstring) body (cons docstring body)))
+ (docstring (if (stringp docstring) docstring "[docstring omitted]")))
+ `(puthash ,bug-number
+ '((lambda () ,@body) ,status ,docstring)
+ bug-hashtable)))
+
+(defconst bug-buffer
+ (save-excursion
+ (set-buffer (get-buffer-create "*Bug*"))
+ (erase-buffer)
+ (current-buffer)))
+
+
+;;; ------------------------------------------------------------------
+;;;; Bugs follow:
+
+(defbug 11 fixed
+ "Crash in search due to backward movement.
+Need Mule build with error checking in 21.5.28.
+Fatal error: assertion failed,
+file /Users/steve/Software/XEmacs/alioth/xemacs/src/search.c, line 1487,
+(this_pos) > ((Bytebpos) 1) && this_pos <= ((buf)->text->z + 0)
+Reported: <475B104F.2070807(a)barco.com>
+ <87hcixwkh4.fsf(a)uwakimon.sk.tsukuba.ac.jp>
+Fixed: <87hcixwkh4.fsf(a)uwakimon.sk.tsukuba.ac.jp>"
+ (switch-to-buffer (get-buffer-create "*crash me*"))
+ ;; doozy is the keystroke equivalent of the keyboard macro
+ ;; "IAI" C-b C-b C-s C-x
+ (let ((doozy [;;(control ?x) ?b ?j ?u ?n ?k return
+ ?I ?A ?I
+ (control ?b) (control ?b)
+ (control ?s) (control ?w)]))
+ (execute-kbd-macro doozy)))
+
+
+(defbug 10 current
+ "Crash on trace-function
+Fatal error: assertion failed, file src/eval.c, line 1405, abort()"
+ (trace-function 'record-buffer bug-buffer)
+ (pop-to-buffer bug-buffer))
+
+
+(defbug 9 current
+ "Crashes with stack overflow
+Should give error via barf-if-buffer-read-only
+Fatal error: assertion failed, file src/eval.c, line 1874, abort()
+This bug has been fixed. -sb"
+ (switch-to-buffer bug-buffer)
+ ;; The following line should contain a number of eight-bit characters
+ (insert "²èÌÌËè€Î°ÜÆ°€Ï€Ç€€ë€è€Š€Ë€Ê€ê€Þ€·€¿¡£º£Åـϡ¢²èÌÌ€ÎÃæ€Ç¡¢ÆÃÄê€ÎŸì")
+ (setq buffer-read-only t)
+ (ignore-errors
+ (encode-coding-region (point-min) (point-max) 'euc-japan))
+ (garbage-collect))
+
+
+(defbug 8 current
+ "Crashes in debug version only
+Fatal error: assertion failed, file src/objects.h, line 149,
+RECORD_TYPEP (_obj, lrecord_font_instance) || MARKED_RECORD_P (_obj)"
+ (let (glyph ext)
+ (make-face 'adobe-symbol-face)
+ (set-face-font
+ 'adobe-symbol-face
+ "-adobe-symbol-medium-r-normal--*-140-*-*-p-*-adobe-fontspecific")
+ (setq glyph (make-glyph (list (vector 'string
+ :data (char-to-string ?\xD3)))))
+ (set-glyph-face glyph 'adobe-symbol-face)
+ (setq ext (make-extent 14 18))
+ (set-extent-property ext 'begin-glyph glyph)))
+
+
+(defbug 7 current
+ "(maybe?) crash koi8
+ACCL: Invalid command (c)
+With debugging on, crashes as follows:
+Fatal error: assertion failed, file src/lisp.h, line 1227, INTP (obj)"
+ ;;(load "cyrillic")
+ ;;(load "cyrillic-hooks")
+ (princ (decode-coding-string "\xe1" 'koi8)))
+
+
+(defbug 6 current
+ "regexp crash
+This doesn't crash for me. -sb"
+ (string-match "\\(\\s-\\|$\\)" "å"))
+
+
+(defbug 5 legacy
+ "`subst-char-in-region' moves point."
+ (interactive)
+ (with-temp-buffer
+ (insert "abc")
+ (forward-char -1)
+ (subst-char-in-region 1 4 ?b ?\344)
+ (if (not (= (point) 3))
+ (message "Bug! point should equal 3 but is %d" (point)))))
+
+
+(defbug 4 legacy
+ "Infinite recursion crash - Segmentation Fault"
+ (switch-to-buffer bug-buffer)
+ (insert "abcdefg")
+ (setq e (make-extent 1 4))
+ (set-extent-property e 'face 'bold)
+ (set-extent-property e 'duplicable t)
+ (set-extent-property e 'replicating t)
+ (insert (buffer-string))
+ (delete-region 8 9))
+
+
+(defbug 3 current
+ "Completely Uninterruptible hang in re-search-backward (Was: java-mode)"
+ (switch-to-buffer bug-buffer)
+ (insert "{
+public static void main(String[] args) throws java.io.IOException
+ {
+ }
+}
+")
+ (goto-char (point-min))
+ (search-forward "{" nil nil 2)
+ (backward-char)
+ (re-search-backward
+ "^\\s(\\|\\(^[ \t]*\\(\\(\\(public\\|protected\\|static\\)\\s-+\\)*\\(\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*[][_$.a-zA-Z0-9]+\\|[[a-zA-Z]\\)\\s-*\\)\\s-+\\)\\)?\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*\\s-+\\)\\s-*\\)?\\([_a-zA-Z][^][ \t:;.,{}()=]*\\|\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)\\)\\s-*\\(([^);{}]*)\\)?\\([] \t]*\\)\\(\\s-*\\<throws\\>\\s-*\\(\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)[, \t\n\r\f]*\\)+\\)?\\s-*\\)\\s("))
+
+
+(defbug 2 legacy
+ "crash popup frames
+FIXED
+#### This bug is not understood, and may be incomplete. See source."
+ (lambda ()
+ (let ((f (selected-frame)))
+ (make-frame `(popup ,(selected-frame)))
+ (make-frame)
+ (sit-for 0)
+ (delete-frame f)
+ ;; #### Check whether this is needed.
+ ;; (save-buffers-kill-emacs5)
+ )))
+
+
+(defbug 1 legacy
+ "crash on delete-frame-hook
+FIXED!
+#### This bug is not understood, and seems to be incomplete. See source."
+ (lambda ()
+ ;; #### Should this be add-hook instead of setq?
+ (setq delete-frame-hook
+ (lambda (frame)
+ (select-frame frame)
+ (kill-buffer (window-buffer (frame-selected-window frame)))
+ ;; #### Do we need to delete a frame here or something?
+ ))))
+
+;;; reproduce-bugs.el ends here
diff -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d -r df1f1f49ef702d66951ed0833cf160116c2b4e01 tests/reproduce-bugs.el
--- a/tests/reproduce-bugs.el Mon Dec 24 15:02:36 2007 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,194 +0,0 @@
-;;; reproduce-bugs.el --- reproduce bugs in XEmacs;
-
-;; Copyright (C) 1997 Free Software Foundation, Inc.
-;; Copyright (C) 1997 Sun Microsystems, Inc.
-
-;; Keywords: bugs, crash, burn, die, croak, munge
-
-;; This file is part of XEmacs.
-
-;; This file 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 2, or (at your option)
-;; any later version.
-
-;; XEmacs 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 XEmacs; see the file COPYING. If not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; Synched up with: Not in FSF.
-
-;;; Commentary:
-
-;; Reproduce XEmacs bugs, so that they can get fixed.
-;; Especially, make XEmacs crash.
-;; You may need to use a debug version of XEmacs to reproduce some of these.
-
-;; Several global keybindings are created, each of which exhibits a bug.
-
-;; For XEmacs maintainers and other masochists.
-
-;; It's a bad idea to rely on code in this file continuing to work in
-;; the same way. :-)
-
-;;; Code:
-
-(defvar bug-hashtable (make-hashtable 10))
-
-(defmacro defbug (bug-number &rest body)
- `(puthash ,bug-number (lambda () ,@body) bug-hashtable))
-
-(put 'defbug 'lisp-indent-function 'defun)
-
-(defconst bug-buffer
- (save-excursion
- (set-buffer (get-buffer-create "*Bug*"))
- (erase-buffer)
- (current-buffer)))
-
-;;;####autoload
-(defun reproduce-bug (number)
- "Reproduce XEmacs bugs, so that they can get fixed.
-Especially, make XEmacs crash.
-See reproduce-bugs.el for bug descriptions and bug numbers.
-A debug version of XEmacs may be needed to reproduce some bugs."
- (interactive "nBug Number: ")
- (funcall (gethash number bug-hashtable)))
-
-;;; Change this to your preferred key-binding
-
-(global-set-key [(control ?Z)] 'reproduce-bug)
-
-;;;; Bugs follow:
-
-;;; ------------------------------------------------------------------
-;;; Crash on trace-function
-;;; Fatal error: assertion failed, file src/eval.c, line 1405, abort()
-(defbug 1
- (trace-function 'record-buffer bug-buffer)
- (pop-to-buffer bug-buffer))
-
-
-;;; ------------------------------------------------------------------
-;;; Crashes with stack overflow
-;;; Should give error via barf-if-buffer-read-only
-;;; Fatal error: assertion failed, file src/eval.c, line 1874, abort()
-;; This bug has been fixed. -sb
-(defbug 2
- (switch-to-buffer bug-buffer)
- ;; The following line should contain a number of eight-bit characters
- (insert "²èÌÌËè€Î°ÜÆ°€Ï€Ç€€ë€è€Š€Ë€Ê€ê€Þ€·€¿¡£º£Åـϡ¢²èÌÌ€ÎÃæ€Ç¡¢ÆÃÄê€ÎŸì")
- (setq buffer-read-only t)
- (ignore-errors
- (encode-coding-region (point-min) (point-max) 'euc-japan))
- (garbage-collect))
-
-
-;;; ------------------------------------------------------------------
-;;; Crashes in debug version only
-;;; Fatal error: assertion failed, file src/objects.h, line 149,
-;;; RECORD_TYPEP (_obj, lrecord_font_instance) || MARKED_RECORD_P (_obj)
-(defbug 3
- (let (glyph ext)
- (make-face 'adobe-symbol-face)
- (set-face-font
- 'adobe-symbol-face
- "-adobe-symbol-medium-r-normal--*-140-*-*-p-*-adobe-fontspecific")
- (setq glyph (make-glyph (list (vector 'string
- :data (char-to-string ?\xD3)))))
- (set-glyph-face glyph 'adobe-symbol-face)
- (setq ext (make-extent 14 18))
- (set-extent-property ext 'begin-glyph glyph)))
-
-
-;;; ------------------------------------------------------------------
-;;; (maybe?) crash koi8
-;;; ACCL: Invalid command (c)
-;;; With debugging on, crashes as follows:
-;;; Fatal error: assertion failed, file src/lisp.h, line 1227, INTP (obj)
-(defbug 5
- ;;(load "cyrillic")
- ;;(load "cyrillic-hooks")
- (princ (decode-coding-string "\xe1" 'koi8)))
-
-
-;;; ------------------------------------------------------------------
-;;; Completely Uninterruptible hang in re-search-backward (Was: java-mode)
-(defbug 6
- (switch-to-buffer bug-buffer)
- (insert "{
-public static void main(String[] args) throws java.io.IOException
- {
- }
-}
-")
- (goto-char (point-min))
- (search-forward "{" nil nil 2)
- (backward-char)
- (re-search-backward
- "^\\s(\\|\\(^[ \t]*\\(\\(\\(public\\|protected\\|static\\)\\s-+\\)*\\(\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*[][_$.a-zA-Z0-9]+\\|[[a-zA-Z]\\)\\s-*\\)\\s-+\\)\\)?\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*\\s-+\\)\\s-*\\)?\\([_a-zA-Z][^][ \t:;.,{}()=]*\\|\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)\\)\\s-*\\(([^);{}]*)\\)?\\([] \t]*\\)\\(\\s-*\\<throws\\>\\s-*\\(\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)[, \t\n\r\f]*\\)+\\)?\\s-*\\)\\s("))
-
-
-;;; ------------------------------------------------------------------
-;;; regexp crash
-;; This doesn't crash for me. -sb
-(defbug 7
- (string-match "\\(\\s-\\|$\\)" "å"))
-
-
-;;;; -------------------------------------------------------------------
-;;;; Bugs below this line have been fixed.
-;;;; Keep these for regression testing
-;;;; -------------------------------------------------------------------
-
-
-;;; ------------------------------------------------------------------
-;;; Infinite recursion crash - Segmentation Fault
-(defbug 4
- (switch-to-buffer bug-buffer)
- (insert "abcdefg")
- (setq e (make-extent 1 4))
- (set-extent-property e 'face 'bold)
- (set-extent-property e 'duplicable t)
- (set-extent-property e 'replicating t)
- (insert (buffer-string))
- (delete-region 8 9))
-
-(defbug 5
- (interactive)
- (with-temp-buffer
- (insert "abc")
- (forward-char -1)
- (subst-char-in-region 1 4 ?b ?\344)
- (if (not (= (point) 3))
- (message "Bug! point should equal 3 but is %d" (point)))))
-
-;;; crash popup frames FIXED
-;;(global-set-key
-;; [(alt meta control f12)]
-;; (lambda ()
-;; (interactive)
-;; (let ((f (selected-frame)))
-;; (make-frame `(popup ,(selected-frame)))
-;; (make-frame)
-;; (sit-for 0)
-;; (delete-frame f)
-;; (save-buffers-kill-emacs))))
-
-;;; crash on delete-frame-hook - FIXED!
-;;(global-set-key
-;; [(alt meta control f10)]
-;; (lambda ()
-;; (interactive)
-;; (setq delete-frame-hook
-;; (lambda (frame)
-;; (select-frame frame)
-;; (kill-buffer (window-buffer (frame-selected-window frame)))))))
-
-;;; reproduce-bugs.el ends here
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-patches
carbon2-commit: Make check-available-packages announce where to install packages.
16 years, 12 months
Aidan Kehoe
changeset: 4367:3af63264d32008e05044cc024b6308ee0114d278
user: Stephen J. Turnbull <stephen(a)xemacs.org>
date: Wed Dec 26 11:29:51 2007 -0800
files: ChangeLog Makefile.in.in
description:
Make check-available-packages announce where to install packages.
diff -r cc293ef846d240af187a523bb32eb5e26a083531 -r 3af63264d32008e05044cc024b6308ee0114d278 ChangeLog
--- a/ChangeLog Mon Dec 24 14:00:51 2007 +0100
+++ b/ChangeLog Wed Dec 26 11:29:51 2007 -0800
@@ -1,3 +1,7 @@ 2007-12-23 Stephen J. Turnbull <stephe
+2007-12-26 Stephen J. Turnbull <stephen(a)xemacs.org>
+
+ * Makefile.in.in (check-available-packages): Say where to install.
+
2007-12-23 Stephen J. Turnbull <stephen(a)xemacs.org>
* Makefile.in.in (mkpkgdir):
diff -r cc293ef846d240af187a523bb32eb5e26a083531 -r 3af63264d32008e05044cc024b6308ee0114d278 Makefile.in.in
--- a/Makefile.in.in Mon Dec 24 14:00:51 2007 +0100
+++ b/Makefile.in.in Wed Dec 26 11:29:51 2007 -0800
@@ -500,15 +500,18 @@ pkgsrcdir = ${srcdir}/etc/bundled-packag
check-available-packages:
@if test -r ${pkgsrcdir}/bootstrap.tar.gz; \
- then echo "To install a set of bootstrap packages, type:"; \
+ then echo "To install a set of bootstrap packages in"; \
+ echo "${package_path}/xemacs-packages, type:"; \
echo " make install-bootstrap-packages"; \
fi; \
if test -r ${pkgsrcdir}/xemacs-sumo.tar.gz; \
- then echo "To install the full set of non-mule packages, type:"; \
+ then echo "To install the full set of non-mule packages in"; \
+ echo "${package_path}/xemacs-packages, type:"; \
echo " make install-nonmule-packages"; \
fi; \
if test -r ${pkgsrcdir}/xemacs-mule-sumo.tar.gz; \
- then echo "To install the full set of packages with mule, type:"; \
+ then echo "To install the full set of packages with mule in"; \
+ echo "${package_path}/mule-packages, type:"; \
echo " make install-all-packages"; \
fi;
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-patches
carbon2-commit: Unify the typed character under X11, using the unicode precedence list
16 years, 12 months
Aidan Kehoe
changeset: 4368:63c25d1cbecf001ad5d3df335e95283d0a3d917d
parent: 4319:74d00c7cc134a6cc94eac170ca774ecef7736ee8
user: Aidan Kehoe <kehoea(a)parhasard.net>
date: Mon Dec 24 15:02:36 2007 +0100
files: src/ChangeLog src/event-xlike-inc.c
description:
Unify the typed character under X11, using the unicode precedence list
2007-12-24 Aidan Kehoe <kehoea(a)parhasard.net>
* event-xlike-inc.c (x_keysym_to_character):
* event-xlike-inc.c (gtk_keysym_to_character):
Unify the typed character if possible, following the current value
for the unicode precedence list.
diff -r 74d00c7cc134a6cc94eac170ca774ecef7736ee8 -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d src/ChangeLog
--- a/src/ChangeLog Sun Dec 09 18:31:41 2007 +0100
+++ b/src/ChangeLog Mon Dec 24 15:02:36 2007 +0100
@@ -1,3 +1,10 @@ 2007-12-06 Aidan Kehoe <kehoea@parhasa
+2007-12-24 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * event-xlike-inc.c (x_keysym_to_character):
+ * event-xlike-inc.c (gtk_keysym_to_character):
+ Unify the typed character if possible, following the current value
+ for the unicode precedence list.
+
2007-12-06 Aidan Kehoe <kehoea(a)parhasard.net>
* tests.c (Ftest_data_format_conversion):
diff -r 74d00c7cc134a6cc94eac170ca774ecef7736ee8 -r 63c25d1cbecf001ad5d3df335e95283d0a3d917d src/event-xlike-inc.c
--- a/src/event-xlike-inc.c Sun Dec 09 18:31:41 2007 +0100
+++ b/src/event-xlike-inc.c Mon Dec 24 15:02:36 2007 +0100
@@ -708,7 +708,15 @@ gtk_keysym_to_character(guint keysym)
return Qnil;
#ifdef MULE
- return make_char (make_ichar (charset, code, 0));
+ {
+ Lisp_Object unified = Funicode_to_char
+ (Fchar_to_unicode (make_char (make_ichar (charset, code, 0))), Qnil);
+ if (!NILP (unified))
+ {
+ return unified;
+ }
+ return make_char (make_ichar (charset, code, 0));
+ }
#else
return make_char (code + 0x80);
#endif
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-patches
carbon2-commit: Automated merge with ssh://aidan-guest@hg.debian.org//hg/xemacs/xemacs
16 years, 12 months
Aidan Kehoe
changeset: 4366:cc293ef846d240af187a523bb32eb5e26a083531
parent: 4365:a2af1ff1761f3f9bda5a676bc93b9b3b5bdc1443
parent: 4364:232d873b9705ad6655ef42e6f59cecadc3100853
user: Aidan Kehoe <kehoea(a)parhasard.net>
date: Mon Dec 24 14:00:51 2007 +0100
files:
description:
Automated merge with ssh://aidan-guest@hg.debian.org//hg/xemacs/xemacs
diff -r a2af1ff1761f3f9bda5a676bc93b9b3b5bdc1443 -r cc293ef846d240af187a523bb32eb5e26a083531 .hgignore
--- a/.hgignore Mon Dec 24 14:00:14 2007 +0100
+++ b/.hgignore Mon Dec 24 14:00:51 2007 +0100
@@ -44,4 +44,4 @@ info/.*\.info(-[0-9]+)?$
^src/xemacs\.def(\.in)?$
^src/xemacs\.dmp$
^src/Emacs\.ad\.h$
-
+^etc/bundled-packages/.*\.tar\.gz$
diff -r a2af1ff1761f3f9bda5a676bc93b9b3b5bdc1443 -r cc293ef846d240af187a523bb32eb5e26a083531 ChangeLog
--- a/ChangeLog Mon Dec 24 14:00:14 2007 +0100
+++ b/ChangeLog Mon Dec 24 14:00:51 2007 +0100
@@ -1,3 +1,14 @@ 2007-12-08 Jerry James <james(a)xemacs.o
+2007-12-23 Stephen J. Turnbull <stephen(a)xemacs.org>
+
+ * Makefile.in.in (mkpkgdir):
+ (check-available-packages):
+ (install-bootstrap-packages):
+ (install-nonmule-packages):
+ (install-all-packages):
+ New targets supporting bundled packages.
+
+ * .hgignore: Ignore tarballs in etc/bundled-packages/.
+
2007-12-08 Jerry James <james(a)xemacs.org>
* config.guess:
diff -r a2af1ff1761f3f9bda5a676bc93b9b3b5bdc1443 -r cc293ef846d240af187a523bb32eb5e26a083531 Makefile.in.in
--- a/Makefile.in.in Mon Dec 24 14:00:14 2007 +0100
+++ b/Makefile.in.in Mon Dec 24 14:00:51 2007 +0100
@@ -491,6 +491,48 @@ mkdir: FRC.mkdir
#endif
${sitelispdir}
+## Install bundled packages, if present.
+
+package_path = @LATE_PACKAGE_DIRECTORIES@
+pkgsrcdir = ${srcdir}/etc/bundled-packages
+
+## #### Probably we should add a rule for lib-src/make-path here.
+
+check-available-packages:
+ @if test -r ${pkgsrcdir}/bootstrap.tar.gz; \
+ then echo "To install a set of bootstrap packages, type:"; \
+ echo " make install-bootstrap-packages"; \
+ fi; \
+ if test -r ${pkgsrcdir}/xemacs-sumo.tar.gz; \
+ then echo "To install the full set of non-mule packages, type:"; \
+ echo " make install-nonmule-packages"; \
+ fi; \
+ if test -r ${pkgsrcdir}/xemacs-mule-sumo.tar.gz; \
+ then echo "To install the full set of packages with mule, type:"; \
+ echo " make install-all-packages"; \
+ fi;
+
+mkpkgdir: FRC.mkdir ${MAKEPATH}
+ @if test -z ${package_path}; \
+ then echo "not configured --with-late-packages; no place to install."; \
+ exit -1; \
+ elif test -e ${package_path}/xemacs-packages \
+ -o -e ${package_path}/mule-packages; \
+ then echo "${package_path} is installed; won't overwrite packages."; \
+ exit -1; \
+ fi
+ ${MAKEPATH} ${package_path};
+
+install-bootstrap-packages: mkpkgdir
+ cd ${package_path}; tar xvzf ${pkgsrcdir}/bootstrap.tar.gz
+
+install-nonmule-packages: mkpkgdir
+ cd ${package_path}; tar xvzf ${pkgsrcdir}/xemacs-sumo.tar.gz
+
+install-all-packages: mkpkgdir
+ cd ${package_path}; tar xvzf ${pkgsrcdir}/xemacs-sumo.tar.gz; \
+ cd ${package_path}; tar xvzf ${pkgsrcdir}/xemacs-mule-sumo.tar.gz
+
## Delete all the installed files that the `install' target would
## create (but not the noninstalled files such as `make all' would
## create).
diff -r a2af1ff1761f3f9bda5a676bc93b9b3b5bdc1443 -r cc293ef846d240af187a523bb32eb5e26a083531 etc/ChangeLog
--- a/etc/ChangeLog Mon Dec 24 14:00:14 2007 +0100
+++ b/etc/ChangeLog Mon Dec 24 14:00:51 2007 +0100
@@ -1,3 +1,8 @@ 2007-11-22 Vin Shelton <acs(a)xemacs.org
+2007-12-23 Stephen J. Turnbull <stephen(a)xemacs.org>
+
+ * bundled-packages/README: Documentation for bundled packages.
+ * bundled-packages/test.sh: Test suite for bundled packages.
+
2007-11-22 Vin Shelton <acs(a)xemacs.org>
* photos/vin.png:
diff -r a2af1ff1761f3f9bda5a676bc93b9b3b5bdc1443 -r cc293ef846d240af187a523bb32eb5e26a083531 etc/bundled-packages/README
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/bundled-packages/README Mon Dec 24 14:00:51 2007 +0100
@@ -0,0 +1,68 @@
+Package distributions may be placed in this directory.
+If present and a package-path is configured, packages can be installed
+using the top-level makefile.
+
+To configure the package path, use the --with-late-packages option to
+configure, which specifies the path to the directory containing the
+xemacs-packages and mule-packages hierarchies to install.
+
+To find out if a distribution includes bundled packages, type
+
+ make check-available-packages
+
+There are three Make targets that may be available depending on the package
+sets supplied.
+
+ make install-bootstrap-packages
+ Install a selected set of packages sufficient to support
+ downloading and installing packages via the M-x list-packages
+ interface. Chose this if you want to be able to install the
+ latest version of each package immediately.
+
+ make install-nomule-packages
+ Install the full distribution of packages that do not require a
+ Mule-enabled XEmacs. Choose this package if you don't have a
+ Mule-enabled XEmacs and want the convenience of a single-command
+ installation. You can add or update packages via M-x list-packages
+ at any time.
+
+ make install-all-packages
+ Install the full distribution of packages, including those requiring
+ a Mule-enabled XEmacs. Choose this package if you have a Mule-
+ enabled XEmacs and want the convenience of a single-command
+ installation. You can add or update packages via M-x list-packages
+ at any time.
+
+DISTRIBUTOR'S NOTE: you may choose what packages you wish to include in
+bootstrap.tar.gz, but to make list-packages work you need to include at
+least xemacs-base, dired, and efs. The tarball should unpack directly as
+an xemacs-packages tree (and optionaly, a mule-packages tree. Also, if
+either of xemacs-sumo.tar.gz or xemacs-mule-sumo.tar.gz is provided, the
+other should be as well.
+
+If packages are not available with the distribution, you can get them at
+
+ ftp://ftp.xemacs.org/pub/xemacs/packages/xemacs-sumo.tar.gz
+ ftp://ftp.xemacs.org/pub/xemacs/packages/xemacs-mule-sumo.tar.gz
+ http://turnbull.sk.tsukuba.ac.jp/Tools/XEmacs/bootstrap.tar.gz
+
+and place them in the same directory as this file. You can also make your
+own bootstrap.tar.gz by creating a directory xemacs-packages, then
+untarring the packages of your choice into that directory, and tarring the
+whole thing up with "tar czf bootstrap.tar.gz xemacs-packages". (If you
+wish to include mule-packages, you should place them in mule-packages as
+a sibling of xemacs-packages.)
+
+This facility currently does not support installations which configure
+the --with-early-packages, --with-late-packages, or --with-last-packages
+options.
+
+This facility currently will not overwrite an existing package
+installation, not even if a whole hierarchy (usually the mule-packages)
+is missing. In particular, you cannot use this feature to add the
+mule-packages to a package installation which lacks them, even if the
+hierarchy is missing, or the xemacs-packages hierarchy was installed
+this way. Nor can you "upgrade" a bootstrap installation to a full
+installation. If you wish to do any of these things you will need to
+remove the existing hierarchies.
+
diff -r a2af1ff1761f3f9bda5a676bc93b9b3b5bdc1443 -r cc293ef846d240af187a523bb32eb5e26a083531 etc/bundled-packages/test.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/bundled-packages/test.sh Mon Dec 24 14:00:51 2007 +0100
@@ -0,0 +1,105 @@
+# tests for the bundled packages feature
+
+# usage: sh etc/bundled-packages/tests.sh [TMP_TEST_DIR]
+
+# Always run this script from the top directory of the source tree.
+# You need a mv that supports the -v for verbose flag, and a mkdir that
+# supports the -p flag to make parents.
+# Output from this script is preceded by 4 stars (****).
+
+# This test script is probably more fragile than the build process, but if
+# it runs to completion things are probably OK.
+
+# configure the installation target
+
+if test -z "$1"; then
+ TMP_TEST_DIR=/tmp/test/bundled-packages
+else
+ TMP_TEST_DIR=$1
+fi
+
+srcdir=`pwd`
+blddir=${TMP_TEST_DIR}/build
+pkgdir=${TMP_TEST_DIR}/lib/xemacs
+
+echo "**** srcdir = ${srcdir}"
+echo "**** blddir = ${blddir}"
+echo "**** pkgdir = ${pkgdir}"
+
+if test -e "${pkgdir}"; then
+ echo "**** pkgdir (${pkgdir}) exists; bailing out."
+ exit -1
+fi
+
+# mv existing tarballs out of harm's way and make a fake one
+
+echo "**** Moving existing tarballs to etc/bundled-packages/saved."
+mkdir -p etc/bundled-packages/saved
+cd etc/bundled-packages
+echo "**** 'mv' may error because there are no files to move. It's harmless."
+mv -v *.tar.gz saved/
+cd ../..
+
+# configure in a temporary directory
+
+if test -e ${blddir}; then
+ echo "**** blddir (${blddir}) exists; bailing out."
+ exit -1
+fi
+mkdir -p ${blddir}
+cd ${blddir}
+echo "**** Running 'configure'. This takes *several minutes*."
+echo "**** Redirecting configure output to ${blddir}/beta.err."
+${srcdir}/configure >beta.err 2>&1
+
+# test check-available-packages
+
+echo "**** This test should produce no error and no output."
+make check-available-packages
+cd ${srcdir}/etc/bundled-packages
+echo "**** This test should explain how to install bootstrap packages."
+echo "This file pretends to be a bootstrap hierarchy." > xemacs-packages
+tar czf bootstrap.tar.gz xemacs-packages
+rm xemacs-packages
+cd ${blddir}
+make check-available-packages
+echo "**** This test should explain how to install all three."
+cd ${srcdir}/etc/bundled-packages
+echo "This file pretends to be a xemacs-packages hierarchy." > xemacs-packages
+echo "This file pretends to be a mule-packages hierarchy." > mule-packages
+tar czf xemacs-sumo.tar.gz xemacs-packages
+tar czf xemacs-mule-sumo.tar.gz mule-packages
+rm xemacs-packages mule-packages
+cd ${blddir}
+make check-available-packages
+
+# test installation without package path given
+
+echo "**** Make the 'make-path' utility needed by the installation routine."
+make -C lib-src make-path
+echo "**** This test should error because --with-late-packages wasn't given."
+make install-bootstrap-packages
+
+# test installation with package path given
+
+echo "**** Running 'configure'. This takes *several minutes*."
+echo "**** Redirecting configure output to ${blddir}/beta.err."
+${srcdir}/configure --with-late-packages=${pkgdir} >beta.err 2>&1
+echo "**** Make the 'make-path' utility needed by the installation routine."
+make -C lib-src make-path
+echo "**** Test install-bootstrap-packages."
+make install-bootstrap-packages
+echo "**** The following should list xemacs-packages in the right place."
+ls ${pkgdir}/*
+
+#### no tests below this line ####
+
+# put tarballs back and clean up
+
+cd ${srcdir}/etc/bundled-packages
+rm *.tar.gz
+echo "**** 'mv' may error because there are no files to move. It's harmless."
+mv -v saved/*.tar.gz ../
+rmdir saved
+rm -rf ${blddir} ${pkgdir}
+exit 0
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-patches