X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/7b1019e2781472c793d0bf74e2b9ee17894270b8..95a2cb24b0697558e6629460d8bc693b394f0138:/lisp/nxml/rng-uri.el diff --git a/lisp/nxml/rng-uri.el b/lisp/nxml/rng-uri.el index c37ac32710..e95ad08d1b 100644 --- a/lisp/nxml/rng-uri.el +++ b/lisp/nxml/rng-uri.el @@ -1,9 +1,9 @@ ;;; rng-uri.el --- URI parsing and manipulation -;; Copyright (C) 2003, 2007, 2008 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2015 Free Software Foundation, Inc. ;; Author: James Clark -;; Keywords: XML +;; Keywords: wp, hypermedia, languages, XML ;; This file is part of GNU Emacs. @@ -26,7 +26,7 @@ (defun rng-file-name-uri (f) "Return a URI for the filename F. -Multibyte characters are left as is. Use `rng-uri-escape-multibyte' to +Multibyte characters are left as is. Use `rng-uri-escape-multibyte' to escape them using %HH." (setq f (expand-file-name f)) (let ((url @@ -85,7 +85,7 @@ Signal an error if URI is not a valid file URL." ((not (string= (downcase scheme) "file")) (rng-uri-error "URI `%s' does not use the `file:' scheme" uri))) (when (not (member authority - (cons system-name '(nil "" "localhost")))) + (cons (system-name) '(nil "" "localhost")))) (rng-uri-error "URI `%s' does not start with `file:///' or `file://localhost/'" uri)) (when query @@ -102,7 +102,7 @@ Signal an error if URI is not a valid file URL." (setq path (substring path 1))) (when (and pattern (string-match "\\`\\./" path)) (setq path (substring path 2))) - (setq path + (setq path (cond ((eq pattern 'match) (rng-uri-unescape-unibyte-match path)) ((eq pattern 'replace) @@ -127,8 +127,7 @@ Signal an error if URI is not a valid file URL." (defun rng-uri-error (&rest args) (signal 'rng-uri-error (list (apply 'format args)))) -(put 'rng-uri-error 'error-conditions '(error rng-uri-error)) -(put 'rng-uri-error 'error-message "Invalid URI") +(define-error 'rng-uri-error "Invalid URI") (defun rng-uri-split (str) (and (string-match "\\`\\(?:\\([^:/?#]+\\):\\)?\ @@ -162,7 +161,7 @@ Signal an error if URI is not a valid file URL." (cons scheme (cons ":" parts)))) (apply 'concat parts)))) - + (defun rng-uri-resolve (uri-ref base-uri) "Resolve a possibly relative URI reference into absolute form. URI-REF is the URI reference to be resolved. @@ -308,7 +307,7 @@ Both FULL and BASE must be absolute URIs." (mapcar (lambda (h) (string-to-number h 16)) (split-string str "%"))) 'utf-8)) - + (defun rng-uri-unescape-unibyte (str) (replace-regexp-in-string "%[0-7][0-9a-fA-F]" (lambda (h) @@ -352,5 +351,4 @@ Both FULL and BASE must be absolute URIs." (provide 'rng-uri) -;; arch-tag: c7b7b8b8-61d1-48ec-82bc-7001c70b2e9d ;;; rng-uri.el ends here