view etc/=TO-DO @ 32752:923b8d6d8277

Initial check-in: changes for building Emacs under Mac OS. 2000-10-23 Andrew Choi <akochoi@i-cable.com> * dispextern.h [macintosh]: Include macgui.h instead of macterm.h. * dispnew.c [macintosh]: Include macterm.h. (init_display) [macintosh]: initialization for window system. * emacs.c (main) [macintosh]: Call syms_of_textprop, syms_of_macfns, syms_of_ccl, syms_of_fontset, syms_of_xterm, syms_of_search, x_term_init, and init_keyboard before calling init_window_once. Also, call syms_of_xmenu. * fontset.c (syms_of_fontset) [macintosh]: Set ASCII font of default fontset to Monaco. * frame.c [macintosh]: Include macterm.h. Remove declarations of NewMacWindow and DisposeMacWindow. (make_terminal_frame) [macintosh]: Call make_mac_terminal_frame instead of calling NewMacWindow and setting fields of f->output_data.mac directly. Call init_frame_faces. (Fdelete_frame) [macintosh]: Remove unused code. (Fmodify_frame_parameters) [macintosh]: Call x_set_frame_parameters instead of mac_set_frame_parameters. * frame.h [macintosh]: Define menu_bar_lines field in struct frame. Define FRAME_EXTERNAL_MENU_BAR macro. * keyboard.c [macintosh]: Include macterm.h. (kbd_buffer_get_event) [macintosh]: Generate delete_window_event and menu_bar_activate_event type events as for X and NT. (make_lispy_event) [macintosh]: Construct lisp events of type MENU_BAR_EVENT as for X and NT. * sysdep.c [macintosh]: Remove declaration for sys_signal. Include stdlib.h. Remove definition of Vx_bitmap_file_path. (sys_subshell) [macintosh]: Remove definition entirely. (init_sys_modes) [macintosh]: Do not initialize Vwindow_system and Vwindow_system_version here. Remove initialization of Vx_bitmap_file_path. (read_input_waiting): Correct the number of parameters passed to read_socket_hook. Move all Macintosh functions to mac/mac.c. * term.c [macintosh]: Include macterm.h. * window.c [macintosh]: Include macterm.h. * xdisp.c [macintosh]: Include macterm.h. Declare set_frame_menubar and pending_menu_activation. (echo_area_display) [macintosh]: Do not return if terminal frame is the selected frame. (update_menu_bar) [macintosh]: Check FRAME_EXTERNAL_MENU_BAR (f). Allow only the selected frame to set menu bar. (redisplay_window) [macintosh]: Obtain menu bar to redisplay by calling FRAME_EXTERNAL_MENU_BAR (f). (display_menu_bar) [macintosh]: Check FRAME_MAC_P (f). * xfaces.c [macintosh]: Include macterm.h. Define x_display_info and check_x. Declare XCreateGC. Define x_create_gc and x_free_gc. Initialize font_sort_order. (x_face_list_fonts) [macintosh]: Use the same code as WINDOWSNT, but call x_list_fonts instead of w32_list_fonts. (Finternal_face_x_get_resource) [macintosh]: Do not call display_x_get_resource. (prepare_face_for_display) [macintosh]: Set xgcv.font. (realize_x_face) [macintosh]: Load the font if it is specified in ATTRS. (syms_of_xfaces) [macintosh]: Initialize Vscalable_fonts_allowed to Qt. * cus-edit.el (custom-button-face): Use 3D look for mac. (custom-button-pressed-face): Likewise. * faces.el (set-face-attributes-from-resources): Handle mac frames in the same way as x and w32 frames. (face-valid-attribute-values): Likewise. (read-face-attribute): Likewise. (defined-colors): Likewise. (color-defined-p): Likewise. (color-values): Likewise. (display-grayscale-p): Likewise. (face-set-after-frame-default): Likewise. (mode-line): Same default face as for x and w32. (tool-bar): Likewise. * frame.el: Remove call to frame-notice-user-settings at end of the file. * info.el (Info-fontify-node): make underlines invisible for mac as for x, pc, and w32 frame types. * term/mac-win.el: New file.
author Andrew Choi <akochoi@shaw.ca>
date Sun, 22 Oct 2000 16:50:16 +0000
parents 59c8668f70c7
children
line wrap: on
line source

Things useful to do for GNU Emacs:

* Primitive for random access insertion of part of a file.

* Making I/O streams for files, so that read and prin1 can
 be used on files directly.  The I/O stream itself would
 serve as a function to read or write one character.

* If a file you can't write is in a directory you can write,
 make sure it works to modify and save this file.

* Make dired's commands handle correctly the case where
 ls has listed several subdirectories' contents.
 It needs to be able to tell which directory each file
 is really in, by searching backward for the line
 which identifies the start of a directory.

* Add more dired commands, such as sorting (use the
 sort utility through call-process-region).

* Make display.c record inverse-video-ness on
 a character by character basis.  Then make non-full-screen-width
 mode lines inverse video, and display the marked location in
 inverse video.

* VMS code to list a file directory.  Make dired work.

Long range:

   Ideas for extending GNU Emacs to deal with arbitrary character sets.

I would like GNU Emacs to be extended to handle all the world's alphabets
and word signs.  I don't expect to have time to do such a thing in the next
few years, so here are my ideas on the best way to do it.

* Each graphic is represented by a sequence of ordinary 8-bit characters.

* All the characters that make up such a sequence have codes >= 0200.

* The first character of such a sequence is between 0200 and 0237.

* The remaining characters of such a sequence are all 0240 or higher.

* The first character of the sequence determines the number of characters
in the sequence.  Thus, 0200...0207 could start two-character sequences,
0210...0227 could start three-character sequences, and 0230 could start
four-character sequences.  (Codes 0231...0237 would be reserved.)

*  Several common  alphabets,  and  some mathematical   symbols,  would get
two-character sequences.  (Probably Greek,  Russian,  Hebrew(?), Arabic(?),
Korean, and Japanese kana).  The remaining alphabets, and  some versions of
Chinese,  would   get  three-character sequences.    Other  sets of Chinese
characters would get four-character sequences.

Each country that uses Chinese characters has its own standard character
set, and it is not easy to correlate them to avoid overlap.  So there may
need to be several sets of Chinese characters.  That is why they need so
much code space.

True support for Hebrew and Arabic requires dealing with the problem of
writing direction for mixed text; I don't know what to do for that.

* The functions that use syntax table would determine the
syntax of a sequence from its first character.

* Functions in indent.c for computing widths and columns would
determine the width of a sequence from its first character.
So would display routines.

* Only a few other editing routines would need any change.  In
particular, searching and regexp matching might not need any change.

* Most of the work required would be in redisplay.  The only case that
needs to be supported is with X windows, since ordinary terminals
can't display all these characters anyway.

* There might need to be code to translate files from this format
to whatever format is typically stored on disk.


I would be very unhappy with half-measures, such as support for
Japanese only.