comparison man/internals/internals.texi @ 4320:a78603f584d7

Spelling fixes.
author "Ville Skyttä <scop@xemacs.org>"
date Mon, 10 Dec 2007 00:39:56 +0200
parents fcc999c434bc
children cff4ad0ab682
comparison
equal deleted inserted replaced
4319:74d00c7cc134 4320:a78603f584d7
945 @item 945 @item
946 Menus: Jamie Zawinski, someone at Lucid (Lucid menus) 946 Menus: Jamie Zawinski, someone at Lucid (Lucid menus)
947 @item 947 @item
948 Scrollbars: Chuck Thompson, ??? (Lucid scrollbar) 948 Scrollbars: Chuck Thompson, ??? (Lucid scrollbar)
949 @item 949 @item
950 Multi-device/device-independence work (console/device/etc methods): Ben Wing, prototype by chuck thompson 950 Multi-device/device-independence work (console/device/etc methods): Ben Wing, prototype by Chuck Thompson
951 @item 951 @item
952 Faces: first implementation, Jamie Zawinski; second, chuck; third, Ben Wing 952 Faces: first implementation, Jamie Zawinski; second, chuck; third, Ben Wing
953 @item 953 @item
954 Fonts/colors: first implementation, Jamie Zawinski; further work, Ben Wing 954 Fonts/colors: first implementation, Jamie Zawinski; further work, Ben Wing
955 @item 955 @item
956 Toolbars: implementation, chuck, much interface work, Ben Wing 956 Toolbars: implementation, Chuck, much interface work, Ben Wing
957 @item 957 @item
958 Gutters, tabs: andy piper 958 Gutters, tabs: Andy Piper
959 @end itemize 959 @end itemize
960 960
961 @item Device subsystems 961 @item Device subsystems
962 @itemize @minus 962 @itemize @minus
963 @item 963 @item
964 X Windows: Jamie Zawinksi, Ben Wing, others 964 X Windows: Jamie Zawinski, Ben Wing, others
965 @item 965 @item
966 GTK: William Perry, Malcolm Purvis 966 GTK: William Perry, Malcolm Purvis
967 @item 967 @item
968 MS Windows: initial implementation, Jonathan Harris; some more work, Andy Piper, Ben Wing 968 MS Windows: initial implementation, Jonathan Harris; some more work, Andy Piper, Ben Wing
969 @item 969 @item
973 @end itemize 973 @end itemize
974 974
975 @item Misc 975 @item Misc
976 @itemize @minus 976 @itemize @minus
977 @item 977 @item
978 Configure: initial porting from fsf, Chuck Thompson; conversion to autoconf 2, much rewriting, Martin Buchholz 978 Configure: initial porting from FSF, Chuck Thompson; conversion to autoconf 2, much rewriting, Martin Buchholz
979 @item 979 @item
980 Most initialization-related code: Ben Wing 980 Most initialization-related code: Ben Wing
981 @item 981 @item
982 Internals manual, much of Lisp manual: Ben Wing 982 Internals manual, much of Lisp manual: Ben Wing
983 @item 983 @item
1021 @item 1021 @item
1022 Stephen Turnbull has produced many of the beta and semi-stable releases 1022 Stephen Turnbull has produced many of the beta and semi-stable releases
1023 and has attempted to be the "face" of XEmacs on the newsgroups and 1023 and has attempted to be the "face" of XEmacs on the newsgroups and
1024 mailing lists. 1024 mailing lists.
1025 @item 1025 @item
1026 Steve Youngs, Ville Skytta, and now Norbert Koch have taken turns 1026 Steve Youngs, Ville Skytt䬠and now Norbert Koch have taken turns
1027 maintaining the packages. 1027 maintaining the packages.
1028 @item 1028 @item
1029 Vin Shelton maintains the stable releases. 1029 Vin Shelton maintains the stable releases.
1030 @item 1030 @item
1031 Testing - #### Norbert, Adrian, ??? 1031 Testing - #### Norbert, Adrian, ???
1035 @c fix this! 1035 @c fix this!
1036 1036
1037 @table @asis 1037 @table @asis
1038 1038
1039 @item Jamie Zawinski, Eric Benson, Matthieu Devin, Harlan Sexton 1039 @item Jamie Zawinski, Eric Benson, Matthieu Devin, Harlan Sexton
1040 These were the early creators of Lucid Emacs, the predecessor of Xemacs. 1040 These were the early creators of Lucid Emacs, the predecessor of XEmacs.
1041 Jamie Zawinski was the primary maintainer and coder for Lucid Emacs, 1041 Jamie Zawinski was the primary maintainer and coder for Lucid Emacs,
1042 active between early 1991 and June 1994. He presided over versions 19.0 1042 active between early 1991 and June 1994. He presided over versions 19.0
1043 through 19.10, and then abruptly left for Netscape. He wrote the 1043 through 19.10, and then abruptly left for Netscape. He wrote the
1044 event stream code, the Xt interface code, the byte compiler, the 1044 event stream code, the Xt interface code, the byte compiler, the
1045 original version of the X selection code, the first, second and third 1045 original version of the X selection code, the first, second and third
1052 1052
1053 @item Richard Mlynarik 1053 @item Richard Mlynarik
1054 Active 1991 to 1993, author of much of the current Lisp object scheme, 1054 Active 1991 to 1993, author of much of the current Lisp object scheme,
1055 including Lrecords and LC records (added this support in 1993 to allow 1055 including Lrecords and LC records (added this support in 1993 to allow
1056 for 28-bit pointers, which had previously been restricted to 26 bits.) 1056 for 28-bit pointers, which had previously been restricted to 26 bits.)
1057 Moved the minibuffer and abbreve code into Lisp, worked on the keymap 1057 Moved the minibuffer and abbrev code into Lisp, worked on the keymap
1058 code and did the initial synching between Xemacs and the first released 1058 code and did the initial synching between XEmacs and the first released
1059 version of GNU Emacs version 19 in mid-1993. 1059 version of GNU Emacs version 19 in mid-1993.
1060 1060
1061 @item Martin Buchholz 1061 @item Martin Buchholz
1062 Active 1995 to 2001, maintainer of Xemacs late 1999 to ?, author of the 1062 Active 1995 to 2001, maintainer of XEmacs late 1999 to ?, author of the
1063 current configure support, mini optimizations to the byte interpreter, 1063 current configure support, mini optimizations to the byte interpreter,
1064 many improvements to the case changing code and many bug fixes to the 1064 many improvements to the case changing code and many bug fixes to the
1065 process and system-specific code, also general spell checking and code 1065 process and system-specific code, also general spell checking and code
1066 cleanliness guru. 1066 cleanliness guru.
1067 1067
1068 @item Steve Baur 1068 @item Steve Baur
1069 Maintainer of Xemacs 1996 to 1999, responsible for many improvements to 1069 Maintainer of XEmacs 1996 to 1999, responsible for many improvements to
1070 the Xemacs development process, for example, creation of the review 1070 the XEmacs development process, for example, creation of the review
1071 board and arranging for Xemacs to be placed under CVS. Author of the 1071 board and arranging for XEmacs to be placed under CVS. Author of the
1072 package code. 1072 package code.
1073 1073
1074 @item Chuck Thompson 1074 @item Chuck Thompson
1075 Active January 1993 to June 1996, author of the current and previous 1075 Active January 1993 to June 1996, author of the current and previous
1076 versions of the redisplay code and maintainer of Xemacs from mid-1994 1076 versions of the redisplay code and maintainer of XEmacs from mid-1994
1077 to mid-1996. Creator of XEMacs.org. Also wrote the scrollbar code, the 1077 to mid-1996. Creator of xemacs.org. Also wrote the scrollbar code, the
1078 original configure support, and prototype versions of the toolbar and 1078 original configure support, and prototype versions of the toolbar and
1079 device code. 1079 device code.
1080 1080
1081 @item Ben Wing 1081 @item Ben Wing
1082 Active April 1993 to April 1996 and February 2000 to present. Chief 1082 Active April 1993 to April 1996 and February 2000 to present. Chief
1083 coder for Xemacs between 1994 and 1996. Ben Wing was never the 1083 coder for XEmacs between 1994 and 1996. Ben Wing was never the
1084 maintainer of Xemacs, and as a result, is the author of more of the 1084 maintainer of XEmacs, and as a result, is the author of more of the
1085 Xemacs specific code in Xemacs than anyone else. Author of the mule 1085 XEmacs specific code in XEmacs than anyone else. Author of the mule
1086 support (Extense code), the glis-phonetically spelled-and specifiers 1086 support (Extense code), the glis-phonetically spelled-and specifiers
1087 code most of the toolbars, and device distraction code, the error 1087 code most of the toolbars, and device distraction code, the error
1088 checking code, the Lstream code, the bit vector, char-table, and 1088 checking code, the Lstream code, the bit vector, char-table, and
1089 range-table code, much of the current Xt code, much, much of the events 1089 range-table code, much of the current Xt code, much, much of the events
1090 code (including most of the TTY event code), some of the phase code, and 1090 code (including most of the TTY event code), some of the phase code, and
1091 numerous other aspects of the code. Also author of most of the Xemacs 1091 numerous other aspects of the code. Also author of most of the XEmacs
1092 documentation including the internals manual and the Xemacs editions to 1092 documentation including the internals manual and the XEmacs editions to
1093 the Lisp reference manual, and responsible for much of the synching 1093 the Lisp reference manual, and responsible for much of the synching
1094 between Xemacs and GNU Emacs. 1094 between XEmacs and GNU Emacs.
1095 1095
1096 @item Kyle Jones 1096 @item Kyle Jones
1097 Author of the minimal tag bits support, which allows for 32-bit 1097 Author of the minimal tag bits support, which allows for 32-bit
1098 pointers and 31-bit integers. 1098 pointers and 31-bit integers.
1099 1099
1158 contained in the various lisp object structures and associated 1158 contained in the various lisp object structures and associated
1159 structures. 1159 structures.
1160 1160
1161 @item alloca.c 1161 @item alloca.c
1162 Inherited a long time ago from a prerelease version of GNU Emacs 19, 1162 Inherited a long time ago from a prerelease version of GNU Emacs 19,
1163 kept in sync with more recent versions very few changes from Xemacs. 1163 kept in sync with more recent versions very few changes from XEmacs.
1164 Most changes consist of converting the code to ANSI C, and fixing up the 1164 Most changes consist of converting the code to ANSI C, and fixing up the
1165 includes at the top of the file to follow Xemacs conventions. 1165 includes at the top of the file to follow XEmacs conventions.
1166 1166
1167 @item alloca.s 1167 @item alloca.s
1168 Inherited almost unchanged from FSF kept in sync up through 19.30 1168 Inherited almost unchanged from FSF kept in sync up through 19.30
1169 basically no changes for Xemacs. 1169 basically no changes for XEmacs.
1170 @end table 1170 @end table
1171 @end ignore 1171 @end ignore
1172 1172
1173 @node A History of Emacs, The XEmacs Split, Authorship of XEmacs, Top 1173 @node A History of Emacs, The XEmacs Split, Authorship of XEmacs, Top
1174 @chapter A History of Emacs 1174 @chapter A History of Emacs
1273 1273
1274 The problem is that, when I press an arrow key, it isn't 1274 The problem is that, when I press an arrow key, it isn't
1275 transmitted/read by emacs (one or the other) correctly. 1275 transmitted/read by emacs (one or the other) correctly.
1276 The 4410 terminal description that I'm using defines up=M-[A 1276 The 4410 terminal description that I'm using defines up=M-[A
1277 (it appears as ^[[A, with the initial ^[ as one character). 1277 (it appears as ^[[A, with the initial ^[ as one character).
1278 Pressting cntrl-Q up_arrow while in emacs shows me the same thing. 1278 Pressing Ctrl-Q up_arrow while in emacs shows me the same thing.
1279 On the vt100 the same thing happens but the terminal file says up=M-A 1279 On the vt100 the same thing happens but the terminal file says up=M-A
1280 (it appears as ^[A). I've tried every other imaginable up= but get 1280 (it appears as ^[A). I've tried every other imaginable up= but get
1281 the same results. I've also been unsuccessful writing a macro that 1281 the same results. I've also been unsuccessful writing a macro that
1282 understands what my keyboard is saying. 1282 understands what my keyboard is saying.
1283 1283
1284 Any ideas on how I can get the arrow keys to do somethingt? 1284 Any ideas on how I can get the arrow keys to do something?
1285 Anything? Thanks in advance. 1285 Anything? Thanks in advance.
1286 1286
1287 --Bruce Burger AT&T-Information Systems Freehold, NJ 1287 --Bruce Burger AT&T-Information Systems Freehold, NJ
1288 @{...ihnp4!@}hogpc!btb (201) 577-5230 1288 @{...ihnp4!@}hogpc!btb (201) 577-5230
1289 @end example 1289 @end example
1749 Jonathan Harris, Andy Piper, Ben Wing and Kirill Katsnelson. Hrvoje 1749 Jonathan Harris, Andy Piper, Ben Wing and Kirill Katsnelson. Hrvoje
1750 Niksic and Kyle Jones figured prominently in XEmacs development during 1750 Niksic and Kyle Jones figured prominently in XEmacs development during
1751 these same years. Steve Baur added the package system in 1997 (?), 1751 these same years. Steve Baur added the package system in 1997 (?),
1752 and Olivier Galibert also added the portable dumper support around 1752 and Olivier Galibert also added the portable dumper support around
1753 2000. Martin Buchholz took over from Steve Baur as release manager in 1753 2000. Martin Buchholz took over from Steve Baur as release manager in
1754 late 1998 (?), and continued in this position through to eary 2000 1754 late 1998 (?), and continued in this position through to early 2000
1755 (?), when Stephen Turnbull took it over. XEmacs has also been split 1755 (?), when Stephen Turnbull took it over. XEmacs has also been split
1756 into stable and experimental branches since early 1999, and Vin 1756 into stable and experimental branches since early 1999, and Vin
1757 Shelton has been the release manager of the stable branches since the 1757 Shelton has been the release manager of the stable branches since the
1758 beginning. Ben Wing suffered severe pain problems throughout much of 1758 beginning. Ben Wing suffered severe pain problems throughout much of
1759 this time, making him unable to use his hands, but he contributed when 1759 this time, making him unable to use his hands, but he contributed when
4628 @heading XEmacs merged option support 4628 @heading XEmacs merged option support
4629 4629
4630 Autoconf 2.59 divides the @file{configure} options into those that 4630 Autoconf 2.59 divides the @file{configure} options into those that
4631 specify features (@samp{--enable}) and those that specify external 4631 specify features (@samp{--enable}) and those that specify external
4632 libraries (@samp{--with}). Many XEmacs options to not fall neatly into 4632 libraries (@samp{--with}). Many XEmacs options to not fall neatly into
4633 either of these catagories and so as a matter of policy all options can 4633 either of these categories and so as a matter of policy all options can
4634 be specified by either method. 4634 be specified by either method.
4635 4635
4636 These merged options are declared with the @code{XE_MERGED_ARG} macro. 4636 These merged options are declared with the @code{XE_MERGED_ARG} macro.
4637 The arguments to the option are the same as @code{AC_ARG_WITH} and 4637 The arguments to the option are the same as @code{AC_ARG_WITH} and
4638 @code{AC_ARG_ENABLE} and code that worked with either of these macros 4638 @code{AC_ARG_ENABLE} and code that worked with either of these macros
4658 pre-defined values (if support for sets of values is needed, x1see 4658 pre-defined values (if support for sets of values is needed, x1see
4659 ``complex options'' below). For example, 4659 ``complex options'' below). For example,
4660 @samp{--with-mail-locking=flock}. 4660 @samp{--with-mail-locking=flock}.
4661 4661
4662 Keyword options are defined with an expanded form of 4662 Keyword options are defined with an expanded form of
4663 @samp{XE_MERGED_ARG} called @samp{XE_KEYWORD_ARG}, which taks 5 4663 @samp{XE_MERGED_ARG} called @samp{XE_KEYWORD_ARG}, which takes 5
4664 parameters. The first 4 parameters are the same as original macro with 4664 parameters. The first 4 parameters are the same as original macro with
4665 the exception that all of these four parameters are @strong{required}. 4665 the exception that all of these four parameters are @strong{required}.
4666 The @var{action-if-true} code is run after the argument list has been 4666 The @var{action-if-true} code is run after the argument list has been
4667 parsed. 4667 parsed.
4668 4668
5952 5952
5953 Sometimes major textual changes are made to the source. This means that 5953 Sometimes major textual changes are made to the source. This means that
5954 a search-and-replace is done to change type names and such. Some people 5954 a search-and-replace is done to change type names and such. Some people
5955 disagree with such changes, and certainly if done without good reason 5955 disagree with such changes, and certainly if done without good reason
5956 will just lead to headaches. But it's important to keep the code clean 5956 will just lead to headaches. But it's important to keep the code clean
5957 and understable, and consistent naming goes a long way towards this. 5957 and understandable, and consistent naming goes a long way towards this.
5958 5958
5959 An example of the right way to do this was the so-called "great integral 5959 An example of the right way to do this was the so-called "great integral
5960 type renaming". 5960 type renaming".
5961 5961
5962 @menu 5962 @menu
11326 Textual searches can simply treat encoded strings as if they 11326 Textual searches can simply treat encoded strings as if they
11327 were encoded in a one-byte-per-character fashion rather than 11327 were encoded in a one-byte-per-character fashion rather than
11328 the actual multi-byte encoding. 11328 the actual multi-byte encoding.
11329 @end enumerate 11329 @end enumerate
11330 11330
11331 None of the pre-Unciode standard non-modal encodings meet all of these 11331 None of the pre-Unicode standard non-modal encodings meet all of these
11332 conditions. For example, EUC satisfies only (2) and (3), while 11332 conditions. For example, EUC satisfies only (2) and (3), while
11333 Shift-JIS and Big5 (not yet described) satisfy only (2). (All non-modal 11333 Shift-JIS and Big5 (not yet described) satisfy only (2). (All non-modal
11334 encodings must satisfy (2), in order to be unambiguous.) UTF-8, 11334 encodings must satisfy (2), in order to be unambiguous.) UTF-8,
11335 however, meets all three, and we are considering moving to it as an 11335 however, meets all three, and we are considering moving to it as an
11336 internal encoding. 11336 internal encoding.
11513 like UTF-7), but only uses uppercase A-V and 0-9, and only encodes 4 11513 like UTF-7), but only uses uppercase A-V and 0-9, and only encodes 4
11514 bits worth of data per character. UTF-5 is meant for encoding Unicode 11514 bits worth of data per character. UTF-5 is meant for encoding Unicode
11515 inside of DNS names. 11515 inside of DNS names.
11516 @end itemize 11516 @end itemize
11517 11517
11518 Thus, we can imagine three levels in the representation of texual data: 11518 Thus, we can imagine three levels in the representation of textual data:
11519 11519
11520 @example 11520 @example
11521 series of characters -> series of textual units -> series of bytes 11521 series of characters -> series of textual units -> series of bytes
11522 [Ichar] [Itext] [Ibyte] 11522 [Ichar] [Itext] [Ibyte]
11523 @end example 11523 @end example
12093 12093
12094 To declare an Eistring, either put one of the following in the local 12094 To declare an Eistring, either put one of the following in the local
12095 variable section: 12095 variable section:
12096 12096
12097 DECLARE_EISTRING (name); 12097 DECLARE_EISTRING (name);
12098 Declare a new Eistring and initialize it to the empy string. This 12098 Declare a new Eistring and initialize it to the empty string. This
12099 is a standard local variable declaration and can go anywhere in the 12099 is a standard local variable declaration and can go anywhere in the
12100 variable declaration section. NAME itself is declared as an 12100 variable declaration section. NAME itself is declared as an
12101 Eistring *, and its storage declared on the stack. 12101 Eistring *, and its storage declared on the stack.
12102 12102
12103 DECLARE_EISTRING_MALLOC (name); 12103 DECLARE_EISTRING_MALLOC (name);