From xemacs-m  Sun Jun 15 13:38:05 1997
Received: from bittersweet.inetarena.com (karlheg@bittersweet.inetarena.com [206.129.216.38])
	by xemacs.org (8.8.5/8.8.5) with ESMTP id NAA15669
	for <xemacs-beta@xemacs.org>; Sun, 15 Jun 1997 13:38:02 -0500 (CDT)
Received: (from karlheg@localhost)
	by bittersweet.inetarena.com (8.8.5/8.8.5) id LAA06978;
	Sun, 15 Jun 1997 11:37:40 -0700
Date: Sun, 15 Jun 1997 11:37:40 -0700
Message-Id: <199706151837.LAA06978@bittersweet.inetarena.com>
From: "Karl M. Hegbloom" <karlheg@inetarena.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
To: <xemacs-beta@xemacs.org>
Subject: [patch] psgml fixes
X-Mailer: VM 6.32 under 20.3 "Oslo" XEmacs Lucid (beta7)
X-Face: /Q}=yl}1_v7nP)xXo5XjG8+tl@=uVu7o5u6)f]zN?+<hB!K.m9:[|*p34jVN`O;:XZXVSy>/\R>qDt(t8w!-i{(y0"`jFw^uk8inzO9wXabd'CdjUWfC\GHi:6nO*YC89#-qD>Q4r%9!V"<RYJ=7D#$";q=zML5'!=wvXk^$`6FT=5CMofQX)WUKt0p:OKl.mFOXx/D


 This should be applied AFTER Steve's last patch.  I grepped all the
files for following-char, and then just did a

  {M-% (following-char) RET (char-after (point)) RET}

8<----------------------------------------------------------------->8
*** psgml-debug.el.orig	Wed Dec 18 14:43:36 1996
--- psgml-debug.el	Sun Jun 15 11:09:16 1997
***************
*** 232,238 ****
  	     doc)
  	 (forward-sexp 1)		; skip argument list
  	 (skip-chars-forward " \n\t")
! 	 (when (eq ?\" (following-char)) ; doc string
  	       (setq doc (buffer-substring (point)
  					   (progn (forward-sexp 1)
  						  (point)))))
--- 232,238 ----
  	     doc)
  	 (forward-sexp 1)		; skip argument list
  	 (skip-chars-forward " \n\t")
! 	 (when (eq ?\" (char-after (point))) ; doc string
  	       (setq doc (buffer-substring (point)
  					   (progn (forward-sexp 1)
  						  (point)))))
*** psgml-dtd.el.orig	Thu Jan  2 19:10:27 1997
--- psgml-dtd.el	Sun Jun 15 11:10:14 1997
***************
*** 664,670 ****
    (sgml-skip-ps)
    (let ((type 'name-token-group)
  	(names nil))
!     (unless (eq (following-char) ?\()
        (setq type (intern (sgml-check-name)))
        (sgml-skip-ps))
      (when (memq type '(name-token-group notation))
--- 664,670 ----
    (sgml-skip-ps)
    (let ((type 'name-token-group)
  	(names nil))
!     (unless (eq (char-after (point)) ?\()
        (setq type (intern (sgml-check-name)))
        (sgml-skip-ps))
      (when (memq type '(name-token-group notation))
*** psgml-parse.el.orig	Sun Jun 15 11:10:45 1997
--- psgml-parse.el	Sun Jun 15 11:11:42 1997
***************
*** 988,1002 ****
  
  (defsubst sgml-read-octet ()
    ;; Wing change
!   (prog1 (sgml-char-int (following-char))
      (forward-char)))
  
  (defsubst sgml-read-number ()
    "Read a number.
  A number is 1: an octet [0--sgml-max-singel-octet-number]
  or 2: two octets (n,m) interpreted as  (n-t-1)*256+m+t."
!   (if (> (following-char) sgml-max-single-octet-number)
!       (+ (* (- (following-char) (eval-when-compile
  				 (1+ sgml-max-single-octet-number)))
  	    256)
  	 (prog1 (char-after (1+ (point)))
--- 988,1002 ----
  
  (defsubst sgml-read-octet ()
    ;; Wing change
!   (prog1 (sgml-char-int (char-after (point)))
      (forward-char)))
  
  (defsubst sgml-read-number ()
    "Read a number.
  A number is 1: an octet [0--sgml-max-singel-octet-number]
  or 2: two octets (n,m) interpreted as  (n-t-1)*256+m+t."
!   (if (> (char-after (point)) sgml-max-single-octet-number)
!       (+ (* (- (char-after (point)) (eval-when-compile
  				 (1+ sgml-max-single-octet-number)))
  	    256)
  	 (prog1 (char-after (1+ (point)))
***************
*** 1399,1405 ****
  		(`((sgml-delimiter-parse-error (, delim))))))))))
  
  (defmacro sgml-following-char (n)
!   (cond ((zerop n)  '(following-char))
  	((= n 1)    '(char-after (1+ (point))))
  	(t          (` (char-after (+ (, n) (point)))))))
  
--- 1399,1405 ----
  		(`((sgml-delimiter-parse-error (, delim))))))))))
  
  (defmacro sgml-following-char (n)
!   (cond ((zerop n)  '(char-after (point)))
  	((= n 1)    '(char-after (1+ (point))))
  	(t          (` (char-after (+ (, n) (point)))))))
  
***************
*** 1456,1462 ****
  ;;;                aproporiate value.
  
  (defmacro sgml-parse-char (char)
!   (` (cond ((eq (, char) (following-char))
  	    (forward-char 1)
  	    t))))
  
--- 1456,1462 ----
  ;;;                aproporiate value.
  
  (defmacro sgml-parse-char (char)
!   (` (cond ((eq (, char) (char-after (point)))
  	    (forward-char 1)
  	    t))))
  
***************
*** 1486,1492 ****
  
  (defun sgml-startnm-char-next ()
    (and (not (eobp))
!        (sgml-startnm-char (following-char))))
  
  (defun sgml-name-char (c)
    (and c
--- 1486,1492 ----
  
  (defun sgml-startnm-char-next ()
    (and (not (eobp))
!        (sgml-startnm-char (char-after (point)))))
  
  (defun sgml-name-char (c)
    (and c
***************
*** 1564,1570 ****
  
  (defun sgml-parse-nametoken (&optional entity-name)
    "Parses a name token and returns a string or nil if no nametoken."
!   (if (sgml-name-char (following-char))
        (let ((name (buffer-substring-no-properties
  		   (point)
  		   (progn (skip-syntax-forward "w_")
--- 1564,1570 ----
  
  (defun sgml-parse-nametoken (&optional entity-name)
    "Parses a name token and returns a string or nil if no nametoken."
!   (if (sgml-name-char (char-after (point)))
        (let ((name (buffer-substring-no-properties
  		   (point)
  		   (progn (skip-syntax-forward "w_")
***************
*** 1708,1715 ****
  (defun sgml-parse-minimum-literal ()
    "Parse a quoted SGML string and return it, if no string return nil."
    (cond
!    ((memq (following-char) '(?\" ?\'))
!     (let* ((qchar (following-char))
  	   (blanks " \t\r\n")
  	   (qskip (format "^%s%c" blanks qchar))
  	   (start (point))
--- 1708,1715 ----
  (defun sgml-parse-minimum-literal ()
    "Parse a quoted SGML string and return it, if no string return nil."
    (cond
!    ((memq (char-after (point)) '(?\" ?\'))
!     (let* ((qchar (char-after (point)))
  	   (blanks " \t\r\n")
  	   (qskip (format "^%s%c" blanks qchar))
  	   (start (point))
***************
*** 3279,3285 ****
  	       ((sgml-parse-RE) (delim "\n"))
  	       ((sgml-parse-chars ?- ?-) (delim "--"))
  	       ;; The other one character delimiters
! 	       ((setq i (assq (following-char) sgml-shortref-oneassq))
  		(when i (forward-char 1))
  		(aref map (cdr i))))))
        i)))
--- 3279,3285 ----
  	       ((sgml-parse-RE) (delim "\n"))
  	       ((sgml-parse-chars ?- ?-) (delim "--"))
  	       ;; The other one character delimiters
! 	       ((setq i (assq (char-after (point)) sgml-shortref-oneassq))
  		(when i (forward-char 1))
  		(aref map (cdr i))))))
        i)))
***************
*** 3345,3351 ****
  (defun sgml-check-end-of-entity (type)
    (unless (eobp)
      (sgml-parse-error "Illegal character '%c' in %s"
! 		      (following-char)
  		      type)))
  
  (defun sgml-setup-doctype (docname external)
--- 3345,3351 ----
  (defun sgml-check-end-of-entity (type)
    (unless (eobp)
      (sgml-parse-error "Illegal character '%c' in %s"
! 		      (char-after (point))
  		      type)))
  
  (defun sgml-setup-doctype (docname external)
***************
*** 3361,3367 ****
  	(if (eq (current-buffer) original-buffer)
  	    (sgml-check-delim "DSC")
  	  (sgml-parse-error "Illegal character '%c' in doctype declaration"
! 			    (following-char))))))
      (cond (external
  	   (sgml-push-to-entity (sgml-make-entity docname 'dtd external))
  	   (sgml-check-dtd-subset)
--- 3361,3367 ----
  	(if (eq (current-buffer) original-buffer)
  	    (sgml-check-delim "DSC")
  	  (sgml-parse-error "Illegal character '%c' in doctype declaration"
! 			    (char-after (point)))))))
      (cond (external
  	   (sgml-push-to-entity (sgml-make-entity docname 'dtd external))
  	   (sgml-check-dtd-subset)
***************
*** 4017,4023 ****
  	    "Unclosed tag is not allowed with SHORTTAG NO")
  	   t))
     (sgml-error "Invalid character in markup %c"
! 	       (following-char))))
  
  (defun sgml-implied-end-tag (type start end)
    (cond ((eq sgml-current-tree sgml-top-tree)
--- 4017,4023 ----
  	    "Unclosed tag is not allowed with SHORTTAG NO")
  	   t))
     (sgml-error "Invalid character in markup %c"
! 	       (char-after (point)))))
  
  (defun sgml-implied-end-tag (type start end)
    (cond ((eq sgml-current-tree sgml-top-tree)
8<----------------------------------------------------------------->8 

-- 
Karl M. Hegbloom <karlheg@inetarena.com>
http://www.inetarena.com/~karlheg
Portland, OR  USA
Debian GNU 1.3  Linux 2.1.36 AMD K5 PR-133

