changeset 2507:e27943beb30f

[xemacs-hg @ 2005-01-26 09:48:24 by ben] Update Internals History internals/internals.texi: Update History. internals/internals.texi: Redo section on Windows 95 support for Unicode.
author ben
date Wed, 26 Jan 2005 09:48:27 +0000
parents 8c96bdabcaf9
children 14f65fa1e69e
files man/ChangeLog man/internals/internals.texi
diffstat 2 files changed, 262 insertions(+), 75 deletions(-) [+]
line wrap: on
line diff
--- a/man/ChangeLog	Wed Jan 26 05:11:12 2005 +0000
+++ b/man/ChangeLog	Wed Jan 26 09:48:27 2005 +0000
@@ -1,3 +1,14 @@
+2005-01-26  Ben Wing  <ben@xemacs.org>
+
+	* internals/internals.texi:
+	* internals/internals.texi (Through Version 18):
+	* internals/internals.texi (GNU Emacs 19):
+	* internals/internals.texi (GNU Emacs 20):
+	Update History.
+
+	* internals/internals.texi (Unicode support under Windows):
+	Redo section on Windows 95 support for Unicode.
+
 2005-01-19  Aidan Kehoe  <kehoea@parhasard.net>
 
 	* man/lispref/functions.texi (Functions): Rename to "Functions and
--- a/man/internals/internals.texi	Wed Jan 26 05:11:12 2005 +0000
+++ b/man/internals/internals.texi	Wed Jan 26 09:48:27 2005 +0000
@@ -1,4 +1,4 @@
-\input texinfo  @c -*-texinfo-*-
+        \input texinfo  @c -*-texinfo-*-
 @c %**start of header
 @setfilename ../../info/internals.info
 @settitle XEmacs Internals Manual
@@ -1022,6 +1022,12 @@
 is available at @uref{http://http://www.jwz.org/doc/emacs-timeline.html,
 ``Emacs Timeline''}.)
 
+@strong{NOTE}: Sometimes there are two release dates listed below.  In
+this case, the first one is the date listed in the source code, and
+the second one is when the official announcement was made on
+Usenet. (Sometimes, one or the other of the dates is missing, and then
+the date below reflects the only existing one.)
+
 @itemize @bullet
 @item
 Unipress Emacs, a $395 commercial product, was released on May 6, 1983.
@@ -1029,9 +1035,81 @@
 and RMS.
 
 @item
-GNU Emacs version 13.0? was released on March 20, 1985.  This may have
-been the initial public release.  This was also based on this same
-Emacs-in-C collaboration.
+The first entry on @file{net.emacs} available on Google is dated
+August 20, 1984:
+
+@example
+From: B.BURGER (btb@@hogpc.UUCP)
+Subject: Arrow Key Problems 
+Newsgroups: net.emacs
+Date: 1984-08-20 11:15:46 PST 
+
+I would greatly appreciate some help getting my arrow keys to work
+with EMACS 4.5 on an AT&T 3B20.  My terminal is an AT&T PC6300
+(IBM-compatible) using an AT&T 4410 terminal emulator.  While this
+may not yet be a common configuration, I believe the same problem
+has come up using an hp2621 emulator or a real live vt100.
+
+The problem is that, when I press an arrow key, it isn't
+transmitted/read by emacs (one or the other) correctly.
+The 4410 terminal description that I'm using defines up=M-[A
+(it appears as ^[[A, with the initial ^[ as one character).
+Pressting cntrl-Q up_arrow while in emacs shows me the same thing.
+On the vt100 the same thing happens but the terminal file says up=M-A
+(it appears as ^[A).  I've tried every other imaginable up= but get
+the same results.  I've also been unsuccessful writing a macro that
+understands what my keyboard is saying.
+
+Any ideas on how I can get the arrow keys to do somethingt? 
+Anything?  Thanks in advance.
+
+--Bruce Burger     AT&T-Information Systems     Freehold, NJ
+  @{...ihnp4!@}hogpc!btb    (201) 577-5230
+@end example
+
+@item
+GNU Emacs versions 1.0 through 1.12 were apparently released in early
+1985.  The next version after this was 13.0; there were no GNU Emacs
+versions 2 through 12.
+
+@item
+GNU Emacs version 13.0? 1.0? was released on March 20, 1985.  This
+appears to be the initial public release.  This was also based on this
+same Emacs-in-C collaboration.
+
+Here is the release notice:
+
+@example
+From: Chuck Wegrzyn (wegrzyn@@encore.UUCP)
+Subject: Public Domain EMACS available from GNU Project 
+Newsgroups: net.emacs, net.general, net.unix, net.unix-wizards
+Date: 1985-03-20 08:03:20 PST 
+
+ The GNU project has released its first major subsystem,
+ the EMACS editor. This editor is a sophisticated screen
+ editor that is compatible and comparable with the EMACS
+ editors being sold by UniPress and CCA. It comes with
+ Mock Lisp ( did you know that UniPress trademarked MLISP??),
+ and all the little bells and features most of us expect
+ with EMACS.
+
+ The GNU version of EMACS, written by Richard Stallman, is
+ available for distribution. The distribution includes all
+ source code for EMACS and a source code level debugger.
+ Furthermore, under the GNU project banner, the EMACS system
+ can be distributed (in source code form) by one and all.
+
+ I was thinking of sending out the source code over the net,
+ but resisted : it is over 1Mbyte of code. If there is
+ enough demand, I will add a UUCP dial-in to our system, or
+ send out tapes, or ... ?
+
+ Is anyone interested in EMACS? If so, please tell me how
+ you think I should distribute it?
+
+   Chuck Wegrzyn
+  @{allegra,decvax,ihnp4,princeton@}!encore!wegrzyn
+@end example
 
 @item
 GNU Emacs version 15.10 was released on April 11, 1985.
@@ -1064,7 +1142,7 @@
 @item
 Version 17.46 released on February 4, 1986.
 @item
-Version 17.48 released on February 10, 1986.
+Version 17.48 released on February 10, 1986 (February 9 on net.emacs).
 @item
 Version 17.49 released on February 12, 1986.
 @item
@@ -1074,7 +1152,7 @@
 @item
 Version 17.58 released on April 4, 1986.
 @item
-Version 17.61 released on April 12, 1986.
+Version 17.61 released on April 12 (?), 1986 (April 22 on net.emacs).
 @item
 Version 17.63 released on May 7, 1986.
 @item
@@ -1086,7 +1164,7 @@
 @item
 Version 18.31 (a beta version) released on November 23, 1986.
 @item
-Version 18.32 (a beta version) released on December 7, 1986.
+Version 18.32 (a beta version) released on December 6 or 7, 1986.
 @item
 Version 18.33 (a beta version) released on December 12, 1986.
 @item
@@ -1097,9 +1175,9 @@
 January 27, 1987: The Great Usenet Renaming.  net.emacs is now
 comp.emacs.
 @item
-Version 18.37 (a beta version) released on February 12, 1987.
-@item
-Version 18.38 (a beta version) released on March 3, 1987.
+Version 18.37 (a beta version) released on February 9 or 12, 1987.
+@item
+Version 18.38 (a beta version) released on March 2 or 3, 1987.
 @item
 Version 18.39 (a beta version) released on March 14, 1987.
 @item
@@ -1110,34 +1188,34 @@
 @item
 Version 18.45 released on June 2, 1987.
 @item
-Version 18.46 released on June 9, 1987.
-@item
-Version 18.47 released on June 18, 1987.
-@item
-Version 18.48 released on September 3, 1987.
-@item
-Version 18.49 released on September 18, 1987.
-@item
-Version 18.50 released on February 13, 1988.
-@item
-Version 18.51 released on May 7, 1988.
+Version 18.46 released on June 8 or 9, 1987.
+@item
+Version 18.47 released on June 10 or 18, 1987.
+@item
+Version 18.48 released on August 30 or September 3, 1987.
+@item
+Version 18.49 released on September 16 or 18, 1987.
+@item
+Version 18.50 released on February 11 or 13, 1988.
+@item
+Version 18.51 released on May 6 or 7, 1988.
 @item
 Version 18.52 released on September 1, 1988.
 @item
-Version 18.53 released on February 24, 1989.
+Version 18.53 released on February 23 or 24, 1989.
 @item
 Version 18.54 released on April 26, 1989.
 @item
-Version 18.55 released on August 23, 1989.  This is the earliest version
+Version 18.55 released on August 18 or 23, 1989.  This is the earliest version
 that is still available by FTP. (Verified in November 2004.)
 @item
-Version 18.56 released on January 17, 1991.
-@item
-Version 18.57 released late January, 1991.
-@item
-Version 18.58 released sometime in 1991.
-@item
-Version 18.59 released October 31, 1992.
+Version 18.56 released on January 16 or 17, 1991.
+@item
+Version 18.57 released on January 25, 1991.
+@item
+Version 18.58 released on February 18, 1991.
+@item
+Version 18.59 released on October 30 or 31, 1992.
 @end itemize
 
 
@@ -1254,7 +1332,7 @@
 @item
 Version 19.7 beta released May 22, 1993.  First public beta v19 release.
 @item
-Version 19.8 beta released May 27, 1993.
+Version 19.8 beta released May 25 or 27, 1993.
 @item
 Version 19.9 beta released May 27, 1993.
 @item
@@ -1262,7 +1340,7 @@
 @item
 Version 19.11 beta released June 1, 1993.
 @item
-Version 19.12 beta released June 2, 1993.
+Version 19.12 beta released June 1 or 2, 1993.
 @item
 Version 19.13 beta released June 8, 1993.
 @item
@@ -1272,31 +1350,31 @@
 @item
 Version 19.16 beta released July 6, 1993.
 @item
-Version 19.17 beta released late July, 1993.
-@item
-Version 19.18 beta released August 9, 1993.
-@item
-Version 19.19 beta released August 15, 1993.
-@item
-Version 19.20 beta released November 17, 1993.
-@item
-Version 19.21 beta released November 17, 1993.
-@item
-Version 19.22 beta released November 28, 1993.
+Version 19.17 beta released July 17, 1993.
+@item
+Version 19.18 beta released August 8 or 9, 1993.
+@item
+Version 19.19 beta released August 14 or 15, 1993.
+@item
+Version 19.20 beta released November 11 or 17, 1993.
+@item
+Version 19.21 beta released November 16 or 17, 1993.
+@item
+Version 19.22 beta released November 27 or 28, 1993.
 @item
 Version 19.23 beta released May 17, 1994.
 @item
-Version 19.24 beta released May 16, 1994.
-@item
-Version 19.25 beta released June 3, 1994.
-@item
-Version 19.26 beta released September 11, 1994.
-@item
-Version 19.27 beta released September 14, 1994.
+Version 19.24 beta released May 23 or 16 (?), 1994.
+@item
+Version 19.25 beta released May 30 or June 3, 1994.
+@item
+Version 19.26 beta released September 7 or 11, 1994.
+@item
+Version 19.27 beta released September 11 or 14, 1994.
 @item
 Version 19.28 (first ``official'' release) released November 1, 1994.
 @item
-Version 19.29 released June 21, 1995.
+Version 19.29 released June 19 or 21, 1995.
 @item
 Version 19.30 released November 24, 1995.
 @item
@@ -1336,19 +1414,19 @@
 
 @itemize @bullet
 @item
-Version 20.1 released September 17, 1997.
-@item
-Version 20.2 released September 20, 1997.
+Version 20.1 released September 15 or 17, 1997.
+@item
+Version 20.2 released September 19 or 20, 1997.
 @item
 Version 20.3 released August 19, 1998.
 @item
 version 20.4 released July 12, 1999; on comp.emacs, July 27.
 @item
-version 20.5 released ???.
-@item
-version 20.6 released ???.
-@item
-version 20.7 released ???.
+version 20.5 released December 4, 1999.
+@item
+version 20.6 released February 26, 2000.
+@item
+version 20.7 released June 13, 2000.
 @end itemize
 
 A timeline for GNU Emacs 21 is
@@ -12661,28 +12739,126 @@
 provided under Windows 9x to support Unicode (see MSDN page "Windows
 95/98/Me General Limitations"):
 
-EnumResourceLanguages 
-EnumResourceNames 
-EnumResourceTypes 
-ExtTextOut 
-FindResource 
-FindResourceEx 
-GetCharWidth
-GetCommandLine
-GetTextExtentPoint 
-GetTextExtentPoint32 
-lstrcat 
-lstrcpy 
-lstrlen 
-MessageBox 
-MessageBoxEx 
+EnumResourceLanguagesW
+EnumResourceNamesW
+EnumResourceTypesW
+ExtTextOutW
+FindResourceW
+FindResourceExW
+GetCharWidthW
+GetCommandLineW
+GetTextExtentPointW
+GetTextExtentPoint32W
+lstrcatW
+lstrcpyW
+lstrlenW
+MessageBoxW
+MessageBoxExW
 MultiByteToWideChar
-TextOut 
+TextOutW
 WideCharToMultiByte
 
 also maybe GetTextExtentExPoint? (KB Q125671 "Unicode Functions Supported
 by Windows 95")
 
+Q210341 says this in addition:
+
+@quotation
+SUMMARY:
+
+Although Windows 95 is an eight-bit ANSI, or for Far East Windows, a
+Multibyte (MBCS) character set operating system, it implements a few
+Unicode functions. Windows 98 has added support for a few more
+functions and there are techniques to implement additional Unicode
+support.
+
+MORE INFORMATION:
+
+Windows 95 is natively an eight-bit character code operating
+system. That is, it fundamentally processes all character strings one
+byte at a time. Far East versions of Windows 95 are called Multibyte
+Character Set (MBCS) systems because they use a signal or lead byte
+combined with a second trailing byte to expand the character code
+range beyond the 256 limitation of a one-byte representation.
+
+The Unicode standard offers application developers an opportunity to
+work with text without the limitations of character set based
+systems. For more information on the Unicode standard see the
+"References" section of this article. Windows NT is a fully Unicode
+capable operating system so it may be desirable to write software that
+supports Unicode on Windows 95.
+
+Even though Windows 95 and Windows 98 are not Unicode based, they do
+provide some limited Unicode functionality. Drawing of Unicode text is
+possible because the TrueType fonts that are used by Windows are
+encoded using Unicode. Therefore, a small subset of Win32 functions
+have wide character (Unicode) equivalents that are implemented in
+Windows 95. To review the list of these functions that was first
+published for Windows 95 see the white paper listed in the
+"References" section of this article.
+
+The Quick Info information in the Platform SDK describes the following
+wide character functions as implemented on Windows 95:
+
+[same list as above minus GetTextExtentExPoint, and minus lstrcpy/lstrcat]
+
+For Windows 98, there have been two more functions implemented:
+
+[lstrcpyW/lstrcatW]
+
+Also available to applications on Windows 95 and later is the
+CF_UNICODETEXT clipboard format for exchanging/converting Unicode text
+across the clipboard. See Nadine Kano's book listed in the
+"References" section of this article.
+
+With this API subset, an application can read, write, display, and
+convert Unicode data. However, in some cases an application developer
+working with Unicode may find a need to work directly with the glyphs
+in the TrueType font file.
+
+Such a case arises if a software developer would like to use the
+services of the GetGlyphOutline() function. Unfortunately, there is no
+wide character implementation of this function on Windows 95. However,
+this function does work with TrueType glyph indices so the solution is
+convert the Unicode character code to a glyph index.
+
+A developer might also want to take advantage of the TrueType Open
+tables of a font to perform ligature or contextual glyph
+substitution. To do this, the application would need to work with
+glyph indices. See the "References" section of this article for more
+information on converting Unicode to glyph indices.
+
+REFERENCES:
+
+For additional information about Unicode and the GetGlyphOutline
+function, click the article number below to view the article in the
+Microsoft Knowledge Base:
+
+241358 PRB: The GetGlyphOutlineW Function Fails on Windows 95 and
+Windows 98
+
+For additional information about converting Unicode character codes,
+click the article number below to view the article in the Microsoft
+Knowledge Base:
+
+241020 HOWTO: Translate Unicode Character Codes to TrueType Glyph
+Indices in Windows 95
+
+For information on writing applications for world wide markets, please
+see the following book:
+
+Developing International Software for Windows 95 and Windows NT by
+Nadine Kano.
+ISBN 1-55615-840-8 
+Microsoft Press. 
+Also available on MSDN in the Books section.
+
+Background white paper: Differences in Win32 API Implementations Among
+Windows Operating Systems by Noel Nyman.
+
+Available on MSDN in the Windows Platform Guidelines section
+@end quotation
+
 However, the C runtime library provides some additional support (according
 to the CRT sources, as the docs are not very clear on this):