Function: htmlize-get-color-rgb-hash

htmlize-get-color-rgb-hash is a byte-compiled function defined in htmlize.el.

Signature

(htmlize-get-color-rgb-hash &optional RGB-FILE)

Documentation

Return a hash table mapping X color names to RGB values.

The keys in the hash table are X11 color names, and the values are the
#rrggbb RGB specifications, extracted from rgb.txt.

If RGB-FILE is nil, the function will try hard to find a suitable file in the system directories.

If no rgb.txt file is found, return nil.

Source Code

;; Defined in ~/.emacs.d/elpa/htmlize-20250724.1703/htmlize.el
(defun htmlize-get-color-rgb-hash (&optional rgb-file)
  "Return a hash table mapping X color names to RGB values.
The keys in the hash table are X11 color names, and the values are the
#rrggbb RGB specifications, extracted from `rgb.txt'.

If RGB-FILE is nil, the function will try hard to find a suitable file
in the system directories.

If no rgb.txt file is found, return nil."
  (let ((rgb-file (or rgb-file (locate-file
                                "rgb.txt"
                                htmlize-x-library-search-path)))
        (hash nil))
    (when rgb-file
      (with-temp-buffer
        (insert-file-contents rgb-file)
        (setq hash (make-hash-table :test 'equal))
        (while (not (eobp))
          (cond ((looking-at "^\\s-*\\([!#]\\|$\\)")
                 ;; Skip comments and empty lines.
                 )
                ((looking-at
                  "[ \t]*\\([0-9]+\\)[ \t]+\\([0-9]+\\)[ \t]+\\([0-9]+\\)[ \t]+\\(.*\\)")
                 (setf (gethash (downcase (match-string 4)) hash)
                       (format "#%02x%02x%02x"
                               (string-to-number (match-string 1))
                               (string-to-number (match-string 2))
                               (string-to-number (match-string 3)))))
                (t
                 (error
                  "Unrecognized line in %s: %s"
                  rgb-file
                  (buffer-substring (point) (progn (end-of-line) (point))))))
          (forward-line 1))))
    hash))