comparison src/editfns.c @ 793:e38acbeb1cae

[xemacs-hg @ 2002-03-29 04:46:17 by ben] lots o' fixes etc/ChangeLog: New file. Separated out all entries for etc/ into their own ChangeLog. Includes entries for the following files: etc/BABYL, etc/BETA, etc/CHARSETS, etc/DISTRIB, etc/Emacs.ad, etc/FTP, etc/GNUS-NEWS, etc/GOATS, etc/HELLO, etc/INSTALL, etc/MACHINES, etc/MAILINGLISTS, etc/MSDOS, etc/MYTHOLOGY, etc/NEWS, etc/OXYMORONS, etc/PACKAGES, etc/README, etc/TUTORIAL, etc/TUTORIAL.de, etc/TUTORIAL.ja, etc/TUTORIAL.ko, etc/TUTORIAL.se, etc/aliases.ksh, etc/altrasoft-logo.xpm, etc/check_cygwin_setup.sh, etc/custom/example-themes/europe-theme.el, etc/custom/example-themes/ex-custom-file, etc/custom/example-themes/example-theme.el, etc/e/eterm.ti, etc/edt-user.doc, etc/enriched.doc, etc/etags.1, etc/gnuserv.1, etc/gnuserv.README, etc/package-index.LATEST.gpg, etc/package-index.LATEST.pgp, etc/photos/jan.png, etc/recycle.xpm, etc/refcard.tex, etc/sample.Xdefaults, etc/sample.emacs, etc/sgml/CATALOG, etc/sgml/HTML32.dtd, etc/skk/SKK.tut.E, etc/smilies/Face_ase.xbm, etc/smilies/Face_ase2.xbm, etc/smilies/Face_ase3.xbm, etc/smilies/Face_smile.xbm, etc/smilies/Face_weep.xbm, etc/sounds, etc/toolbar, etc/toolbar/workshop-cap-up.xpm, etc/xemacs-ja.1, etc/xemacs.1, etc/yow.lines, etc\BETA, etc\NEWS, etc\README, etc\TUTORIAL, etc\TUTORIAL.de, etc\check_cygwin_setup.sh, etc\sample.init.el, etc\unicode\README, etc\unicode\mule-ucs\*, etc\unicode\other\* unicode/unicode-consortium/8859-16.TXT: New file. mule/english.el: Define this charset now, since a bug was fixed that formerly prevented it. mule/ethio-util.el: Fix compile errors involving Unicode `characters', which should be integers. Makefile.in.in: Always include gui.c, to fix compile error when TTY-only. EmacsFrame.c, abbrev.c, alloc.c, buffer.c, buffer.h, bytecode.c, bytecode.h, callint.c, callproc.c, casetab.c, casetab.h, charset.h, chartab.c, chartab.h, cmds.c, console-msw.c, console-msw.h, console-tty.c, console-x.c, console-x.h, console.c, console.h, data.c, database.c, device-gtk.c, device-msw.c, device-x.c, device.c, device.h, dialog-msw.c, doc.c, doprnt.c, dumper.c, dynarr.c, editfns.c, eldap.c, eldap.h, elhash.c, elhash.h, emacs.c, eval.c, event-Xt.c, event-gtk.c, event-msw.c, event-stream.c, event-tty.c, event-unixoid.c, events.c, events.h, extents.c, extents.h, faces.c, faces.h, file-coding.c, file-coding.h, fileio.c, filelock.c, fns.c, frame-gtk.c, frame-msw.c, frame-tty.c, frame-x.c, frame.c, frame.h, free-hook.c, general-slots.h, glyphs-eimage.c, glyphs-gtk.c, glyphs-msw.c, glyphs-widget.c, glyphs-x.c, glyphs.c, glyphs.h, gpmevent.c, gtk-xemacs.c, gui-msw.c, gui-x.c, gui-x.h, gui.c, gui.h, gutter.c, gutter.h, indent.c, input-method-xlib.c, insdel.c, keymap.c, keymap.h, lisp-disunion.h, lisp-union.h, lisp.h, lread.c, lrecord.h, lstream.c, lstream.h, marker.c, menubar-gtk.c, menubar-msw.c, menubar-x.c, menubar.c, minibuf.c, mule-canna.c, mule-ccl.c, mule-charset.c, mule-wnnfns.c, native-gtk-toolbar.c, objects-msw.c, objects-tty.c, objects-x.c, objects.c, objects.h, opaque.c, opaque.h, postgresql.c, postgresql.h, print.c, process-unix.c, process.c, process.h, rangetab.c, rangetab.h, redisplay-gtk.c, redisplay-msw.c, redisplay-output.c, redisplay-tty.c, redisplay-x.c, redisplay.c, scrollbar-gtk.c, scrollbar-msw.c, scrollbar-x.c, scrollbar.c, scrollbar.h, search.c, select-gtk.c, select-x.c, sound.c, specifier.c, specifier.h, strftime.c, symbols.c, symeval.h, syntax.h, text.c, text.h, toolbar-common.c, toolbar-msw.c, toolbar.c, toolbar.h, tooltalk.c, tooltalk.h, ui-gtk.c, ui-gtk.h, undo.c, vm-limit.c, window.c, window.h: Eliminate XSETFOO. Replace all usages with wrap_foo(). Make symbol->name a Lisp_Object, not Lisp_String *. Eliminate nearly all uses of Lisp_String * in favor of Lisp_Object, and correct macros so most of them favor Lisp_Object. Create new error-behavior ERROR_ME_DEBUG_WARN -- output warnings, but at level `debug' (usually ignored). Use it when instantiating specifiers, so problems can be debugged. Move log-warning-minimum-level into C so that we can optimize ERROR_ME_DEBUG_WARN. Fix warning levels consistent with new definitions. Add default_ and parent fields to char table; not yet implemented. New fun Dynarr_verify(); use for further error checking on Dynarrs. Rearrange code at top of lisp.h in conjunction with dynarr changes. Fix eifree(). Use Eistrings in various places (format_event_object(), where_is_to_char(), and callers thereof) to avoid fixed-size strings buffers. New fun write_eistring(). Reindent and fix GPM code to follow standards. Set default MS Windows font to Lucida Console (same size as Courier New but less interline spacing, so more lines fit). Increase default frame size on Windows to 50 lines. (If that's too big for the workspace, the frame will be shrunk as necessary.) Fix problem with text files with no newlines (). (Change `convert-eol' coding system to use `nil' for autodetect, consistent with make-coding-system.) Correct compile warnings in vm-limit.c. Fix handling of reverse-direction charsets to avoid errors when opening (e.g.) mule-ucs/lisp/reldata/uiso8859-6.el. Recode some object printing methods to use write_fmt_string() instead of a fixed buffer and sprintf. Turn on display of png comments as warnings (level `info'), now that they're unobtrusive. Revamped the sound documentation. Fixed bug in redisplay w.r.t. hscroll/truncation/continuation glyphs causing jumping up and down of the lines, since they're bigger than the line size. (It was seen most obviously when there's a horizontal scroll bar, e.g. do C-h a glyph or something like that.) The problem was that the glyph-contrib-p setting on glyphs was ignored even if it was set properly, which it wasn't until now.
author ben
date Fri, 29 Mar 2002 04:49:13 +0000
parents 943eaba38521
children a5954632b187
comparison
equal deleted inserted replaced
792:4e83fdb13eb9 793:e38acbeb1cae
128 Convert arg STRING to a character, the first character of that string. 128 Convert arg STRING to a character, the first character of that string.
129 An empty string will return the constant `nil'. 129 An empty string will return the constant `nil'.
130 */ 130 */
131 (string)) 131 (string))
132 { 132 {
133 Lisp_String *p;
134 CHECK_STRING (string); 133 CHECK_STRING (string);
135 134
136 p = XSTRING (string); 135 if (XSTRING_LENGTH (string) != 0)
137 if (string_length (p) != 0) 136 return make_char (XSTRING_CHAR (string, 0));
138 return make_char (string_char (p, 0));
139 else 137 else
140 /* This used to return Qzero. That is broken, broken, broken. */ 138 /* This used to return Qzero. That is broken, broken, broken. */
141 /* It might be kinder to signal an error directly. -slb */ 139 /* It might be kinder to signal an error directly. -slb */
142 return Qnil; 140 return Qnil;
143 } 141 }
703 needed but a Lisp Object is not. The UID is passed by 701 needed but a Lisp Object is not. The UID is passed by
704 reference. If UID == NULL, then the USER name 702 reference. If UID == NULL, then the USER name
705 for the user running XEmacs will be returned. This 703 for the user running XEmacs will be returned. This
706 corresponds to a nil argument to Fuser_login_name. 704 corresponds to a nil argument to Fuser_login_name.
707 705
708 WARNING: The string returned comes from the data of a Lisp_String and 706 WARNING: The string returned comes from the data of a Lisp string and
709 therefore will become garbage after the next GC. 707 therefore will become garbage after the next GC.
710 */ 708 */
711 Intbyte * 709 Intbyte *
712 user_login_name (uid_t *uid) 710 user_login_name (uid_t *uid)
713 { 711 {
759 ()) 757 ())
760 { 758 {
761 struct passwd *pw = qxe_getpwuid (getuid ()); 759 struct passwd *pw = qxe_getpwuid (getuid ());
762 /* #### - I believe this should return nil instead of "unknown" when pw==0 */ 760 /* #### - I believe this should return nil instead of "unknown" when pw==0 */
763 761
764 Lisp_Object tem = build_string (pw ? pw->pw_name : "unknown"); 762 return build_string (pw ? pw->pw_name : "unknown");
765 return tem;
766 } 763 }
767 764
768 DEFUN ("user-uid", Fuser_uid, 0, 0, 0, /* 765 DEFUN ("user-uid", Fuser_uid, 0, 0, 0, /*
769 Return the effective uid of Emacs, as an integer. 766 Return the effective uid of Emacs, as an integer.
770 */ 767 */
1856 1853
1857 get_buffer_range_char (buf, start, end, &pos, &stop, 0); 1854 get_buffer_range_char (buf, start, end, &pos, &stop, 0);
1858 mc_count = begin_multiple_change (buf, pos, stop); 1855 mc_count = begin_multiple_change (buf, pos, stop);
1859 if (STRINGP (table)) 1856 if (STRINGP (table))
1860 { 1857 {
1861 Lisp_String *stable = XSTRING (table); 1858 Charcount size = XSTRING_CHAR_LENGTH (table);
1862 Charcount size = string_char_length (stable);
1863 #ifdef MULE 1859 #ifdef MULE
1864 /* Under Mule, string_char(n) is O(n), so for large tables or 1860 /* Under Mule, XSTRING_CHAR(n) is O(n), so for large tables or
1865 large regions it makes sense to create an array of Emchars. */ 1861 large regions it makes sense to create an array of Emchars. */
1866 if (size * (stop - pos) > 65536) 1862 if (size * (stop - pos) > 65536)
1867 { 1863 {
1868 Emchar *etable = alloca_array (Emchar, size); 1864 Emchar *etable = alloca_array (Emchar, size);
1869 convert_intbyte_string_into_emchar_string 1865 convert_intbyte_string_into_emchar_string
1870 (string_data (stable), string_length (stable), etable); 1866 (XSTRING_DATA (table), XSTRING_LENGTH (table), etable);
1871 for (; pos < stop && (oc = BUF_FETCH_CHAR (buf, pos), 1); pos++) 1867 for (; pos < stop && (oc = BUF_FETCH_CHAR (buf, pos), 1); pos++)
1872 { 1868 {
1873 if (oc < size) 1869 if (oc < size)
1874 { 1870 {
1875 Emchar nc = etable[oc]; 1871 Emchar nc = etable[oc];
1886 { 1882 {
1887 for (; pos < stop && (oc = BUF_FETCH_CHAR (buf, pos), 1); pos++) 1883 for (; pos < stop && (oc = BUF_FETCH_CHAR (buf, pos), 1); pos++)
1888 { 1884 {
1889 if (oc < size) 1885 if (oc < size)
1890 { 1886 {
1891 Emchar nc = string_char (stable, oc); 1887 Emchar nc = XSTRING_CHAR (table, oc);
1892 if (nc != oc) 1888 if (nc != oc)
1893 { 1889 {
1894 buffer_replace_char (buf, pos, nc, 0, 0); 1890 buffer_replace_char (buf, pos, nc, 0, 0);
1895 ++cnt; 1891 ++cnt;
1896 } 1892 }