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