view tests/mule/match.el @ 780:578cb2932d72

[xemacs-hg @ 2002-03-18 10:07:30 by ben] config.inc.samp, xemacs.mak: Deal with never-ending perl quoting problems. README: Include a long, long description of the suggested directory layout for developing XEmacs. This should probably go as part of a larger document, a "Getting Started with Developing XEmacs". #### Does such a document exist? etc\unicode\mule-ucs\*: New directory, containing translation files for the remaining charsets that are not in unicode\unicode-consortium but are in mule-ucs. etc\unicode\other\*: New directory, containing translation files made up on an ad-hoc basis. etc\unicode\README: Update. * Some ChangeLog entries from stuff that got applied long ago never got checked in, due to the nasty SCCS "oops, i forgot again ..." bug. mule\lao.el: Convert stuff to XEmacs-style. mule\thai-xtis.el: Move thai-xtis-chars.el stuff to here, since we can now handle encountering characters of a charset before the charset is defined. mule\thai-xtis-chars.el: Removed, moved into thai-xtis.el. mule\mule-msw-init.el: Move some stuff into mule-msw-init-late.el, which references charsets and thus needs to be delayed until after all charsets have been created. mule\mule-msw-init-late.el: New file, some stuff from mule-msw-init.el. dumped-lisp.el: Load the remaining languages -- lao, indian, devanagari, tibetan. Load new file mule-msw-init-late. unicode.el: Load the new tables for Ethiopic, Vietnamese, and other languages extracted from mule-ucs. mule\lao.el: Convert stuff to XEmacs-style. mule\thai-xtis.el: Move thai-xtis-chars.el stuff to here, since we can now handle encountering characters of a charset before the charset is defined. mule\thai-xtis-chars.el: Removed, moved into thai-xtis.el. mule\mule-msw-init.el: Move some stuff into mule-msw-init-late.el, which references charsets and thus needs to be delayed until after all charsets have been created. mule\mule-msw-init-late.el: New file, some stuff from mule-msw-init.el. mule\lao.el: Convert stuff to XEmacs-style. mule\thai-xtis.el: Move thai-xtis-chars.el stuff to here, since we can now handle encountering characters of a charset before the charset is defined. mule\thai-xtis-chars.el: Removed, moved into thai-xtis.el. mule\mule-msw-init.el: Move some stuff into mule-msw-init-late.el, which references charsets and thus needs to be delayed until after all charsets have been created. mule\mule-msw-init-late.el: New file, some stuff from mule-msw-init.el. dumped-lisp.el: Load the remaining languages -- lao, indian, devanagari, tibetan. Load new file mule-msw-init-late. unicode.el: Load the new tables for Ethiopic, Vietnamese, and other languages extracted from mule-ucs. mule\lao.el: Convert stuff to XEmacs-style. mule\thai-xtis.el: Move thai-xtis-chars.el stuff to here, since we can now handle encountering characters of a charset before the charset is defined. mule\thai-xtis-chars.el: Removed, moved into thai-xtis.el. mule\mule-msw-init.el: Move some stuff into mule-msw-init-late.el, which references charsets and thus needs to be delayed until after all charsets have been created. mule\mule-msw-init-late.el: New file, some stuff from mule-msw-init.el. fns.c, lread.c: Add variable require-prints-loading-message to cause loading messages to get printed when a file is loading during a `require', which normally doesn't happen. This can be set using env var XEMACSDEBUG to debug problems with non-interactive compilation. Modify load-internal so it prints "Requiring: ..." instead of "Loading: ..." when appropriate.
author ben
date Mon, 18 Mar 2002 10:07:39 +0000
parents 131b0175ea99
children 308d34e9f07d
line wrap: on
line source

;;; Testsuite for Mule string-matching - used to crash!

;; Copyright (C) 1996 Sun Microsystems.

;; This file is part of XEmacs.

;; XEmacs is free software; you can redistribute it and/or modify it
;; under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; any later version.

;; XEmacs is distributed in the hope that it will be useful, but
;; WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
;; 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 Free
;; Software Foundation,59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.

;;; Just load the file to run the test.

(defmacro test-match (result regexp string)
  `(save-excursion
     (assert (eq ,result (string-match ,regexp ,string)))
     (let ((buf (get-buffer-create "*testsuite*"))
	   (random-text  "foo$(BEl5~(B"))
       (set-buffer buf)
       (erase-buffer)
       (insert random-text)
       (insert ,string)
       (goto-char (point-min))
       (forward-char (length random-text))
       (assert (eq (progn (re-search-forward ,regexp) (match-beginning 0))
		   (+ 1 ,result (length random-text))))
       )))

(when (featurep 'mule)
  (test-match 0 "a" "a")
  (test-match 0  "[^a]" "$(B4A;z(B")
  (test-match 2  "[^a]$(B;z(B" "ab$(B4A;z(B")
  (test-match 1  "[^a]" "ab$(B4A;z(B")
  (test-match 0  "[^a]" "$(B4A(Bb$(B4A;z(Bb")
  (test-match 6  "[a]" "b$(B4A(Bb$(B4A;z(Bba")
  (test-match 2  "[a]" "b$(B4A(Bab$(B4A;z(Bba")
  (test-match 1  "[$(B4A(Ba]" "b$(B4A(Bab$(B4A;z(Bba")
  (test-match 1  "[a$(B4A(B]" "b$(B4A(Bab$(B4A;z(Bba")
  (test-match 0  "[^$(B4A(Ba]" "b$(B4A(Bab$(B4A;z(Bba")
  (test-match 5  "$(B4A(B[^$(B4A(Ba]" "a$(B4A(Bab$(B4A4A;z(Bba")
  )