Mercurial > hg > xemacs-beta
view tests/automated/syntax-tests.el @ 558:ed498ef2108b
[xemacs-hg @ 2001-05-23 09:59:33 by ben]
xemacs.mak: call `ver' to get the exact os version and put it in the
installation; suggestion from adrian.
behavior-defs.el: Add scroll-in-place, jka-compr, efs, fix up some things.
pop.c: Remove BROKEN_CYGWIN.
etc\sample.init.el: Rewrite to be much more careful about loading features --
now it decays gracefully even in the complete absence of packages.
Also avoid doing obnoxious things when loading efs.
configure.in: add some support for eventually turning on file coding by
default. Fix numerous places where AC_MSG_WARN had quotes
around its arg, which is bad. Replace with []. Same for
AC_MSG_ERROR.
s\cygwin32.h, s\mingw32.h: remove support for way old beta versions of cygwin.
don't put -Wno-sign-compare in the system switches; this
isn't a system issue. define BROKEN_SIGIO for cygwin to
get C-g support.
device-msw.c: signal an error rather than crash with an unavailable network
printer (from Mike Alexander).
event-msw.c: cleanup headers. fix (hopefully) an error with data corruption
when sending to a network connection.
fileio.c: Fix evil code that attempts
to handle the ~user prefix by (a) always assuming we're referencing
ourselves and not even verifying the user -- hence any file with
a tilde as its first char is invalid! (b) if there wasn't a slash
following the filename, the pointer was set *past* the end of
file and we started reading from uninitialized memory. Now we
simply treat these as files, always.
optionally for 21.4 (doc fix):
lread.c: cambia de pas_de_lache_ici -- al minimo usa la palabra certa.
frame.c: fix warnings.
emacs.c, nt.c, ntproc.c, process-nt.c, realpath.c, unexnt.c: rename MAX_PATH
to standard PATH_MAX.
process-nt.c, realpath.c: cleanup headers.
process-unix.c, sysdep.c, systime.h, syswindows.h: kill BROKEN_CYGWIN and
support for way old beta versions of cygwin.
sysfile.h: use _MAX_PATH (Windows) preferentially for PATH_MAX if defined.
include io.h on Cygwin (we need get_osfhandle()). include
sys/fcntl.h always, since we were including it in various
header files anyway.
unexcw.c: fix up style to conform to standard. remove duplicate definition
of PERROR.
buffer.c: comment change.
database.c, debug.h, device-tty.c, dired-msw.c, glyphs-msw.c: header
cleanups (remove places that directly include a system
header file, because we have our own layer to do this more cleanly
and portably); indentation fixes.
author | ben |
---|---|
date | Wed, 23 May 2001 09:59:48 +0000 |
parents | 223736d75acb |
children | ea6a06f7bf2c |
line wrap: on
line source
;; Copyright (C) 1999 Free Software Foundation, Inc. ;; Author: Yoshiki Hayashi <t90553@mail.ecc.u-tokyo.ac.jp> ;; Maintainer: Yoshiki Hayashi <t90553@mail.ecc.u-tokyo.ac.jp> ;; Created: 1999 ;; Keywords: tests ;; 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, Inc., 59 Temple Place - Suite 330, Boston, MA ;; 02111-1307, USA. ;;; Synched up with: Not in FSF. ;;; Commentary: ;; Test syntax related functions. ;; Right now it tests scan_words using forward-word and backward-word. ;; See test-harness.el for instructions on how to run these tests. ;;; Notation ;; W: word constituent character. ;; NW: non word constituent character. ;; -!-: current point. ;; EOB: end of buffer ;; BOB: beginning of buffer. ;; Algorithm of scan_words is simple. It just searches SW and then ;; moves to NW. When with MULE, it also stops at word boundary. Word ;; boundary is tricky and listing all possible cases will be huge. ;; Those test are omitted here as it doesn't affect core ;; functionality. (defun test-forward-word (string stop) (goto-char (point-max)) (let ((point (point))) (insert string) (goto-char point) (forward-word 1) (Assert (eq (point) (+ point stop))))) (with-temp-buffer ;; -!- W NW (test-forward-word "W " 1) (test-forward-word "WO " 2) ;; -!- W EOB (test-forward-word "W" 1) (test-forward-word "WO" 2) ;; -!- NW EOB (test-forward-word " " 1) (test-forward-word " !" 2) ;; -!- NW W NW (test-forward-word " W " 2) (test-forward-word " WO " 3) (test-forward-word " !W " 3) (test-forward-word " !WO " 4) ;; -!- NW W EOB (test-forward-word " W" 2) (test-forward-word " WO" 3) (test-forward-word " !W" 3) (test-forward-word " !WO" 4)) (defun test-backward-word (string stop) (goto-char (point-min)) (insert string) (let ((point (point))) (backward-word 1) (Assert (eq (point) (- point stop))))) (with-temp-buffer ;; NW W -!- (test-backward-word " W" 1) (test-backward-word " WO" 2) ;; BOB W -!- (test-backward-word "W" 1) (test-backward-word "WO" 2) ;; BOB NW -!- ;; -!-NW EOB (test-backward-word " " 1) (test-backward-word " !" 2) ;; NW W NW -!- (test-backward-word " W " 2) (test-backward-word " WO " 3) (test-backward-word " W !" 3) (test-backward-word " WO !" 4) ;; BOB W NW -!- (test-backward-word "W " 2) (test-backward-word "WO " 3) (test-backward-word "W !" 3) (test-backward-word "WO !" 4)) ;; Works like test-forward-word, except for the following: ;; after <string> is inserted, the syntax-table <apply-syntax> ;; is applied to position <apply-pos>. ;; <apply-pos> can be in the form (start . end), or can be a ;; character position. (defun test-syntax-table (string apply-pos apply-syntax stop) (goto-char (point-max)) (unless (consp apply-pos) (setq apply-pos `(,apply-pos . ,(+ 1 apply-pos)))) (let ((point (point))) (insert string) (put-text-property (+ point (car apply-pos)) (+ point (cdr apply-pos)) 'syntax-table apply-syntax) (goto-char point) (forward-word 1) (Assert (eq (point) (+ point stop))))) ;; test syntax-table extents (with-temp-buffer ;; Apply punctuation to word (test-syntax-table "WO" 1 `(,(syntax-string-to-code ".")) 1) ;; Apply word to punctuation (test-syntax-table "W." 1 `(,(syntax-string-to-code "w")) 2)) ;; Test forward-comment at buffer boundaries (with-temp-buffer (c-mode) (insert "// comment\n") (forward-comment -2) (Assert (eq (point) (point-min))) (let ((point (point))) (insert "/* comment */") (goto-char point) (forward-comment 2) (Assert (eq (point) (point-max))) ;; this last used to crash (parse-partial-sexp point (point-max))))