X-Git-Url: http://cgit.sxemacs.org/?a=blobdiff_plain;ds=sidebyside;f=lisp%2Fhex-util.el;h=4867359401b24951c95e7a8f8d03fe4a57e29660;hb=7067d9be35e2177e6b891ede1db93f9af6c7e234;hp=ddf154d17a205cbd8df2864b91c05faa60ea800f;hpb=bf8fa218cb69bc983160459265344c8b2d825b22;p=gnus diff --git a/lisp/hex-util.el b/lisp/hex-util.el index ddf154d17..486735940 100644 --- a/lisp/hex-util.el +++ b/lisp/hex-util.el @@ -1,26 +1,24 @@ ;;; hex-util.el --- Functions to encode/decode hexadecimal string. -;; Copyright (C) 1999, 2001 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2001-2016 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., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. +;; along with GNU Emacs. If not, see . ;;; Commentary: @@ -28,14 +26,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." @@ -43,13 +41,13 @@ (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) - pos (+ 2 pos))) + pos (+ 2 pos))) dst)) (defun encode-hex-string (string) @@ -58,14 +56,14 @@ (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))) + pos (1+ pos))) dst)) (provide 'hex-util)