1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-11 07:22:22 +00:00

Resurrect editors/psgml.

This commit is contained in:
Hiroki Sato 2014-11-22 07:40:16 +00:00
parent 73b5b12649
commit 1735e2855d
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=373035
16 changed files with 921 additions and 1 deletions

1
MOVED
View File

@ -6596,7 +6596,6 @@ editors/color-mate||2014-09-01|Not staged
editors/gnuserv||2014-09-01|Not staged
editors/jext||2014-09-01|Not staged
editors/komodo-ide||2014-09-01|Not staged
editors/psgml||2014-09-01|Not staged
editors/setedit||2014-09-01|Not staged
editors/softmaker-office||2014-09-01|Not staged
editors/textedit||2014-09-01|Not staged

View File

@ -218,6 +218,7 @@
SUBDIR += pico-alpine
SUBDIR += pluma
SUBDIR += poedit
SUBDIR += psgml
SUBDIR += puff
SUBDIR += py-room
SUBDIR += rox-edit

51
editors/psgml/Makefile Normal file
View File

@ -0,0 +1,51 @@
# Created by: Shigeyuki Fukushima <shige@FreeBSD.org>
# $FreeBSD$
PORTNAME= psgml
PORTVERSION= 1.3.2
PORTREVISION= 21
CATEGORIES= editors elisp
MASTER_SITES= SF/${PORTNAME}/ALPHA%20${PORTNAME}/${PORTVERSION}
PKGNAMESUFFIX= -${EMACS_PORT_NAME}
PATCH_SITES= ${MASTER_SITE_LOCAL}
PATCH_SITE_SUBDIR= hrs
PATCHFILES= psgml-symbol-conflict-050503.diff.gz
MAINTAINER= hrs@FreeBSD.org
COMMENT= Major mode for editing SGML and XML documents for Emacs
POST_PATCHES= ${PATCHDIR}/post-patch-psgml.el
USE_EMACS= yes
NOT_FOR_ARCHS= ia64
GNU_CONFIGURE= YES
CONFIGURE_ARGS= --lispdir=${PSGML_LISPDIR}
CONFIGURE_ENV= EMACS=${EMACS_CMD}
SUB_FILES= ${PSGML_STARTUPEL}
SUB_LIST= PSGML_LISPDIR=${PSGML_LISPDIR}
PLIST_SUB= PSGML_STARTUPEL=${PSGML_STARTUPEL}
INFO= psgml psgml-api
PSGML_STARTUPEL= psgml-startup.el
PSGML_LISPDIR= ${PREFIX}/${EMACS_VERSION_SITE_LISPDIR}/psgml
.include <bsd.port.pre.mk>
.if ${EMACS_PORT_NAME} == xemacs21-mule
PLIST_SUB+= XEMACS="" \
NON_XEMACS="@comment "
.else
PLIST_SUB+= XEMACS="@comment " \
NON_XEMACS=""
.endif
post-patch:
cd ${WRKSRC} && ${CAT} < ${POST_PATCHES}
post-install:
cd ${WRKSRC} && ${SETENV} DESTDIR="${STAGEDIR}" ${MAKE} install-info
${INSTALL_DATA} ${WRKDIR}/${PSGML_STARTUPEL} \
${STAGEDIR}${PREFIX}/${EMACS_VERSION_SITE_LISPDIR}
.include <bsd.port.post.mk>

4
editors/psgml/distinfo Normal file
View File

@ -0,0 +1,4 @@
SHA256 (psgml-1.3.2.tar.gz) = a020bfe9ab75e325e738726dd850e2b17030b3a5a2c0a349070839865ff51905
SIZE (psgml-1.3.2.tar.gz) = 252394
SHA256 (psgml-symbol-conflict-050503.diff.gz) = 1cbba4be9cc50cf86a901a9eb9435380d4ed75a3cbb4e252619d6006502660d0
SIZE (psgml-symbol-conflict-050503.diff.gz) = 5669

View File

@ -0,0 +1,53 @@
--- Makefile.in.orig 2005-03-06 01:23:40.000000000 +0900
+++ Makefile.in 2014-11-22 15:59:39.000000000 +0900
@@ -20,27 +20,39 @@
SHELL = /bin/sh
compile:
+ for F in psgml.el psgml.texi; do \
+ sed -e "s,@[p]refix@,${prefix}," < $$F > $$F.tmp; \
+ mv $$F.tmp $$F; \
+ done
$(EMACS) $(FLAGS) -f psgml-compile-files
-all:
- rm -f *.elc ; $(EMACS) $(FLAGS) -f psgml-compile-files
+info:
+ for p in psgml psgml-api; do \
+ $(EMACS) -batch -q -no-site-file -l texinfmt \
+ -f batch-texinfo-format $$p.texi; \
+ done
+all:
+ rm -f *.elc
+ ${MAKE} compile
+ ${MAKE} info
-install: compile
- $(SHELL) mkinstalldirs $(lispdir)
+install:
+ $(SHELL) mkinstalldirs $(DESTDIR)$(lispdir)
for p in *.elc; do \
- echo " $(INSTALL_DATA) $$p $(lispdir)/$$p"; \
- $(INSTALL_DATA) $$p $(lispdir)/$$p; \
+ echo " $(INSTALL_DATA) $$p $(DESTDIR)$(lispdir)/$$p"; \
+ $(INSTALL_DATA) $$p $(DESTDIR)$(lispdir)/$$p; \
+ $(INSTALL_DATA) `echo $$p | sed 's/elc$$/el/'` $(DESTDIR)$(lispdir)/`echo $$p | sed 's/elc$$/el/'` ; \
done
- $(INSTALL_DATA) iso88591.map $(lispdir)
+ $(INSTALL_DATA) iso88591.map $(DESTDIR)$(lispdir)
install-info:
- $(INSTALL_DATA) psgml.info $(infodir)
- $(INSTALL_DATA) psgml-api.info $(infodir)
+ $(INSTALL_DATA) psgml.info $(DESTDIR)$(infodir)
+ $(INSTALL_DATA) psgml-api.info $(DESTDIR)$(infodir)
if $(SHELL) -c 'install-info --version' \
>/dev/null 2>&1; then \
- install-info --info-dir=$(infodir) psgml.info; \
- install-info --info-dir=$(infodir) psgml-api.info; \
+ install-info $(DESTDIR)$(infodir)/psgml.info $(DESTDIR)$(infodir)/dir; \
+ install-info $(DESTDIR)$(infodir)/psgml-api.info $(DESTDIR)$(infodir)/dir; \
else true; fi

View File

@ -0,0 +1,29 @@
--- psgml.el.orig Wed May 21 14:47:45 2003
+++ psgml.el Wed May 21 15:44:47 2003
@@ -340,7 +340,7 @@
(put 'sgml-system-path 'sgml-type 'file-list)
(defvar sgml-public-map (or (sgml-parse-colon-path (getenv "SGML_PATH"))
- '("%S" "/usr/local/lib/sgml/%o/%c/%d" ))
+ '("%S" "@prefix@/share/sgml/%o/%c/%d" ))
"*Mapping from public identifiers to file names.
This is a list of possible file names. To find the file for a public
identifier the elements of the list are used one at the time from the
@@ -366,13 +366,15 @@
(defvar sgml-catalog-files (or (delete nil
(sgml-parse-colon-path
(getenv "SGML_CATALOG_FILES")))
- '("catalog" "/usr/local/lib/sgml/catalog"))
+ '("catalog" "@prefix@/share/sgml/catalog"
+ "@prefix@/share/xml/catalog"))
"*List of catalog entry files.
The files are in the format defined in the SGML Open Draft Technical
Resolution on Entity Management.")
(put 'sgml-catalog-files 'sgml-type 'file-list)
-(defvar sgml-ecat-files '("ECAT" "~/sgml/ECAT" "/usr/local/lib/sgml/ECAT")
+(defvar sgml-ecat-files '("ECAT" "~/sgml/ECAT" "@prefix@/share/sgml/ECAT"
+ "@prefix@/share/xml/ECAT")
"*List of catalog files for PSGML.")
(put 'sgml-ecat-files 'sgml-type 'file-list)

View File

@ -0,0 +1,47 @@
--- psgml.texi.orig Mon Nov 16 06:45:07 1998
+++ psgml.texi Sat Jan 23 21:10:21 1999
@@ -11,10 +11,9 @@
@ifinfo
-@format
-START-INFO-DIR-ENTRY
+@dircategory The Emacs editor and associated tools
+@direntry
* PSGML: (psgml). PSGML, a major mode for SGML documents.
-END-INFO-DIR-ENTRY
-@end format
+@end direntry
@end ifinfo
@ifinfo
@@ -401,10 +400,10 @@
@code{SGML_PATH}.
Given the public identifier above and the file name template
-@samp{/usr/local/lib/sgml/%o/%c/%d}, the resulting file name is
+@samp{@prefix@/share/sgml/%o/%c/%d}, the resulting file name is
@example
-/usr/local/lib/sgml/ISO_8879:1986/entities/Added_Latin_1
+@prefix@/share/sgml/ISO_8879:1986/entities/Added_Latin_1
@end example
Note: blanks are transliterated to @samp{_} (and also @samp{/} to
@@ -420,7 +419,7 @@
is undefined the default is
@lisp
-("CATALOG" "/usr/local/lib/sgml/CATALOG")
+("catalog" "@prefix@/share/sgml/catalog")
@end lisp
@end defopt
@@ -448,7 +447,7 @@
environment variable is undefined the default is
@lisp
-("%S" "/usr/local/lib/sgml/%o/%c/%d")
+("%S" "@prefix@/share/sgml/%o/%c/%d")
@end lisp
@c Mapping from public identifiers to file names.
@end defopt

View File

@ -0,0 +1,16 @@
--- psgml-api.texi.orig Mon Nov 16 06:45:06 1998
+++ psgml-api.texi Sat Jan 23 21:11:18 1999
@@ -8,10 +8,9 @@
@ifinfo
-@format
-START-INFO-DIR-ENTRY
+@dircategory The Emacs editor and associated tools
+@direntry
* PSGML-API: (psgml-api). PSGML, the API documentation.
-END-INFO-DIR-ENTRY
-@end format
+@end direntry
@end ifinfo
@ifinfo

View File

@ -0,0 +1,30 @@
--- configure.orig Sun Oct 10 23:12:40 1999
+++ configure Sat Oct 16 20:02:52 1999
@@ -73,6 +73,11 @@
case "$ac_option" in
+ -lispdir | --lispdir | --lispdi | --lispd | --lisp)
+ ac_prev=lispdir ;;
+ -lispdir=* | --lispdir=* | --lispdi=* | --lispd=* | --lisp=*)
+ lispdir="$ac_optarg" ;;
+
-bindir | --bindir | --bindi | --bind | --bin | --bi)
ac_prev=bindir ;;
-bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
@@ -687,6 +692,7 @@
done
test -n "$EMACS" || EMACS="no"
+if test -z "$lispdir" ; then
if test $EMACS != "no"; then
echo $ac_n "checking where .elc files should go""... $ac_c" 1>&6
echo "configure:693: checking where .elc files should go" >&5
@@ -710,6 +716,7 @@
fi
echo "$ac_t""$lispdir" 1>&6
fi
+fi
# Extract the first word of "makeinfo", so it can be a program name with args.
set dummy makeinfo; ac_word=$2

View File

@ -0,0 +1,61 @@
--- psgml-dtd.el.orig 2005-03-06 01:23:40.000000000 +0900
+++ psgml-dtd.el 2012-08-04 11:56:25.000000000 +0900
@@ -93,12 +93,12 @@
(defmacro sgml-for-all-final-states (s dfa &rest forms)
"For all final states S in DFA do FORMS.
Syntax: var dfa-expr &body forms"
- (` (let ((L-states (sgml-some-states-of (, dfa)))
- (, s))
+ `(let ((L-states (sgml-some-states-of ,dfa))
+ ,s)
(while L-states
- (when (sgml-state-final-p (setq (, s) (car L-states)))
- (,@ forms))
- (setq L-states (cdr L-states))))))
+ (when (sgml-state-final-p (setq ,s (car L-states)))
+ ,@forms)
+ (setq L-states (cdr L-states)))))
(put 'sgml-for-all-final-states 'lisp-indent-hook 2)
(put 'sgml-for-all-final-states 'edebug-form-hook '(symbolp &rest form))
@@ -217,7 +217,7 @@
(defun sgml-make-pcdata ()
(sgml-make-* (sgml-make-primitive-content-token sgml-pcdata-token)))
-(defun sgml-reduce-, (l)
+(defun sgml-reduce-\, (l)
(while (cdr l)
(setcar (cdr l)
(sgml-make-conc (car l) (cadr l)))
@@ -279,7 +279,7 @@
(sgml-parse-delim "CRO" (digit nmstart))
(sgml-parse-delim "CRO" (digit)))
(prog1 (if (sgml-is-delim "NULL" digit)
- (string-to-int (sgml-check-nametoken))
+ (string-to-number (sgml-check-nametoken))
(let ((spec (sgml-check-name)))
(or (cdr (assoc spec '(("RE" . 10)
("RS" . 1)
@@ -336,7 +336,7 @@
(defsubst sgml-parse-connector ()
(sgml-skip-ps)
(cond ((sgml-parse-delim "SEQ")
- (function sgml-reduce-,))
+ (function sgml-reduce-\,))
((sgml-parse-delim "OR")
(function sgml-reduce-|))
((sgml-parse-delim "AND")
@@ -884,10 +884,10 @@
FORMS should produce the binary coding of element in VAR."
(let ((var (car loop-c))
(seq (cadr loop-c)))
- (` (let ((seq (, seq)))
+ `(let ((seq ,seq))
(sgml-code-number (length seq))
- (loop for (, var) in seq
- do (,@ body))))))
+ (loop for ,var in seq
+ do ,@body))))
(put 'sgml-code-sequence 'lisp-indent-hook 1)
(put 'sgml-code-sequence 'edbug-forms-hook '(sexp &rest form))

View File

@ -0,0 +1,49 @@
--- psgml-edit.el.orig 2013-06-03 13:44:59.000000000 +0900
+++ psgml-edit.el 2013-06-03 14:13:25.000000000 +0900
@@ -185,7 +185,9 @@
(goto-char (sgml-element-start element))
(delete-char (sgml-element-stag-len element))
(insert (sgml-delim "STAGO")
- (sgml-general-insert-case gi)
+ (if (symbolp gi)
+ (sgml-general-insert-case (symbol-name gi))
+ (sgml-general-insert-case gi))
tagc)
(let* ((newel (sgml-find-context-of (point)))
(newattlist (sgml-element-attlist newel))
@@ -1870,24 +1872,28 @@
(invert
(or (looking-at "&#\\([0-9]+\\)[;\n]?")
(error "No character reference after point"))
- (let ((c (string-to-int (buffer-substring (match-beginning 1)
+ (let ((c (string-to-number (buffer-substring (match-beginning 1)
(match-end 1)))))
(delete-region (match-beginning 0)
(match-end 0))
(if (fboundp 'decode-char) ; Emacs 21, Mule-UCS
(setq c (decode-char 'ucs c))
+ (if (fboundp 'ucs-to-char)
+ (setq c (ucs-to-char c))
;; Else have to assume 8-bit character.
- (if (fboundp 'unibyte-char-to-multibyte) ; Emacs 20
- (setq c (unibyte-char-to-multibyte c))))
+ (if (fboundp 'unibyte-char-to-multibyte) ; Emacs 20
+ (setq c (unibyte-char-to-multibyte c)))))
(insert c)))
;; Convert character to &#nn;
(t
(let ((c (following-char)))
(delete-char 1)
- (if (fboundp 'encode-char)
- (setq c (encode-char c 'ucs))
- (if (fboundp 'multibyte-char-to-unibyte)
- (setq c (multibyte-char-to-unibyte c))))
+ (if (fboundp 'char-to-ucs)
+ (setq c (char-to-ucs c))
+ (if (fboundp 'encode-char)
+ (setq c (encode-char c 'ucs))
+ (if (fboundp 'multibyte-char-to-unibyte)
+ (setq c (multibyte-char-to-unibyte c)))))
(insert (format "&#%d;" c))))))
(defun sgml-expand-entity-reference ()

View File

@ -0,0 +1,343 @@
--- psgml-parse.el.orig 2012-08-04 11:37:03.000000000 +0900
+++ psgml-parse.el 2012-08-04 11:37:19.000000000 +0900
@@ -329,28 +329,28 @@
;;(progn (set-syntax-table xml-parser-syntax) (describe-syntax))
(defmacro sgml-with-parser-syntax (&rest body)
- (` (let ((normal-syntax-table (syntax-table))
+ `(let ((normal-syntax-table (syntax-table))
(cb (current-buffer)))
(set-syntax-table (if sgml-xml-p xml-parser-syntax sgml-parser-syntax))
(unwind-protect
- (progn (,@ body))
+ (progn ,@body)
(setq sgml-last-buffer (current-buffer))
(set-buffer cb)
- (set-syntax-table normal-syntax-table)))))
+ (set-syntax-table normal-syntax-table))))
(defmacro sgml-with-parser-syntax-ro (&rest body)
;; Should only be used for parsing ....
- (` (let ((normal-syntax-table (syntax-table))
+ `(let ((normal-syntax-table (syntax-table))
(cb (current-buffer))
(buffer-modified (buffer-modified-p)))
(set-syntax-table (if sgml-xml-p xml-parser-syntax sgml-parser-syntax))
(unwind-protect
- (progn (,@ body))
+ (progn ,@body)
(setq sgml-last-buffer (current-buffer))
(set-buffer cb)
(set-syntax-table normal-syntax-table)
(sgml-restore-buffer-modified-p buffer-modified)
- (sgml-debug "Restoring buffer mod: %s" buffer-modified)))))
+ (sgml-debug "Restoring buffer mod: %s" buffer-modified))))
(defun sgml-set-buffer-multibyte (flag)
(cond ((featurep 'xemacs)
@@ -361,7 +361,7 @@
default-enable-multibyte-characters
flag)))
((boundp 'MULE)
- (set 'mc-flag flag))
+ (if (boundp 'mc-flag) (set 'mc-flag flag)))
(t
flag)))
;; Probably better. -- fx
@@ -428,21 +428,21 @@
;;move: (token . node)
(defmacro sgml-make-move (token node)
- (` (cons (, token) (, node))))
+ `(cons ,token ,node))
(defmacro sgml-move-token (x)
- (` (car (, x))))
+ `(car ,x))
(defmacro sgml-move-dest (x)
- (` (cdr (, x))))
+ `(cdr ,x))
;; set of moves: list of moves
(defmacro sgml-add-move-to-set (token node set)
- (`(cons (cons (, token) (, node)) (, set))))
+ `(cons (cons ,token ,node) ,set))
(defmacro sgml-moves-lookup (token set)
- (` (assq (, token) (, set))))
+ `(assq ,token ,set))
;; normal-state: ('normal-state opts . reqs)
@@ -450,16 +450,16 @@
(cons 'normal-state (cons nil nil)))
(defmacro sgml-normal-state-p (s)
- (` (eq (car (, s)) 'normal-state)))
+ `(eq (car ,s) 'normal-state))
(defmacro sgml-state-opts (s)
- (` (cadr (, s))))
+ `(cadr ,s))
(defmacro sgml-state-reqs (s)
- (` (cddr (, s))))
+ `(cddr ,s))
(defmacro sgml-state-final-p (s)
- (`(null (sgml-state-reqs (, s)))))
+ `(null (sgml-state-reqs ,s)))
;; adding moves
;; *** Should these functions check for ambiguity?
@@ -507,10 +507,10 @@
(cons next dfas))
(defmacro sgml-and-node-next (n)
- (` (car (, n))))
+ `(car ,n))
(defmacro sgml-and-node-dfas (n)
- (` (cdr (, n))))
+ `(cdr ,n))
;;; Using states
@@ -903,8 +903,8 @@
(cons
'progn
(loop for n in names collect
- (`(defmacro (, (intern (format "sgml-eltype-%s" n))) (et)
- (list 'get et ''(, n)))))))
+ `(defmacro ,(intern (format "sgml-eltype-%s" n)) (et)
+ (list 'get et '',n)))))
(sgml-prop-fields
;;flags ; optional tags and mixed
@@ -919,7 +919,7 @@
)
(defmacro sgml-eltype-flags (et)
- (` (symbol-value (, et))))
+ `(symbol-value ,et))
(defun sgml-eltype-model (et)
(if (fboundp et)
@@ -966,7 +966,7 @@
"Get application data from element type ET with name PROP.
PROP should be a symbol, reserved names are: flags, model, attlist,
includes, excludes, conref-regexp, mixed, stag-optional, etag-optional."
- (` (get (, et) (, prop))))
+ ` (get ,et ,prop))
(defun sgml-eltype-all-miscdata (et)
(loop for p on (symbol-plist et) by (function cddr)
@@ -1059,7 +1059,7 @@
;;; Wing addition
(defmacro sgml-char-int (ch)
(if (fboundp 'char-int)
- (` (char-int (, ch)))
+ `(char-int ,ch)
ch))
(defsubst sgml-read-octet ()
@@ -1434,51 +1434,51 @@
(setq context '(t)))
((not (listp context))
(setq context (list context))))
- (`(if (and ; This and checks that characters
+ `(if (and ; This and checks that characters
; of the delimiter
- (,@(loop for i from 0 below (length ds) collect
- (` (eq (, (aref ds i))
- (sgml-following-char (, (+ i offset)))))))
+ ,@(loop for i from 0 below (length ds) collect
+ `(eq ,(aref ds i)
+ (sgml-following-char ,(+ i offset))))
(or
- (,@(loop
+ ,@(loop
for c in context collect ; context check
(cond
((eq c 'nmstart) ; name start character
- (`(sgml-startnm-char
- (or (sgml-following-char (, (length ds))) 0))))
+ `(sgml-startnm-char
+ (or (sgml-following-char ,(length ds)) 0)))
((eq c 'stagc)
- (`(and sgml-current-shorttag
- (sgml-is-delim "TAGC" nil nil (, (length ds))))))
+ `(and sgml-current-shorttag
+ (sgml-is-delim "TAGC" nil nil ,(length ds))))
((eq c 'digit)
- (`(memq (sgml-following-char (, (length ds)))
- '(?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9))))
+ `(memq (sgml-following-char ,(length ds))
+ '(?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9)))
((stringp c)
- (`(sgml-is-delim (, c) nil nil (, (length ds)))))
+ `(sgml-is-delim ,c nil nil ,(length ds)))
((eq c t))
(t (error "Context type: %s" c))))
- )))
+ ))
(progn ; Do operations if delimiter found
- (,@ (if move (`((forward-char (, (length ds)))))))
- (,@ (if (not (eq move 'check))
- '(t))))
- (,@ (if (eq move 'check)
- (`((sgml-delimiter-parse-error (, delim))))))))))
+ ,@(if move `((forward-char ,(length ds))))
+ ,@(if (not (eq move 'check))
+ '(t)))
+ ,@(if (eq move 'check)
+ `((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)))))))
+ (t `(char-after (+ ,n (point))))))
(defun sgml-delimiter-parse-error (delim)
(sgml-parse-error "Delimiter %s (%s) expected"
delim (sgml-get-delim-string delim)))
(defmacro sgml-parse-delim (delim &optional context)
- (`(sgml-is-delim (, delim) (, context) move)))
+ `(sgml-is-delim ,delim ,context move))
(defmacro sgml-check-delim (delim &optional context)
- (`(sgml-is-delim (, delim) (, context) check)))
+ `(sgml-is-delim ,delim ,context check))
(defmacro sgml-skip-upto (delim)
"Skip until the delimiter or first char of one of the delimiters.
@@ -1502,8 +1502,8 @@
(let ((ds (sgml-get-delim-string (upcase (format "%s" delim)))))
(if (= 1 (length ds))
(list 'skip-chars-forward (concat "^" ds))
- (`(and (search-forward (, ds) nil t)
- (backward-char (, (length ds))))))))))
+ `(and (search-forward ,ds nil t)
+ (backward-char ,(length ds))))))))
;;(macroexpand '(sgml-is-delim mdo))
@@ -1520,22 +1520,22 @@
;;; aproporiate value.
(defmacro sgml-parse-char (char)
- (` (cond ((eq (, char) (following-char))
+ `(cond ((eq ,char (following-char))
(forward-char 1)
- t))))
+ t)))
(defmacro sgml-parse-chars (char1 char2 &optional char3)
"Parse two or three chars; return nil if can't."
(if (null char3)
- (` (cond ((and (eq (, char1) (following-char))
- (eq (, char2) (char-after (1+ (point)))))
+ `(cond ((and (eq ,char1 (following-char))
+ (eq ,char2 (char-after (1+ (point)))))
(forward-char 2)
- t)))
- (` (cond ((and (eq (, char1) (following-char))
- (eq (, char2) (char-after (1+ (point))))
- (eq (, char3) (char-after (1+ (1+ (point))))))
+ t))
+ `(cond ((and (eq ,char1 (following-char))
+ (eq ,char2 (char-after (1+ (point))))
+ (eq ,char3 (char-after (1+ (1+ (point))))))
(forward-char 3)
- t)))))
+ t))))
(defun sgml-check-char (char)
(cond ((not (sgml-parse-char char))
@@ -1546,7 +1546,7 @@
(sgml-parse-char ?\r)))
(defmacro sgml-startnm-char (c)
- (` (eq ?w (char-syntax (, c)))))
+ `(eq ?w (char-syntax ,c)))
(defsubst sgml-startnm-char-next ()
(and (not (eobp))
@@ -1693,11 +1693,11 @@
(define-compiler-macro sgml-parse-name (&whole form &optional entity-name)
(cond
((memq entity-name '(nil t))
- (` (if (sgml-startnm-char-next)
- ((, (if entity-name 'sgml-entity-case 'sgml-general-case))
+ `(if (sgml-startnm-char-next)
+ (,(if entity-name 'sgml-entity-case 'sgml-general-case)
(buffer-substring-no-properties (point)
(progn (skip-syntax-forward "w_")
- (point)))))))
+ (point))))))
(t
form)))
@@ -1827,8 +1827,8 @@
With optional NAME, RNI must be followed by NAME."
(cond
(name
- (` (if (sgml-parse-delim "RNI")
- (sgml-check-token (, name)))))
+ `(if (sgml-parse-delim "RNI")
+ (sgml-check-token ,name)))
(t '(sgml-parse-delim "RNI"))))
(defun sgml-check-token (name)
@@ -2733,11 +2733,11 @@
(let ((macs nil))
(while fields
(push
- (` (defmacro (, (intern (format "%s-%s" dest (car fields)))) (element)
- (, (format "Return %s field of ELEMENT." (car fields)))
+ `(defmacro ,(intern (format "%s-%s" dest (car fields))) (element)
+ ,(format "Return %s field of ELEMENT." (car fields))
(list
- '(, (intern (format "%s-%s" orig (car fields))))
- element)))
+ ',(intern (format "%s-%s" orig (car fields)))
+ element))
macs)
(setq fields (cdr fields)))
(cons 'progn macs)))
@@ -2775,7 +2775,7 @@
(defmacro sgml-element-stag-optional (element)
"True if start-tag of ELEMENT is omissible."
- (`(sgml-eltype-stag-optional (sgml-tree-eltype (, element)))))
+ `(sgml-eltype-stag-optional (sgml-tree-eltype ,element)))
(defsubst sgml-element-etag-optional (element)
"True if end-tag of ELEMENT is omissible."
@@ -2929,8 +2929,10 @@
(defun sgml-set-initial-state (dtd)
"Set initial state of parsing."
- (make-local-hook 'before-change-functions)
- (make-local-hook 'after-change-functions)
+ (if (fboundp 'make-local-hook)
+ (progn
+ (make-local-hook 'before-change-functions)
+ (make-local-hook 'after-change-functions)))
(add-hook 'before-change-functions 'sgml-note-change-at nil 'local)
(add-hook 'after-change-functions 'sgml-set-face-after-change nil 'local)
(sgml-set-active-dtd-indicator (sgml-dtd-doctype dtd))
@@ -3504,7 +3506,7 @@
Also move point. Return nil, either if no shortref or undefined."
(macrolet
- ((delim (x) (` (aref map (, (sgml-shortref-index x))))))
+ ((delim (x) `(aref map ,(sgml-shortref-index x))))
(let ((i (if nobol 1 0)))
(while (numberp i)
(setq i

View File

@ -0,0 +1,76 @@
--- psgml.el.orig 2012-08-04 11:43:47.000000000 +0900
+++ psgml.el 2012-08-04 11:43:51.000000000 +0900
@@ -381,7 +381,7 @@
(put 'sgml-system-path 'sgml-type 'file-list)
(defvar sgml-public-map (or (sgml-parse-colon-path (getenv "SGML_PATH"))
- '("%S" "@prefix@/share/sgml/%o/%c/%d" ))
+ '("%S" "/usr/local/share/sgml/%o/%c/%d" ))
"*Mapping from public identifiers to file names.
This is a list of possible file names. To find the file for a public
identifier the elements of the list are used one at the time from the
@@ -407,15 +407,15 @@
(defvar sgml-catalog-files (or (delete nil
(sgml-parse-colon-path
(getenv "SGML_CATALOG_FILES")))
- '("catalog" "@prefix@/share/sgml/catalog"
- "@prefix@/share/xml/catalog"))
+ '("catalog" "/usr/local/share/sgml/catalog"
+ "/usr/local/share/xml/catalog"))
"*List of catalog entry files.
The files are in the format defined in the SGML Open Draft Technical
Resolution on Entity Management.")
(put 'sgml-catalog-files 'sgml-type 'file-list)
-(defvar sgml-ecat-files '("ECAT" "~/sgml/ECAT" "@prefix@/share/sgml/ECAT"
- "@prefix@/share/xml/ECAT")
+(defvar sgml-ecat-files '("ECAT" "~/sgml/ECAT" "/usr/local/share/sgml/ECAT"
+ "/usr/local/share/xml/ECAT")
"*List of catalog files for PSGML.")
(put 'sgml-ecat-files 'sgml-type 'file-list)
@@ -724,9 +724,9 @@
(defun sgml-markup (entry text)
(cons entry
- (` (lambda ()
+ `(lambda ()
(interactive)
- (sgml-insert-markup (, text))))))
+ (sgml-insert-markup ,text))))
(defun sgml-insert-markup (text)
(let ((end (sgml-mouse-region))
@@ -1042,13 +1042,13 @@
(defun sgml-compute-insert-dtd-items ()
(loop for e in sgml-custom-dtd collect
(vector (first e)
- (` (sgml-doctype-insert (, (cadr e)) '(, (cddr e))))
+ `(sgml-doctype-insert ,(cadr e) ',(cddr e))
t)))
(defun sgml-compute-custom-markup-items ()
(loop for e in sgml-custom-markup collect
(vector (first e)
- (` (sgml-insert-markup (, (cadr e))))
+ `(sgml-insert-markup ,(cadr e))
t)))
(defun sgml-build-custom-menus ()
@@ -1231,12 +1231,14 @@
(make-local-variable 'text-property-default-nonsticky)
;; see `sgml-set-face-for':
(add-to-list 'text-property-default-nonsticky '(face . t)))
- (make-local-hook 'post-command-hook)
+ (if (fboundp 'make-local-hook)
+ (eval '(make-local-hook 'post-command-hook)))
(add-hook 'post-command-hook 'sgml-command-post 'append 'local)
(unless sgml-running-lucid
;; XEmacs 20.4 doesn't handle local activate-menubar-hook
;; it tries to call the function `t' when using the menubar
- (make-local-hook 'activate-menubar-hook))
+ (if (fboundp 'make-local-hook)
+ (eval '(make-local-hook 'activate-menubar-hook))))
(add-hook 'activate-menubar-hook 'sgml-update-all-options-menus
nil 'local)
(run-hooks 'text-mode-hook 'psgml-mode-hook)

View File

@ -0,0 +1,119 @@
;; -*- lisp -*-
;;
;; @(#)psgml-startup.el -- psgml startup elisp file.
;; -- by shige@FreeBSD.ORG
;; setup load-path
(if (not (fboundp 'normal-top-level-add-subdirs-to-load-path))
(setq load-path (append '(
"%%PSGML_LISPDIR%%"
) load-path)))
(defalias 'sgml-mode 'psgml-mode)
(defalias 'xml-mode 'pxml-mode)
(autoload 'psgml-mode "psgml" "Major mode to edit SGML files." t)
(autoload 'pxml-mode "psgml" "Major mode to edit XML files." t)
(setq auto-mode-alist
(append '(
("\\.s?html?\\'" . sgml-mode)
("\\.xml\\'" . xml-mode)
) auto-mode-alist))
(setq sgml-custom-dtd
'(("HTML" "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML//EN\">")
("HTML 2.0" "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">")
("HTML 2.0 Level 1"
"<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0 Level 1//EN\">")
("HTML 2.0 Level 2"
"<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0 Level 2//EN\">")
("HTML 2.0 Strict Level 1"
"<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0 Strict Level 1//EN\">")
("HTML 2.0 Strict Level 2"
"<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0 Strict Level 2//EN\">")
("HTML 3.2" "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2//EN\">")
("HTML 4.0" "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\">")
("HTML 4.0 Transitional"
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">")
("HTML 4.0 Frameset"
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Frameset//EN\">")
("HTML 4.01" "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">")
("HTML 4.01 Transitional"
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">")
("HTML 4.01 Frameset"
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Frameset//EN\">")
("XHTML 1.0 Strict"
"<?xml version=\"1.0\"?><!-- -*- xml -*- -->\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">")
("XHTML 1.0 Transitional"
"<?xml version=\"1.0\"?><!-- -*- xml -*- -->\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">")
("XHTML 1.0 Frameset"
"<?xml version=\"1.0\"?><!-- -*- xml -*- -->\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Frameset//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd\">")
("DocBook V2.4.1"
"<!DOCTYPE DOCBOOK PUBLIC \"-//Davenport//DTD DocBook V2.4.1//EN\">")
("DocBook V3.0"
"<!DOCTYPE DOCBOOK PUBLIC \"-//Davenport//DTD DocBook V3.0//EN\">")
("DocBook V3.1"
"<!DOCTYPE DOCBOOK PUBLIC \"-//OASIS//DTD DocBook V3.1//EN\">")
("DocBook V4.0"
"<!DOCTYPE DOCBOOK PUBLIC \"-//OASIS//DTD DocBook V4.0//EN\">")
("DocBook V4.1"
"<!DOCTYPE DOCBOOK PUBLIC \"-//OASIS//DTD DocBook V4.1//EN\">")
("LINUXDOC"
"<!DOCTYPE LINUXDOC PUBLIC \"-//FreeBSD//DTD linuxdoc//EN\">")
("LINUXDOC 1.0"
"<!DOCTYPE LINUXDOC PUBLIC \"-//FreeBSD//DTD linuxdoc 1.0//EN\">")
("LINUXDOC 1.1"
"<!DOCTYPE LINUXDOC PUBLIC \"-//FreeBSD//DTD linuxdoc 1.1//EN\">")
("Article"
"<!DOCTYPE Article PUBLIC \"ISO 12083:1993//DTD Article//EN\">")
("Book"
"<!DOCTYPE Book PUBLIC \"ISO 12083:1993//DTD Book//EN\">")
("Mathematics"
"<!DOCTYPE Mathematics PUBLIC \"ISO 12083:1993//DTD Mathematics//EN\">")
("Serial"
"<!DOCTYPE Serial PUBLIC \"ISO 12083:1993//DTD Serial//EN\">")
))
(setq-default sgml-auto-activate-dtd t)
(setq-default sgml-set-face t)
(make-face 'sgml-comment-face)
(make-face 'sgml-doctype-face)
(make-face 'sgml-end-tag-face)
(make-face 'sgml-entity-face)
(make-face 'sgml-ignored-face)
(make-face 'sgml-ms-end-face)
(make-face 'sgml-ms-start-face)
(make-face 'sgml-pi-face)
(make-face 'sgml-sgml-face)
(make-face 'sgml-short-ref-face)
(make-face 'sgml-start-tag-face)
(set-face-foreground 'sgml-comment-face "dark green")
(set-face-foreground 'sgml-doctype-face "maroon")
(set-face-foreground 'sgml-end-tag-face "SlateBlue")
(set-face-foreground 'sgml-entity-face "OrangeRed4")
(set-face-foreground 'sgml-ignored-face "maroon")
(set-face-background 'sgml-ignored-face "gray90")
(set-face-foreground 'sgml-ms-end-face "maroon")
(set-face-foreground 'sgml-ms-start-face "maroon")
(set-face-foreground 'sgml-pi-face "maroon")
(set-face-foreground 'sgml-sgml-face "maroon")
(set-face-foreground 'sgml-short-ref-face "goldenrod")
(set-face-foreground 'sgml-start-tag-face "SlateBlue")
(setq-default sgml-markup-faces
'((comment . sgml-comment-face)
(doctype . sgml-doctype-face)
(end-tag . sgml-end-tag-face)
(entity . sgml-entity-face)
(ignored . sgml-ignored-face)
(ms-end . sgml-ms-end-face)
(ms-start . sgml-ms-start-face)
(pi . sgml-pi-face)
(sgml . sgml-sgml-face)
(short-ref . sgml-short-ref-face)
(start-tag . sgml-start-tag-face)))
(provide 'psgml-startup)

17
editors/psgml/pkg-descr Normal file
View File

@ -0,0 +1,17 @@
PSGML is a major mode for editing SGML and XML documents. It works
with GNU Emacs 19.34, 20.3 and later or with XEmacs 19.9 and later.
PSGML contains a simple SGML parser and can work with any DTD.
Functions provided includes menus and commands for inserting tags with
only the contextually valid tags, identification of structural errors,
editing of attribute values in a separate window with information about
types and defaults, and structure based editing.
To use psgml, put the following setup into your ~/.emacs:
(require 'psgml-startup)
Ports of PSGML are initially created by shige <shige@FreeBSD.org> and
kuriyama@FreeBSD.ORG.
WWW: http://www.lysator.liu.se/~lenst/about_psgml/
WWW: http://sourceforge.net/projects/psgml/

25
editors/psgml/pkg-plist Normal file
View File

@ -0,0 +1,25 @@
%%EMACS_VERSION_SITE_LISPDIR%%/psgml/iso88591.map
%%EMACS_VERSION_SITE_LISPDIR%%/psgml/psgml-api.el
%%EMACS_VERSION_SITE_LISPDIR%%/psgml/psgml-api.elc
%%EMACS_VERSION_SITE_LISPDIR%%/psgml/psgml-charent.el
%%EMACS_VERSION_SITE_LISPDIR%%/psgml/psgml-charent.elc
%%EMACS_VERSION_SITE_LISPDIR%%/psgml/psgml-dtd.el
%%EMACS_VERSION_SITE_LISPDIR%%/psgml/psgml-dtd.elc
%%EMACS_VERSION_SITE_LISPDIR%%/psgml/psgml-edit.el
%%EMACS_VERSION_SITE_LISPDIR%%/psgml/psgml-edit.elc
%%EMACS_VERSION_SITE_LISPDIR%%/psgml/psgml-ids.el
%%EMACS_VERSION_SITE_LISPDIR%%/psgml/psgml-ids.elc
%%EMACS_VERSION_SITE_LISPDIR%%/psgml/psgml-info.el
%%EMACS_VERSION_SITE_LISPDIR%%/psgml/psgml-info.elc
%%NON_XEMACS%%%%EMACS_VERSION_SITE_LISPDIR%%/psgml/psgml-other.el
%%NON_XEMACS%%%%EMACS_VERSION_SITE_LISPDIR%%/psgml/psgml-other.elc
%%XEMACS%%%%EMACS_VERSION_SITE_LISPDIR%%/psgml/psgml-lucid.el
%%XEMACS%%%%EMACS_VERSION_SITE_LISPDIR%%/psgml/psgml-lucid.elc
%%EMACS_VERSION_SITE_LISPDIR%%/psgml/psgml-parse.el
%%EMACS_VERSION_SITE_LISPDIR%%/psgml/psgml-parse.elc
%%EMACS_VERSION_SITE_LISPDIR%%/psgml/psgml-sysdep.el
%%EMACS_VERSION_SITE_LISPDIR%%/psgml/psgml-sysdep.elc
%%EMACS_VERSION_SITE_LISPDIR%%/psgml/psgml.el
%%EMACS_VERSION_SITE_LISPDIR%%/psgml/psgml.elc
%%EMACS_VERSION_SITE_LISPDIR%%/%%PSGML_STARTUPEL%%
@dirrm %%EMACS_VERSION_SITE_LISPDIR%%/psgml