;; 1. vowel
;; V(A/D)?
;; 2. syllable : maximum of 5 consecutive consonants. (e.g. kartsnya)
-;; ((CH)?(CH)?(CH)?CH)?C(MA?|D|H)?
+;; ((CH)?(CH)?(CH)?CH)?C(H|M?(A|D)?)?
(defconst devanagari-consonant
"[\e$,15U\e(B-\e$,15y68\e(B-\e$,16?\e(B]")
(devanagari-compose-region (point-min) (point-max))
(buffer-string)))
-(defun range (from to)
+(defun devanagari-post-read-conversion (len)
+ (save-excursion
+ (save-restriction
+ (let ((buffer-modified-p (buffer-modified-p)))
+ (narrow-to-region (point) (+ (point) len))
+ (devanagari-compose-region (point-min) (point-max))
+ (set-buffer-modified-p buffer-modified-p)
+ (- (point-max) (point-min))))))
+
+(defun devanagari-range (from to)
"Make the list of the integers of range FROM to TO."
(let (result)
(while (<= from to) (setq result (cons to result) to (1- to))) result))
-(defun regexp-of-hashtbl-keys (hashtbl)
- "Returns the regular expression of hashtable keys."
+(defun devanagari-regexp-of-hashtbl-keys (hashtbl)
+ "Return a regular expression that matches all keys in hashtable HASHTBL."
(let ((max-specpdl-size 1000))
(regexp-opt
(sort
(aset composition-function-table (decode-char 'ucs ucs)
(list (cons devanagari-composable-pattern
'devanagari-composition-function)))))
- (nconc '(#x0903) (range #x0905 #x0939) (range #x0958 #x0961)))
+ (nconc '(#x0903) (devanagari-range #x0905 #x0939) (devanagari-range #x0958 #x0961)))
;; Notes on conversion steps.
hash))
(defvar dev-char-glyph-regexp
- (regexp-of-hashtbl-keys dev-char-glyph-hash))
+ (devanagari-regexp-of-hashtbl-keys dev-char-glyph-hash))
;; glyph-to-glyph conversion table.
;; it is supposed that glyphs are ordered in
dev-glyph-glyph)
hash))
(defvar dev-glyph-glyph-regexp
- (regexp-of-hashtbl-keys dev-glyph-glyph-hash))
+ (devanagari-regexp-of-hashtbl-keys dev-glyph-glyph-hash))
;; yet another glyph-to-glyph conversions.
dev-glyph-glyph-2)
hash))
(defvar dev-glyph-glyph-2-regexp
- (regexp-of-hashtbl-keys dev-glyph-glyph-2-hash))
+ (devanagari-regexp-of-hashtbl-keys dev-glyph-glyph-2-hash))
(defun dev-charseq (from &optional to)
(if (null to) (setq to from))
(mapcar (function (lambda (x) (indian-glyph-char x 'devanagari)))
- (range from to)))
+ (devanagari-range from to)))
(defvar dev-glyph-cvn
(append
(compose-region from to glyph-str)))
(provide 'devan-util)
+
+;;; devan-util.el ends here