annotate tests/mule/match.el @ 2500:3d8143fc88e1

[xemacs-hg @ 2005-01-24 23:33:30 by ben] get working with VC7 config.inc.samp: Declare OPTIONAL_LIBRARY_DIR as root of library directories. Redo all graphics library defaults to mirror the versions and directories in the current binary aux distribution on xemacs web site. Enable TIFF and COMPFACE by default since you can now compile with them and binary libs are provided. xemacs.mak: Put our own directories first in case of conflict (e.g. config.h in compface). xemacs.mak: Use MSVCRT to avoid link problems. s/windowsnt.h: bytecode.c, print.c: Add casts to avoid warning. compiler.h: Add MSC_VERSION and include definitions of DOESNT_RETURN and friends here, like for GCC. Need different definitions for VC7 and VC6. s/windowsnt.h: Remove stuff moved to compiler.h. Disable warning 4646 ("function declared with __declspec(noreturn) has non-void return type") on VC7 since lots of Lisp primitives trigger this and there is no easy way to kludge around the warning. glyphs-eimage.c: Some really nasty hacks to allow TIFF and JPEG to both be compiled. #### The better solution is to move the TIFF and JPEG code to different files. glyphs-msw.c: Define __STDC__ to avoid problems with compface.h. intl-auto-encap-win32.c, intl-auto-encap-win32.h, intl-encap-win32.c, syswindows.h: Those wankers at Microsoft cannot leave well enough alone. Various functions change parameter types semi-randomly between VC6 and VC7, so we need to include our own versions that can handle both kinds with appropriate casting. EmacsFrame.c, EmacsShell-sub.c, EmacsShell.c, alloc.c, alloca.c, buffer.c, bytecode.c, charset.h, chartab.c, cm.c, console-stream.c, console.c, data.c, debug.h, device-msw.c, device-tty.c, device-x.c, doprnt.c, dumper.c, dynarr.c, elhash.c, emacs.c, eval.c, event-Xt.c, event-gtk.c, event-msw.c, event-stream.c, events.c, extents.c, faces.c, file-coding.c, fileio.c, fns.c, font-lock.c, frame-gtk.c, frame-x.c, frame.c, free-hook.c, gccache-gtk.c, glyphs-eimage.c, glyphs-gtk.c, glyphs-msw.c, glyphs-x.c, glyphs.c, gtk-glue.c, gutter.c, input-method-xlib.c, insdel.c, intl-win32.c, keymap.c, lisp.h, lread.c, lstream.c, macros.c, malloc.c, menubar-gtk.c, menubar-msw.c, menubar-x.c, mule-coding.c, native-gtk-toolbar.c, number.c, objects-msw.c, objects.c, print.c, process-nt.c, process-unix.c, process.c, ralloc.c, rangetab.c, redisplay-gtk.c, redisplay-msw.c, redisplay-output.c, redisplay-tty.c, redisplay-x.c, redisplay.c, regex.c, scrollbar-gtk.c, scrollbar-x.c, search.c, select-x.c, signal.c, specifier.c, specifier.h, strftime.c, sunplay.c, symbols.c, sysdep.c, sysproc.h, text.c, text.h, toolbar-common.c, toolbar-msw.c, toolbar.c, ui-gtk.c, unexnt.c, unicode.c, win32.c, window.c, xgccache.c, s/windowsnt.h: abort() -> ABORT(). Eliminate preprocessor games with abort() since it creates huge problems in VC7, solvable only by including massive amounts of files in every compile (and not worth it).
author ben
date Mon, 24 Jan 2005 23:34:34 +0000
parents 131b0175ea99
children 308d34e9f07d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
1 ;;; Testsuite for Mule string-matching - used to crash!
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
2
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
3 ;; Copyright (C) 1996 Sun Microsystems.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
4
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
5 ;; This file is part of XEmacs.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
6
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
7 ;; XEmacs is free software; you can redistribute it and/or modify it
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
8 ;; under the terms of the GNU General Public License as published by
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
9 ;; the Free Software Foundation; either version 2, or (at your option)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
10 ;; any later version.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
11
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
12 ;; XEmacs is distributed in the hope that it will be useful, but
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
13 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
14 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
15 ;; General Public License for more details.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
16
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
17 ;; You should have received a copy of the GNU General Public License
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
18 ;; along with XEmacs; see the file COPYING. If not, write to the Free
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
19 ;; Software Foundation,59 Temple Place - Suite 330,
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
20 ;; Boston, MA 02111-1307, USA.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
21
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
22 ;;; Just load the file to run the test.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
23
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
24 (defmacro test-match (result regexp string)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
25 `(save-excursion
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
26 (assert (eq ,result (string-match ,regexp ,string)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
27 (let ((buf (get-buffer-create "*testsuite*"))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
28 (random-text "foo$(BEl5~(B"))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
29 (set-buffer buf)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
30 (erase-buffer)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
31 (insert random-text)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
32 (insert ,string)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
33 (goto-char (point-min))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
34 (forward-char (length random-text))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
35 (assert (eq (progn (re-search-forward ,regexp) (match-beginning 0))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
36 (+ 1 ,result (length random-text))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
37 )))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
38
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
39 (when (featurep 'mule)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
40 (test-match 0 "a" "a")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
41 (test-match 0 "[^a]" "$(B4A;z(B")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
42 (test-match 2 "[^a]$(B;z(B" "ab$(B4A;z(B")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
43 (test-match 1 "[^a]" "ab$(B4A;z(B")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
44 (test-match 0 "[^a]" "$(B4A(Bb$(B4A;z(Bb")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
45 (test-match 6 "[a]" "b$(B4A(Bb$(B4A;z(Bba")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
46 (test-match 2 "[a]" "b$(B4A(Bab$(B4A;z(Bba")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
47 (test-match 1 "[$(B4A(Ba]" "b$(B4A(Bab$(B4A;z(Bba")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
48 (test-match 1 "[a$(B4A(B]" "b$(B4A(Bab$(B4A;z(Bba")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
49 (test-match 0 "[^$(B4A(Ba]" "b$(B4A(Bab$(B4A;z(Bba")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
50 (test-match 5 "$(B4A(B[^$(B4A(Ba]" "a$(B4A(Bab$(B4A4A;z(Bba")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
51 )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
52