X-Git-Url: http://cgit.sxemacs.org/?a=blobdiff_plain;f=lisp%2Fhex-util.el;h=932a7fe3543284a9bfb436f563d49337f37aa743;hb=a4cc1a7862f0e7e0eba0acadfe8ffad990e4fe41;hp=1cc67c2861c73fe51c51e34c76ec23eaa131f625;hpb=786d05e27f23ae1e1254d90a50f61487e168c616;p=gnus diff --git a/lisp/hex-util.el b/lisp/hex-util.el index 1cc67c286..932a7fe35 100644 --- a/lisp/hex-util.el +++ b/lisp/hex-util.el @@ -1,27 +1,25 @@ ;;; hex-util.el --- Functions to encode/decode hexadecimal string. ;; Copyright (C) 1999, 2001, 2002, 2003, 2004, -;; 2005 Free Software Foundation, Inc. +;; 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. ;; Author: Shuhei KOBAYASHI ;; Keywords: data -;; This file is part of FLIM (Faithful Library about Internet Message). +;; This file is part of GNU Emacs. -;; 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 2, or +;; GNU Emacs 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 of the License, or ;; (at your option) any later version. -;; This program is distributed in the hope that it will be useful, +;; GNU Emacs 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. +;; along with GNU Emacs. If not, see . ;;; Commentary: @@ -29,14 +27,14 @@ (eval-when-compile (defmacro hex-char-to-num (chr) - (` (let ((chr (, chr))) - (cond - ((and (<= ?a chr)(<= chr ?f)) (+ (- chr ?a) 10)) - ((and (<= ?A chr)(<= chr ?F)) (+ (- chr ?A) 10)) - ((and (<= ?0 chr)(<= chr ?9)) (- chr ?0)) - (t (error "Invalid hexadecimal digit `%c'" chr)))))) + `(let ((chr ,chr)) + (cond + ((and (<= ?a chr)(<= chr ?f)) (+ (- chr ?a) 10)) + ((and (<= ?A chr)(<= chr ?F)) (+ (- chr ?A) 10)) + ((and (<= ?0 chr)(<= chr ?9)) (- chr ?0)) + (t (error "Invalid hexadecimal digit `%c'" chr))))) (defmacro num-to-hex-char (num) - (` (aref "0123456789abcdef" (, num))))) + `(aref "0123456789abcdef" ,num))) (defun decode-hex-string (string) "Decode hexadecimal STRING to octet string." @@ -44,9 +42,9 @@ (dst (make-string (/ len 2) 0)) (idx 0)(pos 0)) (while (< pos len) -;;; logior and lsh are not byte-coded. -;;; (aset dst idx (logior (lsh (hex-char-to-num (aref string pos)) 4) -;;; (hex-char-to-num (aref string (1+ pos))))) + ;; logior and lsh are not byte-coded. + ;; (aset dst idx (logior (lsh (hex-char-to-num (aref string pos)) 4) + ;; (hex-char-to-num (aref string (1+ pos))))) (aset dst idx (+ (* (hex-char-to-num (aref string pos)) 16) (hex-char-to-num (aref string (1+ pos))))) (setq idx (1+ idx) @@ -59,11 +57,11 @@ (dst (make-string (* len 2) 0)) (idx 0)(pos 0)) (while (< pos len) -;;; logand and lsh are not byte-coded. -;;; (aset dst idx (num-to-hex-char (logand (lsh (aref string pos) -4) 15))) + ;; logand and lsh are not byte-coded. + ;; (aset dst idx (num-to-hex-char (logand (lsh (aref string pos) -4) 15))) (aset dst idx (num-to-hex-char (/ (aref string pos) 16))) (setq idx (1+ idx)) -;;; (aset dst idx (num-to-hex-char (logand (aref string pos) 15))) + ;; (aset dst idx (num-to-hex-char (logand (aref string pos) 15))) (aset dst idx (num-to-hex-char (% (aref string pos) 16))) (setq idx (1+ idx) pos (1+ pos))) @@ -71,5 +69,4 @@ (provide 'hex-util) -;;; arch-tag: fe8aaa79-6c86-400e-813f-5a8cc4cb3859 ;;; hex-util.el ends here