;; This file serves Emacs version dependent definitions (if (and (fboundp 'set-buffer-multibyte) (subrp (symbol-function 'set-buffer-multibyte))) ;; Emacs 20.3 (progn (defun egg-char-bytes (x) 1) (defun egg-charset-bytes (x) 1) (defun egg-char-bytes-at (str pos) 1) (defun egg-chars-in-period (str pos len) len) (defalias 'egg-string-to-vector 'identity) (defalias 'egg-string-to-char-at 'aref) ) ;; Emacs 20.2 (defun set-buffer-multibyte (flag) (setq enable-multibyte-characters flag)) (defalias 'string-as-unibyte 'identity) (defalias 'string-as-multibyte 'identity) (defalias 'coding-system-put 'put) (defalias 'egg-char-bytes 'char-bytes) (defalias 'egg-charset-bytes 'charset-bytes) (defun egg-char-bytes-at (str pos) (char-bytes (egg-string-to-char-at str pos))) (defun egg-chars-in-period (str pos len) (chars-in-string (substring str pos (+ pos len)))) (defalias 'egg-string-to-vector 'string-to-vector) (defun egg-string-to-char-at (str pos) (let ((c (aref str pos))) (if (or (< c ?\200) (>= c ?\240) (>= (1+ pos) (length str)) (< (aref str (1+ pos)) ?\240)) c (string-match "[\240-\377]+" str (1+ pos)) (string-to-char (substring str pos (match-end 0)))))) ) ;; Elisp bug fix (defun egg-next-single-property-change (pos prop &optional object limit) (min limit (next-single-property-change pos prop object (1+ limit)))) (provide 'egg-edep)