;; General Public License for more details.
;; You should have received a copy of the GNU General Public License
-;; along with XEmacs; see the file COPYING. If not, write to the
+;; along with XEmacs; see the file COPYING. If not, write to the
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.
(len (length string))
(i 0))
(while (< i len)
- (setq col (+ col (charset-columns (char-charset (aref string i)))))
+ (setq col (+ col (charset-width (char-charset (aref string i)))))
(setq i (1+ i)))
col))
(defalias 'sref 'aref)
(defalias 'map-char-concat 'mapcar)
(defun char-bytes (character)
- "Return number of length a CHARACTER occupies in a string or buffer.
-It returns only 1 in XEmacs. It is for compatibility with MULE 2.3."
+ "Return number of bytes a CHARACTER occupies in a string or buffer.
+It always returns 1 in XEmacs. It is for compatibility with MULE 2.3."
1)
(defalias 'char-length 'char-bytes)
(defun char-width (character)
"Return number of columns a CHARACTER occupies when displayed."
- (charset-columns (char-charset character)))
+ (charset-width (char-charset character)))
(defalias 'char-columns 'char-width)
(make-obsolete 'char-columns 'char-width)
; (cons charset dest)
; ))))
-(defun char-octet (ch &optional n)
- "Return the octet numbered N (should be 0 or 1) of char CH.
-N defaults to 0 if omitted."
- (let ((split (split-char ch)))
- (setq n (or n 0))
- (cond ((eq n 0)
- (nth 1 split))
- ((eq n 1)
- (nth 2 split))
- (t (error "n must be 0 or 1")))))
-;; Made obsolete June 15, 1999. Delete ASAP.
-(make-obsolete 'char-octet "Use split-char")
-
;(defun split-char-or-char-int (char)
; "Return list of charset and one or two position-codes of CHAR.
;CHAR must be character or integer."
; ))))
-;;; Commands
-
-(defun set-buffer-process-coding-system (decoding encoding)
- "Set coding systems for the process associated with the current buffer.
-DECODING is the coding system to be used to decode input from the process,
-ENCODING is the coding system to be used to encode output to the process.
-
-For a list of possible values of CODING-SYSTEM, use \\[list-coding-systems]."
- (interactive
- "zCoding-system for process input: \nzCoding-system for process output: ")
- (let ((proc (get-buffer-process (current-buffer))))
- (if (null proc)
- (error "no process")
- (check-coding-system decoding)
- (check-coding-system encoding)
- (set-process-coding-system proc decoding encoding)))
- (force-mode-line-update))
-
-
;;; Language environments
;; (defvar current-language-environment nil)
;; (put env-sym 'quail-environ-doc-string doc-string)
;; (put env-sym 'set-quail-environ enable-function))
+
+;;; @ coding-system category
+;;;
+
+(defun coding-system-get (coding-system prop)
+ "Extract a value from CODING-SYSTEM's property list for property PROP."
+ (or (plist-get
+ (get (coding-system-name coding-system) 'coding-system-property)
+ prop)
+ (condition-case nil
+ (coding-system-property coding-system prop)
+ (error nil))))
+
+(defun coding-system-put (coding-system prop value)
+ "Change value in CODING-SYSTEM's property list PROP to VALUE."
+ (put (coding-system-name coding-system)
+ 'coding-system-property
+ (plist-put (get (coding-system-name coding-system)
+ 'coding-system-property)
+ prop value)))
+
+(defun coding-system-category (coding-system)
+ "Return the coding category of CODING-SYSTEM."
+ (or (coding-system-get coding-system 'category)
+ (let ((type (coding-system-type coding-system)))
+ (cond ((eq type 'no-conversion)
+ 'no-conversion)
+ ((eq type 'shift-jis)
+ 'shift-jis)
+ ((eq type 'ucs-4)
+ 'ucs-4)
+ ((eq type 'utf-8)
+ 'utf-8)
+ ((eq type 'big5)
+ 'big5)
+ ((eq type 'iso2022)
+ (cond ((coding-system-lock-shift coding-system)
+ 'iso-lock-shift)
+ ((coding-system-seven coding-system)
+ 'iso-7)
+ (t
+ (let ((dim 0)
+ ccs
+ (i 0))
+ (while (< i 4)
+ (setq ccs (coding-system-charset coding-system i))
+ (if (and ccs
+ (> (charset-dimension ccs) dim))
+ (setq dim (charset-dimension ccs))
+ )
+ (setq i (1+ i)))
+ (cond ((= dim 1) 'iso-8-1)
+ ((= dim 2) 'iso-8-2)
+ (t 'iso-8-designate))
+ ))))))))
+
;;; mule-misc.el ends here