Function: erc-pack-int

erc-pack-int is a byte-compiled function defined in erc-dcc.el.gz.

Signature

(erc-pack-int VALUE)

Documentation

Convert integer into a packed string in network byte order, which is big-endian.

Source Code

;; Defined in /usr/src/emacs/lisp/erc/erc-dcc.el.gz
(defun erc-pack-int (value)
  "Convert integer into a packed string in network byte order, which is big-endian."
  ;; make sure value is not negative
  (when (< value 0)
    (error "ERC-DCC (erc-pack-int): packet size is negative"))
  ;; make sure size is not larger than 4 bytes
  (let ((len (if (= value 0) 0
               (ceiling (/ (ceiling (/ (log value) (log 2))) 8.0)))))
    (when (> len 4)
      (error "ERC-DCC (erc-pack-int): packet too large")))
  ;; pack
  (let ((str (make-string 4 0))
        (i 3))
    (while (and (>= i 0) (> value 0))
      (aset str i (% value 256))
      (setq value (/ value 256))
      (setq i (1- i)))
    str))