summaryrefslogtreecommitdiffstats
path: root/emacs.d/nxhtml/util/idn.el
diff options
context:
space:
mode:
Diffstat (limited to 'emacs.d/nxhtml/util/idn.el')
-rw-r--r--emacs.d/nxhtml/util/idn.el151
1 files changed, 0 insertions, 151 deletions
diff --git a/emacs.d/nxhtml/util/idn.el b/emacs.d/nxhtml/util/idn.el
deleted file mode 100644
index 21f7a4c..0000000
--- a/emacs.d/nxhtml/util/idn.el
+++ /dev/null
@@ -1,151 +0,0 @@
-;;; idn.el --- Recommended Identifier Profiles for IDN
-;;
-;; Author: Lennart Borgman (lennart O borgman A gmail O com)
-;; Created: 2010-03-24 Wed
-;; Version: 0.1
-;; Last-Updated: 2010-03-26 Fri
-;; URL:
-;; Keywords:
-;; Compatibility:
-;;
-;; Features that might be required by this library:
-;;
- ;; `nxhtml-base'.
-;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;
-;;; Commentary:
-;;
-;; Functions for handling IDN chars defined by
-;; `http://www.unicode.org/reports/tr39/'.
-;;
-;; See `idn-is-recommended'.
-;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;
-;;; Change log:
-;;
-;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;
-;; This program 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 3, or
-;; (at your option) any later version.
-;;
-;; This program 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 this program; see the file COPYING. If not, write to
-;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth
-;; Floor, Boston, MA 02110-1301, USA.
-;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;
-;;; Code:
-
-;; Fix-me: You have to change this if you are not using nXhtml:
-(require 'nxhtml-base)
-(defvar uts39-datadir (expand-file-name "etc/uts39/" nxhtml-install-dir))
-
-(defun idn-init (bv)
- (save-match-data
- (let* ((idnchars-file (expand-file-name "idnchars.txt" uts39-datadir))
- (idnchars-old (find-buffer-visiting idnchars-file))
- (idnchars-buf (or idnchars-old
- (if (not (file-exists-p idnchars-file))
- (message "Can't find file %S" idnchars-file)
- (find-file-noselect idnchars-file))))
- here
- (range-patt (rx bol
- (group (repeat 4 (any xdigit)))
- (optional ".."
- (group (repeat 4 (any xdigit))))))
- (num-idn 0))
- (when idnchars-buf
- (with-current-buffer idnchars-buf
- (setq here (point))
- (save-restriction
- (widen)
- (goto-char (point-min))
- (while (re-search-forward range-patt nil t)
- (let* ((str-beg (match-string 0))
- (str-end (match-string 2))
- (beg (string-to-number str-beg 16))
- (end (or (when str-end (string-to-number str-end 16))
- beg)))
- ;;(message "str-beg=%S str-end=%S" str-beg str-end)
- (dotimes (ii (1+ (- end beg)))
- (let ((num (+ ii beg)))
- ;;(message "setting idn-char %s #%4x" num num)
- (setq num-idn (1+ num-idn))
- (aset bv num t))))))
- (goto-char here))
- (unless idnchars-old (kill-buffer idnchars-buf))
- (message "Found %d IDN chars" num-idn)
- t))))
-
-(defconst idn-char-vector
- (let ((bv (make-bool-vector (* 256 256) nil)))
- (when (idn-init bv)
- ;; (string-to-number "002D" 16)
- ;; Make a quick sanity check:
- (unless (and (not (aref bv 44))
- (aref bv 45))
- (message "idn-char-vector: Bad idn data in file idnchars.txt"))
- bv))
- "Boolean vector with recommended IDN chars.")
-
-
-;;(idn-is-recommended 0)
-;;(idn-is-recommended 65535)
-(defsubst idn-is-recommended (char)
- "Return t if character CHAR is a recommended IDN char.
-See URL `http://www.unicode.org/reports/tr39/'.
-
-Data is initialized from the file idnchars.txt in the directory
-`uts39-datadir'. This file is fetched from the above URL."
- (aref idn-char-vector char))
-
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;; Below are some help functions that can be commented out.
-
-;;(global-set-key [f9] 'idn-char-at-point)
-(defun idn-char-at-point (pos)
- "Tell if char at POS is an recommended IDN char.
-Default POS is current point."
- (interactive "d")
- (let* ((this-char (char-after pos))
- (recommended (idn-is-recommended this-char)))
- (message "IDN char at point: %s (#%000x)" recommended this-char)))
-
-(defun idn-list-chars ()
- "Show all IDN chars.
-For more info see `idn-is-recommended'.
-
-Note: This may crash Emacs currently, at least on w32."
- (interactive)
- (with-output-to-temp-buffer (help-buffer)
- (help-setup-xref (list #'idn-list-chars) (interactive-p))
- (with-current-buffer (help-buffer)
- (insert
- "Recommended Identifier Characters for IDN:\n\n")
- (let ((col 0)
- (cnt 0))
- (dotimes (nn (length idn-char-vector))
- (when (aref idn-char-vector nn)
- (setq cnt (1+ cnt))
- (setq col (mod (1+ col) 20))
- (when (= col 0) (insert "\n "))
- (insert " " (char-to-string nn))))
- (insert "\n\n"
- (format "There were %d IDN chars defined in `idn-char-vector'." cnt))
- ))))
-
-(provide 'idn)
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;; idn.el ends here