GNU bug report logs - #6239
Running htmlfontify in batch mode

Previous Next

Package: emacs;

Reported by: Masatake YAMATO <yamato <at> redhat.com>

Date: Fri, 21 May 2010 14:33:03 UTC

Severity: normal

Tags: patch

Done: Chong Yidong <cyd <at> stupidchicken.com>

Bug is archived. No further changes may be made.

Full log


Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Masatake YAMATO <yamato <at> redhat.com>
To: bug-gnu-emacs <at> gnu.org
Subject: Running htmlfontify in batch mode
Date: Fri, 21 May 2010 23:30:28 +0900 (JST)
This is a bug report with a patch which fixes the bug. 
Please, include the patch to the official emacs tree if appreciated.


I'm trying to convert a source code to a html file with
htmlfontify.el. I'd like to do it in a batch job.

With the following script(CONVERTER) and command line I expect
I can convert a source code file into html format:

---------------------------------------------------------------
#!/home/yamato/var/emacs/src/emacs --script
; CONVERTER
(defun print-to-stderr (str)
  (mapcar 'external-debugging-output str))

(let ((input (car argv))
      (output (cadr argv)))
  (unless input
    (print-to-stderr "*** No INPUT is given\n")
    (kill-emacs 1)
    )
  (unless output
    (print-to-stderr "*** No OUTPUT is given\n")
    (kill-emacs 1)
    )
  (unless (file-readable-p input)
    (print-to-stderr (format "*** Cannot read %s\n" 
			     input))
    (kill-exit 1)
    )
  (unless (file-writable-p output)
    (print-to-stderr (format "*** Cannot write %s\n" 
			     output))
    (kill-emacs 1)
    )
  (let ((srcdir (or (file-name-directory input) "./"))
	(dstdir output)
	(file (file-name-nondirectory input)))
    (require 'htmlfontify)

    (htmlfontify-load-rgb-file)
    (let ((hfy-display-class '((type . x-toolkit)
			       (class . color)
			       (background . light))))
      (hfy-copy-and-fontify-file srcdir dstdir file))))
---------------------------------------------------------------

$ ./CONVERTER  emacs/src/epaths.h /tmp/

But, the command line is failed because htmlfontify.el tries to
modify data in pure storage.

With following patch it works as I expected.

2010-05-21  Masatake YAMATO  <yamato <at> redhat.com>

	* htmlfontify.el (hfy-face-attr-for-class): Use `append'
	instead of  `nconc'.

=== modified file 'lisp/htmlfontify.el'
*** lisp/htmlfontify.el	2010-04-24 02:36:43 +0000
--- lisp/htmlfontify.el	2010-05-21 14:18:31 +0000
***************
*** 926,932 ****
                 new-spec)))))
      (if (or (memq :inherit face-spec) (eq 'default face))
          face-spec
!       (nconc face-spec (list :inherit 'default))) ))
  
  ;; construct an assoc of (css-tag-name . css-tag-value) pairs
  ;; from a face or assoc of face attributes:
--- 926,936 ----
                 new-spec)))))
      (if (or (memq :inherit face-spec) (eq 'default face))
          face-spec
!       ;; We cannot use `nconc' here.
!       ;; As far as I inspected, (get face 'face-defface-spec) in
!       ;; `hfy-combined-face-spec' returns data at pure storage
!       ;; if noninteractive.
!       (append face-spec (list :inherit 'default))) ))
  
  ;; construct an assoc of (css-tag-name . css-tag-value) pairs
  ;; from a face or assoc of face attributes:





This bug report was last modified 14 years and 333 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.