Commits

stephent  committed 39c64e6

maintainer update <87it7lnf5c.fsf@tleeps18.sk.tsukuba.ac.jp>

  • Participants
  • Parent commits 54f116f

Comments (0)

Files changed (7)

+2002-03-25  Stephen J. Turnbull  <stephen@xemacs.org>
+
+	* latin-unity-utils.el (load cl-macs): Inhibit messages.
+
+	* Makefile: Bump AUTHOR_VERSION and remove reference to MANUAL.
+
+	* latin-unity.el (latin-unity-recommend-representation): Give
+	values of special coding systems as well as the tag.
+
+	* latin-unity.texi (Basic Functionality):
+	* latin-unity.el (latin-unity-ucs-list):
+	* README:
+	Document the 7-bit grodiness and "pure ASCII" misfeature.
+
 2002-03-25  Steve Youngs  <youngs@xemacs.org>
 
 	* Makefile (VERSION): 1.01 released.
 
 # The XEmacs CVS version is canonical.  Keep versions n'sync.
 VERSION = 1.01
-AUTHOR_VERSION = 1.01
+AUTHOR_VERSION = 1.02
 MAINTAINER = Stephen J. Turnbull <stephen@xemacs.org>
 PACKAGE = latin-unity
 PKG_TYPE = regular
 
 TEXI_FILES = $(PACKAGE).texi
 INFO_FILES = $(PACKAGE).info
-MANUAL = $(PACKAGE)
 
 DATA_1_FILES = ChangeLog Makefile README BLURB
 DATA_1_DEST = $(PACKAGE)
 
 Current misfeatures:
 
-  o Must load latin-unity-vars before reading a file with ISO 8859/15,
-    there is no way to autoload a charset.
+  o Doesn't automatically save pure ASCII files in ASCII superset
+    encodings like iso-2022-jp.  Workaround:  put an ISO 8859 coding
+    system in `latin-unity-preapproved-coding-system-list'.
 
   o Need `(require 'latin-euro-input)' to get Quail support.
 
 
   o This README is too long.
 
+  o Must load latin-unity-vars before reading a file with ISO 8859/15,
+    there is no way to autoload a charset.  (Can't be fixed without
+    changing XEmacs core.)
+
 Planned, mostly near future:
 
   o Fix the misfeatures.

File latin-unity-latin9.el

      direction l2r))
   ;; For syntax of Latin-9 characters.
   (require 'cl)
-  (load-library "cl-macs")		; howcum no #'provide?
-  (loop for c from 64 to 127		; from ',b@(B' to ',b(B'
+  (load "cl-macs" nil t)		; howcum no #'provide?
+  (loop for c from 64 to 127		; from '�' to '�'
     do (modify-syntax-entry (make-char 'latin-iso8859-15 c) "w"))
   (mapc (lambda (c)
 	  (modify-syntax-entry (make-char 'latin-iso8859-15 c) "w"))

File latin-unity-utils.el

 
 ;;; Requires
 (require 'cl)
-(load-library "cl-macs")	; howcum no #'provide?
+(load "cl-macs" nil t)			; howcum no #'provide?
 (require 'latin-unity-latin9)
 ;(require 'latin-unity-latin10)	; #### when we have it
 (require 'latin-unity-vars)

File latin-unity.el

   '(buffer-default preferred)
   "*List of coding systems used without querying the user if feasible.
 
-The feasible first coding system in this list is used.  The special values
+The first feasible coding system in this list is used.  The special values
 'preferred and 'buffer-default may be present:
 
   buffer-default  Use the coding system used by `write-region', if feasible.
   preferred       Use the coding system specified by `prefer-coding-system'
                   if feasible.
 
-Note that if your preferred coding system is a universal coding system, and
-@samp{preferred} is a member of this list, @pkgname{} will blithely convert
-all your files to that coding system.  This is considered a feature, but it
-may surprise most users.  Users who don't like this behavior should put
-@samp{preferred} in @samp{latin-unity-preferred-coding-system-list}.
-
 \"Feasible\" means that all characters in the buffer can be represented by
 the coding system.  Coding systems in `latin-unity-ucs-list' are always
 considered feasible.  Other feasible coding systems are computed by
 `latin-unity-representations-feasible-region'.
 
+Most users will want at least one ISO 8859 coding system in this list,
+as otherwise pure ASCII files will not be preapproved.  (This will be
+satisfied implicitly by 'buffer-default or 'preferred for most users,
+but it can be annoying for users of ISO 2022 or EUC coding systems.)
+
 Note that the first universal coding system in this list shadows all other
-coding systems."
+coding systems.  In particular, if your preferred coding system is a universal
+coding system, and 'preferred is a member of this list, latin-unity will
+blithely convert all your files to that coding system.  This is considered a
+feature, but it may surprise most users.  Users who don't like this behavior
+should put 'preferred in `latin-unity-preferred-coding-system-list'."
   :type '(repeat symbol)
   :group 'latin-unity)
 
 
 A universal coding system can represent all characters by definition.
 
-Order matters; coding systems earlier in the list will be preferred when
-recommending a coding system.  These coding systems will not be used without
-querying the user, and follow the `latin-unity-preferred-coding-system-list'
-in the list of suggested coding systems.
+Order matters; coding systems earlier in the list will be preferred
+when recommending a coding system.  These coding systems will not be
+used without querying the user (unless they are also present in
+`latin-unity-preapproved-coding-system-list'), and follow the
+`latin-unity-preferred-coding-system-list' in the list of suggested
+coding systems.
 
-If none of the preferred coding systems are feasible, the first in this list
-will be the default.
+If none of the preferred coding systems are feasible, the first in
+this list will be the default.
 
-Note: if `escape-quoted' is not a member of this list, you will be unable to
-autosave files or byte-compile Mule Lisp files."
+Notes on certain coding systems:  If `escape-quoted' is not a member of
+this list, you will be unable to autosave files or byte-compile Mule
+Lisp files.
+
+latin-unity does not try to be \"smart\" about general ISO 2022 coding
+systems, such as ISO-2022-JP.  (They are not recognized as equivalent
+to `iso-2022-7'.)  If your preferred coding system is one of these,
+consider adding it to `latin-unity-ucs-list'.  However, this will
+typically have the side effect that (eg) ISO 8859/1 files will be
+saved in 7-bit form with ISO 2022 escape sequences."
   :type '(repeat symbol)
   :group 'latin-unity)
 
       (erase-buffer)
       (insert (format "\
 Choose a coding system to save buffer %s.
-All preapproved coding systems (%s)
+All preapproved coding systems %s
 fail to appropriately encode some of the characters present in the buffer."
 		      (buffer-name buffer)
-		      latin-unity-preapproved-coding-system-list))
+		      (mapcar (lambda (x)
+				(if (memq x '(preferred buffer-default))
+				    (format "%s==%s" x
+					    (coding-system-name
+					     (find-coding-system
+					      (symbol-value x))))
+				  x))
+			      latin-unity-preapproved-coding-system-list)))
       ;; #### we could get this from PRESENT and avoid the auto-save silliness
       (when latin-unity-debug
 	(insert "  Character sets found are:\n\n   ")

File latin-unity.texi

 The default value is @code{'(utf-8 iso-2022-7 ctext escape-quoted)}.
 
 Order matters; coding systems earlier in the list will be preferred when
-recommending a coding system.
+recommending a coding system.  These coding systems will not be used
+without querying the user (unless they are also present in
+@code{latin-unity-preapproved-coding-system-list}), and follow the
+@code{latin-unity-preferred-coding-system-list} in the list of suggested
+coding systems.
 
-@samp{escape-quoted} is a special coding system used for autosaves and
-compiled Lisp in Mule.  You should not delete this, and it is rare that
-a user would want to use it directly.
+If none of the preferred coding systems are feasible, the first in
+this list will be the default.
+
+Notes on certain coding systems:  @code{escape-quoted} is a special
+coding system used for autosaves and compiled Lisp in Mule.  You should
+not delete this, although it is rare that a user would want to use it
+directly.  @pkgname{} does not try to be \"smart\" about other general
+ISO 2022 coding systems, such as ISO-2022-JP.  (They are not recognized
+as equivalent to @code{iso-2022-7}.)  If your preferred coding system is
+one of these, you may consider adding it to @code{latin-unity-ucs-list}.
+However, this will typically have the side effect that (eg) ISO 8859/1
+files will be saved in 7-bit form with ISO 2022 escape sequences.
 @end defopt
 
 
 
 The default value is @samp{(buffer-default preferred)}.
 
-The feasible first coding system in this list is used.  The special values
+The first feasible coding system in this list is used.  The special values
 @samp{preferred} and @samp{buffer-default} may be present:
 
 @table @code
 always considered feasible.  Other feasible coding systems are computed
 by @samp{latin-unity-representations-feasible-region}.
 
-Note that the first universal coding system in this list shadows all other
-coding systems.
+Note that the first universal coding system in this list shadows all
+other coding systems.  In particular, if your preferred coding system is
+a universal coding system, and @code{preferred} is a member of this
+list, @pkgname{} will blithely convert all your files to that coding
+system.  This is considered a feature, but it may surprise most users.
+Users who don't like this behavior should put @code{preferred} in
+@code{latin-unity-preferred-coding-system-list}.
 @end defopt
 
 
 different coded character sets into a single buffer.
 
 There are two problems stemming from this design.  First, Mule
-represents the same character in different ways.  Abstractly, ',As(B'
+represents the same character in different ways.  Abstractly, ''
 (LATIN SMALL LETTER O WITH ACUTE) can get represented as
 [latin-iso8859-1 #x73] or as [latin-iso8859-2 #x73].  So what looks like
-',Ass(B' in the display might actually be represented [latin-iso8859-1
+'��' in the display might actually be represented [latin-iso8859-1
 #x73][latin-iso8859-2 #x73] in the buffer, and saved as [#xF3 ESC - B
 #xF3 ESC - A] in the file.  In some cases this treatment would be
 appropriate (consider HYPHEN, MINUS SIGN, EN DASH, EM DASH, and U+4E00
 The primary purpose of @pkgname{} is to fix the problem by giving the
 user the choice to change the representation of all characters to one
 character set and give sensible recommendations based on context.  In
-the ',As(B' example, either ISO 8859/1 or ISO 8859/2 is satisfactory, and
+the '' example, either ISO 8859/1 or ISO 8859/2 is satisfactory, and
 both will be suggested.  In the EURO SIGN example, only ISO 8859/15
 makes sense, and that is what will be recommended.  In both cases, the
 user will be reminded that there are universal encodings available.
 but there are many examples of Latin characters that have different code
 points in different Latin-X sets.)
 
-Note in the ',As(B' example, that treating the buffer in this way will
+Note in the '' example, that treating the buffer in this way will
 result in a representation such as [latin-iso8859-2
 #x73][latin-iso8859-2 #x73], and the file will be saved as [#xF3 #xF3].
 This is guaranteed to occasionally result in the second problem you