Mercurial > hg > xemacs-beta
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 } |