Mercurial > hg > xemacs-beta
diff lisp/mule/mule-cmds.el @ 801:2b676dc88c66
[xemacs-hg @ 2002-04-01 03:58:02 by ben]
bug fixes (e.g. ballooning on X windows)
Makefile.in.in: Try to make the Makefile notice if its source Makefile.in.in is
changed, and regenerate and run itself.
Use a bigger default SHEAP_ADJUSTMENT on Cygwin; otherwise you
can't compile under Mule if a Lisp file has changed. (can't run
temacs)
TODO.ben-mule-21-5: update.
mule/mule-cmds.el: Hash the result of mswindows-get-language-environment-from-locale,
since it's very expensive (and causes huge ballooning of memory
under X Windows, since it's called from x-get-resource).
cl-extra.el, code-files.el, files.el, simple.el, subr.el, x-faces.el: Create new string-equal-ignore-case, based on built-in
compare-strings -- compare strings ignoring case without the need
to generate garbage by calling downcase. Use it in equalp and
elsewhere.
alloc.c, bytecode.c, chartab.c, data.c, elhash.c, emacs.c, eval.c, event-Xt.c, event-unixoid.c, extents.c, file-coding.c, fileio.c, fns.c, glyphs.c, gutter.c, lisp-union.h, lisp.h, mule-charset.c, nt.c, process-unix.c, process.c, specifier.c, symbols.c, sysdep.c, sysdep.h, text.c, toolbar.c: Try to implement GC triggering based on percentage of total memory
usage. Not currently activated (percentage set to 0) because not
quite working. Add `memory-usage' primitive to return XEmacs'
idea of its memory usage.
Add primitive compare-strings, compatible with FSF 21.1 -- can
compare any part of two strings, optionally ignoring case.
Improve qxe() functions in text.c for text comparison.
Use RETURN_NOT_REACHED to try to avoid warnings about unreachable
code.
Add volatile_make_int() to fix warning in unix_send_process().
author | ben |
---|---|
date | Mon, 01 Apr 2002 03:59:04 +0000 |
parents | 2923009caf47 |
children | c10d0c3f965f |
line wrap: on
line diff
--- a/lisp/mule/mule-cmds.el Sun Mar 31 08:30:17 2002 +0000 +++ b/lisp/mule/mule-cmds.el Mon Apr 01 03:59:04 2002 +0000 @@ -1009,22 +1009,29 @@ ;; auto-language-alist deleted. We have a more sophisticated system, ;; with the locales stored in the language data. +(defconst langenv-to-locale-hash (make-hash-table :test 'equal)) + (defun get-language-environment-from-locale (locale) "Convert LOCALE into a language environment. LOCALE is a C library locale string, as returned by `current-locale'. Uses the `locale' property of the language environment." - (block langenv - (dolist (langcons language-info-alist) - (let* ((lang (car langcons)) - (locs (get-language-info lang 'locale)) - (case-fold-search t)) - (dolist (loc (if (listp locs) locs (list locs))) - (if (cond ((functionp loc) - (funcall loc locale)) - ((stringp loc) - (string-match (concat "^" loc "\\([^A-Za-z0-9]\\|$\\)") - locale))) - (return-from langenv lang))))))) + (or (gethash locale langenv-to-locale-hash) + (let ((retval + (block langenv + (dolist (langcons language-info-alist) + (let* ((lang (car langcons)) + (locs (get-language-info lang 'locale)) + (case-fold-search t)) + (dolist (loc (if (listp locs) locs (list locs))) + (if (cond ((functionp loc) + (funcall loc locale)) + ((stringp loc) + (string-match + (concat "^" loc "\\([^A-Za-z0-9]\\|$\\)") + locale))) + (return-from langenv lang)))))))) + (puthash locale retval langenv-to-locale-hash) + retval))) (defun mswindows-get-language-environment-from-locale (ms-locale) "Convert MS-LOCALE (an MS Windows locale) into a language environment.