Mercurial > emacs
view lisp/forms-d2.el @ 89455:ba48a280779d
(GET_CHAR_BEFORE_2): Check multibyte, not
target_multibyte. Even in a unibyte case, return a converted
multibyte char.
(GET_CHAR_AFTER): New macro.
(PATFETCH): Translate via multibyte char.
(HANDLE_UNIBYTE_RANGE): Delete this macro.
(SETUP_MULTIBYTE_RANGE): New macro.
(regex_compile): Setup compiled code so that its multibyteness
matches that of a target. Fix the handling of "[X-YZ]" using
SETUP_MULTIBYTE_RANGE.
(analyse_first) <charset>: For filling fastmap for all multibyte
characters, don't check by BASE_LEADING_CODE_P.
(re_search_2): Don't check RE_TARGET_MULTIBYTE_P (bufp). It is
the same as RE_MULTIBYTE_P (bufp) now.
(mutually_exclusive_p): Check by (! multibyte ||
IS_REAL_ASCII (c)).
(TARGET_CHAR_AND_LENGTH): Delete this macro.
(TRANSLATE_VIA_MULTIBYTE): New macro.
(re_match_2_internal): Don't check RE_TARGET_MULTIBYTE_P (bufp).
It is the same as RE_MULTIBYTE_P (bufp) now.
<exactn>: Translate via multibyte.
<anychar>: Fetch a character by RE_STRING_CHAR_AND_LENGTH. Don't
translate it.
<charset, charset_not>: Fetch a character by
RE_STRING_CHAR_AND_LENGTH. Translate via multibyte.
<duplicate>: Call bcmp_translate with the last arg `multibyte'.
<wordbound, notwordbound, wordbeg, wordend, syntaxspec,
notsyntaxspec, categoryspec, notcategoryspec> Fetch a character
by GET_CHAR_AFTER.
(bcmp_translate): Likewise.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Fri, 30 May 2003 07:00:29 +0000 |
parents | b174db545cfd |
children | 33d53d287ee4 |
line wrap: on
line source
;;; forms-d2.el --- demo forms-mode ;; Author: Johan Vromans <jvromans@squirrel.nl> ;; Created: 1989 ;; This file is part of GNU Emacs. ;;; Commentary: ;; This sample forms exploit most of the features of forms mode. ;;; Code: ;; Set the name of the data file. (setq forms-file "forms-d2.dat") ;; Use 'forms-enumerate' to set field names and number thereof. (setq forms-number-of-fields (forms-enumerate '(arch-newsgroup ; 1 arch-volume ; 2 arch-issue ; and ... arch-article ; ... so arch-shortname ; ... ... on arch-parts arch-from arch-longname arch-keywords arch-date arch-remarks))) ;; The following functions are used by this form for layout purposes. ;; (defun arch-tocol (target &optional fill) "Produces a string to skip to column TARGET. Prepends newline if needed. The optional FILL should be a character, used to fill to the column." (if (null fill) (setq fill ? )) (if (< target (current-column)) (concat "\n" (make-string target fill)) (make-string (- target (current-column)) fill))) ;; (defun arch-rj (target field &optional fill) "Produces a string to skip to column TARGET minus the width of field FIELD. Prepends newline if needed. The optional FILL should be a character, used to fill to the column." (arch-tocol (- target (length (nth field forms-fields))) fill)) ;; Record filters. ;; (defun arch-new-record-filter (the-record) "Form a new record with some defaults." (aset the-record arch-from (user-full-name)) (aset the-record arch-date (current-time-string)) the-record ; return it ) (setq forms-new-record-filter 'arch-new-record-filter) ;; The format list. (setq forms-format-list (list "====== Public Domain Software Archive ======\n\n" arch-shortname " - " arch-longname "\n\n" "Article: " arch-newsgroup "/" arch-article " " '(arch-tocol 40) "Issue: " arch-issue " " '(arch-rj 73 10) "Date: " arch-date "\n\n" "Submitted by: " arch-from "\n" '(arch-tocol 79 ?-) "\n" "Keywords: " arch-keywords "\n\n" "Parts: " arch-parts "\n\n====== Remarks ======\n\n" arch-remarks )) ;; That's all, folks! ;;; forms-d2.el ends here