Function: pdf-info-query--transform-response
pdf-info-query--transform-response is a natively compiled function
defined in pdf-info.el.
Signature
(pdf-info-query--transform-response CMD RESPONSE)
Documentation
Transform a RESPONSE to CMD into a Lisp form.
Source Code
;; Defined in /nix/store/63h5z2vmzn0mfavcxi2idi23g5xcgkbl-emacs-packages-deps/share/emacs/site-lisp/elpa/pdf-tools-20260102.1101/pdf-info.el
(defun pdf-info-query--transform-response (cmd response)
"Transform a RESPONSE to CMD into a Lisp form."
(cl-case cmd
(open nil)
(close (equal "1" (caar response)))
(number-of-pages (string-to-number (caar response)))
(charlayout
(mapcar (lambda (elt)
(cl-assert (= 1 (length (cadr elt))) t)
`(,(aref (cadr elt) 0)
,(mapcar #'string-to-number
(split-string (car elt) " " t))))
response))
(regexp-flags
(mapcar (lambda (elt)
(cons (intern (car elt))
(string-to-number (cadr elt))))
response))
((search-string search-regexp)
(mapcar
(lambda (r)
`((page . ,(string-to-number (nth 0 r)))
(text . ,(let (case-fold-search)
(pdf-util-highlight-regexp-in-string
(regexp-quote (nth 1 r)) (nth 2 r))))
(edges . ,(mapcar (lambda (m)
(mapcar #'string-to-number
(split-string m " " t)))
(cddr (cdr r))))))
response))
(outline
(mapcar (lambda (r)
`((depth . ,(string-to-number (pop r)))
,@(pdf-info-query--transform-action r)))
response))
(pagelinks
(mapcar (lambda (r)
`((edges .
,(mapcar #'string-to-number ;area
(split-string (pop r) " " t)))
,@(pdf-info-query--transform-action r)))
response))
(metadata
(let ((md (car response)))
(if (= 1 (length md))
(list (cons 'title (car md)))
(list
(cons 'title (pop md))
(cons 'author (pop md))
(cons 'subject (pop md))
(cons 'keywords-raw (car md))
(cons 'keywords (split-string (pop md) "[\t\n ]*,[\t\n ]*" t))
(cons 'creator (pop md))
(cons 'producer (pop md))
(cons 'format (pop md))
(cons 'created (pop md))
(cons 'modified (pop md))))))
(gettext
(or (caar response) ""))
(getselection
(mapcar (lambda (line)
(mapcar #'string-to-number
(split-string (car line) " " t)))
response))
(features (mapcar #'intern (car response)))
(pagesize
(setq response (car response))
(cons (round (string-to-number (car response)))
(round (string-to-number (cadr response)))))
((getannot editannot addannot)
(pdf-info-query--transform-annotation (car response)))
(getannots
(mapcar #'pdf-info-query--transform-annotation response))
(getattachments
(mapcar #'pdf-info-query--transform-attachment response))
((getattachment-from-annot)
(pdf-info-query--transform-attachment (car response)))
(boundingbox
(mapcar #'string-to-number (car response)))
(synctex-forward-search
(let ((list (mapcar #'string-to-number (car response))))
`((page . ,(car list))
(edges . ,(cdr list)))))
(synctex-backward-search
`((filename . ,(caar response))
(line . ,(string-to-number (cadr (car response))))
(column . ,(string-to-number (cadr (cdar response))))))
(delannot nil)
((save) (caar response))
((renderpage renderpage-text-regions renderpage-highlight)
(pdf-util-munch-file (caar response)))
((setoptions getoptions)
(let (options)
(dolist (key-value response)
(let ((key (intern (car key-value)))
(value (cadr key-value)))
(cl-case key
((:render/printed)
(setq value (equal value "1")))
((:render/gammabeforeinvert)
(setq value (equal value "1")))
((:render/usecolors)
(setq value (ignore-errors
(let ((int-val (cl-parse-integer value)))
(if (> 3 int-val 0)
int-val
0))))))
(push value options)
(push key options)))
options))
(pagelabels (mapcar #'car response))
(ping (caar response))
(t response)))