Mercurial > hg > xemacs-beta
comparison src/objects-msw.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 | 026c5bf9c134 |
children | a5954632b187 |
comparison
equal
deleted
inserted
replaced
792:4e83fdb13eb9 | 793:e38acbeb1cae |
---|---|
29 | 29 |
30 Jamie Zawinski, Chuck Thompson, Ben Wing | 30 Jamie Zawinski, Chuck Thompson, Ben Wing |
31 Rewritten for mswindows by Jonathan Harris, November 1997 for 21.0. | 31 Rewritten for mswindows by Jonathan Harris, November 1997 for 21.0. |
32 */ | 32 */ |
33 | 33 |
34 /* This function mostly Mule-ized (except perhaps some Unicode splitting). | 34 /* This function Mule-ized by Ben Wing, 3-24-02. */ |
35 5-2000. */ | |
36 | 35 |
37 /* TODO: palette handling */ | 36 /* TODO: palette handling */ |
38 | 37 |
39 #include <config.h> | 38 #include <config.h> |
40 #include "lisp.h" | 39 #include "lisp.h" |
1266 static void | 1265 static void |
1267 mswindows_print_color_instance (Lisp_Color_Instance *c, | 1266 mswindows_print_color_instance (Lisp_Color_Instance *c, |
1268 Lisp_Object printcharfun, | 1267 Lisp_Object printcharfun, |
1269 int escapeflag) | 1268 int escapeflag) |
1270 { | 1269 { |
1271 Char_ASCII buf[32]; | |
1272 COLORREF color = COLOR_INSTANCE_MSWINDOWS_COLOR (c); | 1270 COLORREF color = COLOR_INSTANCE_MSWINDOWS_COLOR (c); |
1273 sprintf (buf, " %06ld=(%04X,%04X,%04X)", color & 0xffffff, | 1271 write_fmt_string (printcharfun, |
1274 GetRValue (color) * 257, GetGValue (color) * 257, | 1272 " %06ld=(%04X,%04X,%04X)", color & 0xffffff, |
1275 GetBValue (color) * 257); | 1273 GetRValue (color) * 257, GetGValue (color) * 257, |
1276 write_c_string (buf, printcharfun); | 1274 GetBValue (color) * 257); |
1277 } | 1275 } |
1278 | 1276 |
1279 static void | 1277 static void |
1280 mswindows_finalize_color_instance (Lisp_Color_Instance *c) | 1278 mswindows_finalize_color_instance (Lisp_Color_Instance *c) |
1281 { | 1279 { |
1289 static int | 1287 static int |
1290 mswindows_color_instance_equal (Lisp_Color_Instance *c1, | 1288 mswindows_color_instance_equal (Lisp_Color_Instance *c1, |
1291 Lisp_Color_Instance *c2, | 1289 Lisp_Color_Instance *c2, |
1292 int depth) | 1290 int depth) |
1293 { | 1291 { |
1294 return (COLOR_INSTANCE_MSWINDOWS_COLOR(c1) == | 1292 return (COLOR_INSTANCE_MSWINDOWS_COLOR (c1) == |
1295 COLOR_INSTANCE_MSWINDOWS_COLOR(c2)); | 1293 COLOR_INSTANCE_MSWINDOWS_COLOR (c2)); |
1296 } | 1294 } |
1297 | 1295 |
1298 static unsigned long | 1296 static unsigned long |
1299 mswindows_color_instance_hash (Lisp_Color_Instance *c, int depth) | 1297 mswindows_color_instance_hash (Lisp_Color_Instance *c, int depth) |
1300 { | 1298 { |
1301 return (unsigned long) COLOR_INSTANCE_MSWINDOWS_COLOR(c); | 1299 return (unsigned long) COLOR_INSTANCE_MSWINDOWS_COLOR (c); |
1302 } | 1300 } |
1303 | 1301 |
1304 static Lisp_Object | 1302 static Lisp_Object |
1305 mswindows_color_instance_rgb_components (Lisp_Color_Instance *c) | 1303 mswindows_color_instance_rgb_components (Lisp_Color_Instance *c) |
1306 { | 1304 { |
1676 static void | 1674 static void |
1677 mswindows_print_font_instance (Lisp_Font_Instance *f, | 1675 mswindows_print_font_instance (Lisp_Font_Instance *f, |
1678 Lisp_Object printcharfun, | 1676 Lisp_Object printcharfun, |
1679 int escapeflag) | 1677 int escapeflag) |
1680 { | 1678 { |
1681 Intbyte buf[10]; | 1679 write_fmt_string (printcharfun, " 0x%lx", |
1682 qxesprintf (buf, " 0x%lx", | 1680 (unsigned long) |
1683 (unsigned long)FONT_INSTANCE_MSWINDOWS_HFONT_VARIANT (f,0,0)); | 1681 FONT_INSTANCE_MSWINDOWS_HFONT_VARIANT (f, 0, 0)); |
1684 write_string (buf, printcharfun); | 1682 |
1685 } | 1683 } |
1686 | 1684 |
1687 static Lisp_Object | 1685 static Lisp_Object |
1688 mswindows_list_fonts (Lisp_Object pattern, Lisp_Object device) | 1686 mswindows_list_fonts (Lisp_Object pattern, Lisp_Object device) |
1689 { | 1687 { |
1727 | 1725 |
1728 #### does not canonicalize given fields! needs to be merged | 1726 #### does not canonicalize given fields! needs to be merged |
1729 with initialize_font_instance(). */ | 1727 with initialize_font_instance(). */ |
1730 | 1728 |
1731 int nsep = 0; | 1729 int nsep = 0; |
1732 CIntbyte *ptr = (CIntbyte *) XSTRING_DATA (f->name); | 1730 Intbyte *ptr = (Intbyte *) XSTRING_DATA (f->name); |
1733 CIntbyte *name = (CIntbyte *) alloca (XSTRING_LENGTH (f->name) + 19); | 1731 Intbyte *name = (Intbyte *) alloca (XSTRING_LENGTH (f->name) + 19); |
1734 | 1732 |
1735 strcpy (name, ptr); | 1733 qxestrcpy (name, ptr); |
1736 | 1734 |
1737 while ((ptr = strchr (ptr, ':')) != 0) | 1735 while ((ptr = qxestrchr (ptr, ':')) != 0) |
1738 { | 1736 { |
1739 ptr++; | 1737 ptr++; |
1740 nsep++; | 1738 nsep++; |
1741 } | 1739 } |
1742 | 1740 |
1743 switch (nsep) | 1741 switch (nsep) |
1744 { | 1742 { |
1745 case 0: | 1743 case 0: |
1746 strcat (name, ":Regular:10::Western"); | 1744 qxestrcat (name, ":Regular:10::Western"); |
1747 break; | 1745 break; |
1748 case 1: | 1746 case 1: |
1749 strcat (name, ":10::Western"); | 1747 qxestrcat (name, ":10::Western"); |
1750 break; | 1748 break; |
1751 case 2: | 1749 case 2: |
1752 strcat (name, "::Western"); | 1750 qxestrcat (name, "::Western"); |
1753 break; | 1751 break; |
1754 case 3: | 1752 case 3: |
1755 strcat (name, ":Western"); | 1753 qxestrcat (name, ":Western"); |
1756 break; | 1754 break; |
1757 default:; | 1755 default:; |
1758 } | 1756 } |
1759 | 1757 |
1760 return build_string (name); | 1758 return build_string (name); |
1868 else | 1866 else |
1869 { | 1867 { |
1870 HDC hdc = CreateCompatibleDC (NULL); | 1868 HDC hdc = CreateCompatibleDC (NULL); |
1871 Lisp_Object font_list = DEVICE_MSWINDOWS_FONTLIST (d); | 1869 Lisp_Object font_list = DEVICE_MSWINDOWS_FONTLIST (d); |
1872 HFONT hfont = create_hfont_from_font_spec (the_nonreloc, hdc, Qnil, | 1870 HFONT hfont = create_hfont_from_font_spec (the_nonreloc, hdc, Qnil, |
1873 font_list, ERROR_ME_NOT); | 1871 font_list, |
1872 ERROR_ME_DEBUG_WARN); | |
1874 | 1873 |
1875 if (!hfont || !(hfont = (HFONT) SelectObject (hdc, hfont))) | 1874 if (!hfont || !(hfont = (HFONT) SelectObject (hdc, hfont))) |
1876 { | 1875 { |
1877 nope: | 1876 nope: |
1878 DeleteDC (hdc); | 1877 DeleteDC (hdc); |