[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

VM/MIME/w3-region: set-face-attribute patch. Bug in font-set-face-font?

From: Pascal Bourguignon
Subject: VM/MIME/w3-region: set-face-attribute patch. Bug in font-set-face-font?
Date: Mon, 28 Oct 2002 20:52:03 +0100 (CET)


I'm using  vm 7.07 with  w3-4.0pre.47 on emacs  21.2.1, and I  have to
patch  set-face-attribute  as  follow  to  be  able  to  display  HTML

Namely, I remove the nil attributes passed into args, and the zero height.

(defadvice set-face-attribute
  (before pjb-set-face-attribute (face frame &rest args))
  (ad-set-args 2
               (loop for couples = args then (cddr couples)
                     while couples
                     for key     = (car  couples)
                     for value   = (cadr couples)
                     when (if (eq key :height) 
                              (if (numberp value) (/= value 0) value)
                     append (list key value) into result
                     finally return result))
  ) ;;pjb-set-face-attribute
(ad-activate 'set-face-attribute)

It seems  to me that  there's a lack  of specification of  these emacs
functions,  set-face-attribute,  internal-set-lisp-face-attribute, the
doc does not  say if nil or 0  is valid or not and  what happens; well
what  happens  is   that  nil  or  0  generate   an  error,  but  it's
font-set-face-font     which     calls     set-face-attribute,     and
font-set-face-font is not  docummented, so, how should w3-display-node
know what to  pass it?  Well, actually, w3-display-node  does not pass
any (undocumented) &rest argument, so we  could say that the bug is in

vm reports transitorily:
   "Inline HTML display failed (wrong-type-argument stringp nil)"

When copying  the HTML to a  new buffer, setting  debug-on-error t and
mark-whole-buffer and w3-region, (ouf! why  vm does not let us get the
backtrace directly?) we get the following backtrace:

Debugger entered--Lisp error: (wrong-type-argument stringp nil)
  internal-set-lisp-face-attribute(w3-style-face-00004 :family nil 0)
  set-face-attribute(w3-style-face-00004 nil :underline nil :weight normal 
:family nil)
  font-set-face-font(w3-style-face-00004 [:family (#("\x8b1\x8bc\x8b8\x8b2" 0 4 
...)) :weight nil :style 0 :size 9 :registry nil :encoding nil])
  w3-display-node((*document nil ((html nil ...))))
  w3-draw-tree(((*document nil (...))))
  byte-code("ŠÆÇ!qˆÈ ˆcˆÉp!)\n}ˆed|ˆÊ   
 Ö=„v× ˆØÙ!ˆ~‡" [source parse st nd widget glyph get-buffer-create " 
*w3-region*" erase-buffer w3-parse-buffer w3-draw-tree nil widget-get :src 
assoc (widget-value-set widget glyph) ((error)) 6 push-mark t 
w3-find-specific-link device-type tty w3-fixup-eol-faces message "Drawing... 
done" url w3-image-widgets-waiting w3-graphics-list url-current-object 
w3-running-xemacs] 3)
  w3-region(1 6917)
* call-interactively(w3-region)

Emacs  : GNU Emacs 21.2.1 (i686-pc-linux-gnu, X toolkit)
 of 2002-10-26 on thalassa
Package: WWW v4.0pre.46 of 1999/10/01 20:22:11

current state:
 window-system 'x
 window-system-version 11
 system-type 'gnu/linux
 url-gateway-method 'native
 url-version "p4.0pre.46"

Emacs  : GNU Emacs 21.2.1 (i686-pc-linux-gnu, X toolkit)
 of 2002-10-26 on thalassa
Package: VM 7.07

current state:
 vm-arrived-message-hook nil
 vm-arrived-messages-hook nil
 vm-auto-center-summary 0
 vm-auto-decode-mime-messages t
 vm-auto-displayed-mime-content-type-exceptions nil
 vm-auto-displayed-mime-content-types '("text" "image" "multipart")
 vm-auto-folder-case-fold-search t
 vm-auto-get-new-mail t
 vm-auto-next-message t
 vm-berkeley-mail-compatibility nil
 vm-check-folder-types t
 vm-circular-folders nil
 vm-confirm-new-folders nil
 vm-confirm-quit 0
 vm-convert-folder-types t
 vm-crash-box "~/INBOX.CRASH"
 vm-crash-box-suffix nil
 vm-default-From_-folder-type 'From_
 vm-default-folder-permission-bits 384
 vm-default-folder-type 'From_
 vm-delete-after-archiving nil
 vm-delete-after-bursting nil
 vm-delete-after-saving nil
 vm-delete-empty-folders t
 vm-digest-burst-type "guess"
 vm-digest-identifier-header-format "X-Digest: %s\n"
 vm-digest-center-preamble t
 vm-digest-preamble-format "\"%s\" (%F)"
 vm-digest-send-type "mime"
 vm-display-buffer-hook nil
 vm-display-using-mime t
 vm-edit-message-hook nil
 vm-edit-message-mode 'text-mode
 vm-fill-paragraphs-containing-long-lines nil
 vm-flush-interval 90
 vm-folder-directory "~/mail"
 vm-folder-read-only nil
 vm-folders-summary-database "~/.vm.folders.db"
 vm-folders-summary-directories '("~/mail")
 vm-folders-summary-format "  %12f %4t total, %n new, %u unread, %s spooled\n"
 vm-follow-summary-cursor t
 vm-forward-message-hook nil
 vm-forwarded-headers nil
 vm-forwarding-digest-type "mime"
 vm-forwarding-subject-format "forwarded message from %F"
 vm-frame-parameter-alist nil
 vm-frame-per-completion t
 vm-frame-per-composition t
 vm-frame-per-edit t
 vm-frame-per-folder t
 vm-frame-per-folders-summary nil
 vm-frame-per-help nil
 vm-frame-per-summary nil
 vm-highlight-url-face 'bold-italic
 vm-highlighted-header-regexp nil
 vm-honor-mime-content-disposition nil
 vm-honor-page-delimiters nil
 vm-icontopbm-program "/usr/bin/icontopbm"
 vm-image-directory "/usr/local/share/emacs/21.2/etc/vm/"
 vm-imagemagick-convert-program "/usr/bin/convert"
 vm-imagemagick-identify-program "/usr/bin/identify"
 vm-imap-bytes-per-session nil
 vm-imap-expunge-after-retrieving t
 vm-imap-max-message-size nil
 vm-imap-messages-per-session nil
 vm-imap-session-preauth-hook nil
 vm-in-reply-to-format "%i"
 vm-included-text-attribution-format "%F writes:\n"
 vm-included-text-discard-header-regexp nil
 vm-included-text-headers nil
 vm-included-text-prefix " > "
 vm-index-file-suffix nil
 vm-init-file "~/.vm"
 vm-infer-mime-types t
 vm-invisible-header-regexp nil
 vm-jump-to-new-messages t
 vm-jump-to-unread-messages t
 vm-keep-crash-boxes nil
 vm-keep-sent-messages 1
 vm-lynx-program "lynx"
 vm-mail-header-from nil
 vm-mail-header-insert-date t
 vm-mail-header-insert-message-id t
 vm-mail-hook nil
 vm-mail-check-interval 300
 vm-mail-mode-hook '((lambda nil (local-set-key "c" (quote vm-save-message))))
 vm-mail-send-hook nil
 vm-make-crash-box-name nil
 vm-make-spool-file-name nil
 vm-mime-7bit-composition-charset "us-ascii"
 vm-mime-8bit-composition-charset "iso-8859-1"
 vm-mime-8bit-text-transfer-encoding 'quoted-printable
 vm-mime-alternative-select-method 'best-internal
 vm-mime-attachment-auto-type-alist '(("\\.jpe?g$" . "image/jpeg")
                                      ("\\.gif$" . "image/gif")
                                      ("\\.png$" . "image/png")
                                      ("\\.tiff?$" . "image/tiff")
                                      ("\\.html?$" . "text/html")
                                      ("\\.au$" . "audio/basic")
                                      ("\\.mpe?g$" . "video/mpeg")
                                      ("\\.mov$" . "video/quicktime")
                                      ("\\.e?ps$" . "application/postscript")
                                      ("\\.pdf$" . "application/pdf")
                                      ("\\.xls$" . "application/vnd.ms-excel")
                                      ("\\.doc$" . "application/msword")
                                      ("\\.ppt$" .
 vm-mime-attachment-save-directory nil
 vm-mime-avoid-folding-content-type t
 vm-mime-base64-decoder-program nil
 vm-mime-base64-decoder-switches nil
 vm-mime-base64-encoder-program nil
 vm-mime-base64-encoder-switches nil
 vm-mime-button-face 'gui-button-face
 vm-mime-button-format-alist '(("text" . "%-35.35(%d, %c%) [%k to %a]")
                               ("multipart/alternative" .
                                "%-35.35(%d%) [%k to %a]")
                               ("multipart/digest" .
                                "%-35.35(%d, %n message%s%) [%k to %a]")
                               ("multipart" .
                                "%-35.35(%d, %n part%s%) [%k to %a]")
                               ("message/partial" .
                                "%-35.35(%d, part %N (of %T)%) [%k to %a]")
                               ("message/external-body" .
                                "%-35.35(%d%) [%k to %a (%x)]")
                               ("message" . "%-35.35(%d%) [%k to %a]")
                               ("audio" . "%-35.35(%d%) [%k to %a]")
                               ("video" . "%-35.35(%d%) [%k to %a]")
                               ("image" . "%-35.35(%d%) [%k to %a]")
                               ("application/octet-stream" .
                                "%-35.35(%d, %f%) [%k to %a]")
 vm-mime-charset-converter-alist nil
 vm-mime-charset-font-alist nil
 vm-mime-confirm-delete t
 vm-mime-decode-for-preview t
 vm-mime-default-face-charset-exceptions nil
 vm-mime-default-face-charsets '("us-ascii")
 vm-mime-delete-after-saving nil
 vm-mime-delete-viewer-processes t
 vm-mime-digest-discard-header-regexp nil
 vm-mime-digest-headers '("Resent-" "From:" "Sender:" "To:" "Cc:" "Subject:"
                          "Date:" "Message-ID:" "Keywords:" "MIME-Version:"
 vm-mime-display-function nil
 vm-mime-external-content-types-alist nil
 vm-mime-ignore-mime-version t
 vm-mime-ignore-composite-type-opaque-transfer-encoding t
 vm-mime-internal-content-type-exceptions nil
 vm-mime-internal-content-types t
 vm-mime-max-message-size nil
 vm-mime-qp-decoder-program nil
 vm-mime-qp-decoder-switches nil
 vm-mime-qp-encoder-program nil
 vm-mime-qp-encoder-switches nil
 vm-mime-require-mime-version-header t
 vm-mime-type-converter-alist nil
 vm-mime-use-image-strips t
 vm-mime-uuencode-decoder-program "uudecode"
 vm-mime-uuencode-decoder-switches nil
 vm-mode-hook nil
 vm-mode-hooks nil
 vm-mosaic-program "Mosaic"
 vm-mosaic-program-switches nil
 vm-move-after-deleting nil
 vm-move-after-undeleting nil
 vm-move-after-killing nil
 vm-move-messages-physically nil
 vm-movemail-program "movemail"
 vm-mutable-frames t
 vm-mutable-windows t
 vm-netscape-program "netscape"
 vm-netscape-program-switches nil
 vm-page-continuation-glyph "...press SPACE to see more..."
 vm-paragraph-fill-column 70
 vm-pop-bytes-per-session nil
 vm-pop-expunge-after-retrieving t
 vm-pop-max-message-size nil
 vm-pop-messages-per-session nil
 vm-pop-md5-program "md5"
 vm-popup-menu-on-mouse-3 t
 vm-preferences-file "~/.vm.preferences"
 vm-preview-lines nil
 vm-preview-read-messages nil
 vm-primary-inbox "~/INBOX"
 vm-quit-hook nil
 vm-reply-hook nil
 vm-reply-ignored-reply-tos nil
 vm-reply-subject-prefix nil
 vm-resend-bounced-discard-header-regexp nil
 vm-resend-bounced-headers '("MIME-Version:" "Content-" "From:" "Sender:"
                             "Reply-To:" "To:" "Cc:" "Subject:" "Newsgroups:"
                             "In-Reply-To:" "References:" "Keywords:" "X-")
 vm-resend-bounced-message-hook nil
 vm-resend-discard-header-regexp "\\(\\(X400-\\)?Received:\\|Resent-\\)"
 vm-resend-headers nil
 vm-resend-message-hook nil
 vm-retrieved-spooled-mail-hook nil
 vm-rfc1153-digest-discard-header-regexp "\\(X400-\\)?Received:"
 vm-rfc1153-digest-headers '("Resent-" "Date:" "From:" "Sender:" "To:" "Cc:"
                             "Subject:" "Message-ID:" "Keywords:")
 vm-rfc934-digest-discard-header-regexp nil
 vm-rfc934-digest-headers '("Resent-" "From:" "Sender:" "To:" "Cc:" "Subject:"
                            "Date:" "Message-ID:" "Keywords:")
 vm-search-using-regexps nil
 vm-select-message-hook nil
 vm-select-new-message-hook nil
 vm-select-unread-message-hook nil
 vm-send-digest-hook nil
 vm-send-using-mime t
 vm-skip-deleted-messages t
 vm-skip-read-messages nil
 vm-spool-file-suffixes nil
 vm-spooled-mail-waiting-hook nil
 vm-ssh-program "ssh"
 vm-ssh-program-switches nil
 vm-ssh-remote-command "echo ready; sleep 15"
 vm-startup-with-summary t
 vm-strip-reply-headers nil
 vm-stunnel-program "stunnel"
 vm-stunnel-program-switches nil
 vm-stunnel-random-data-method 'generate
 vm-subject-significant-chars nil
 vm-summary-format "%n %*%a %-17.17F %-3.3m %2d %4l/%-5c %I\"%s\"\n"
 vm-summary-highlight-face 'bold
 vm-summary-mode-hook nil
 vm-summary-mode-hooks nil
 vm-summary-redo-hook nil
 vm-summary-show-threads nil
 vm-summary-thread-indent-level 2
 vm-summary-uninteresting-senders nil
 vm-summary-uninteresting-senders-arrow "To: "
 vm-tale-is-an-idiot nil
 vm-temp-file-directory "/tmp"
 vm-thread-using-subject t
 vm-toolbar-pixmap-directory "/usr/local/share/emacs/21.2/etc/vm/"
 vm-trust-From_-with-Content-Length nil
 vm-uncompface-program "/usr/bin/uncompface"
 vm-undisplay-buffer-hook nil
 vm-unforwarded-header-regexp "only-drop-this-header"
 vm-url-browser 'w3-fetch-other-frame
 vm-url-retrieval-methods '(lynx wget w3m url-w3)
 vm-url-search-limit 12000
 vm-use-menus '(folder motion send mark label sort virtual undo dispose emacs
                nil help)
 vm-use-toolbar '(next previous delete/undelete autofile file reply compose
                  print visit quit nil help)
 vm-virtual-folder-alist nil
 vm-virtual-mirror t
 vm-visible-headers '("Resent-" "From:" "Sender:" "To:" "Apparently-To:" "Cc:"
                      "Subject:" "Date:")
 vm-visit-folder-hook nil
 vm-visit-when-saving 0
 vm-warp-mouse-to-new-frame nil
 vm-wget-program "wget"
 vm-window-configuration-file "~/.vm.windows"
 features '(mailalias vm-reply reporter apropos info rect vc-cvs vm-sort debug
            sb-html sb-texinfo sgml-mode view w3-style w3-hot url-file
            url-cache w3-e21 w3-e19 w3-emacs19 w3-script w3-jscript w3-elisp
            w3-forms url-http url-cookie timezone urlauth vm-undo vm-page
            vm-mime vm-save vm-toolbar vm-summary tapestry vm-motion
            vm-message vm-folder vm-misc vm-easymenu vm-menu vm-mouse
            vm-window vm-autoload vm-vars vm-startup vm-version vm jka-compr
            delsel time pjb-mail prolog cc-mode cc-align cc-cmds cc-engine
            cc-styles cc-langs cc-vars cc-menus imenu cc-defs derived
            pjb-objc-mode pjb-layers pjb-cvspass pjb-emacs pjb-class eieio-opt
            pjb-sources picture browse-url w3 w3-menu w3-emulate w3-parse url
            mm w3-display w3-mouse w3-imap w3-widget w3-vars w3-keyword w3-cus
            url-parse url-vars css font devices ange-ftp mule-sysdp w3-cfg
            w3-sysdp pgp pjb-selftrade pjb-bourse pjb-banks pjb-work
            pjb-invoices pjb-object pjb-euro pjb-roman pjb-expression calendar
            cal-menu comint ring forms-mode forms pjb-utilities gnus-mule
            gnus-art mm-uu binhex uudecode mm-view gnus-sum nnoo gnus-group
            gnus-undo nnmail mail-source format-spec gnus-start gnus-range
            gnus-spec gnus-int gnus-win gnus gnus-ems cus-edit cus-start
            cus-load rmailsort sort message mml mm-decode mm-bodies mm-encode
            mailcap mail-parse rfc2045 rfc2047 gnus-util qp rfc2231 ietf-drums
            time-date parse-time nnheader mm-util mule-util mail-prsvr
            mailheader sendmail pjb-strings pjb-cl pjb-lists pjb-advices
            server rmailsum rmail mail-utils w3-auto desktop eshell-auto
            jit-lock font-lock regexp-opt ede-proj ede-proj-comp autoconf-edit
            autoconf-mode ede-speedbar ede eieio-speedbar speedbar sb-image
            dframe easymenu assoc eieio-custom wid-edit ede-source eieio-base
            eieio advice advice-preload cl cl-19 tooltip image tool-bar
            disp-table fontset ediff-hook vc-hooks lisp-float-type lisp-mode
            page menu-bar timer select scroll-bar mldrag mouse facemenu faces
            cus-face frame misc-lang vietnamese tibetan thai lao korean
            japanese hebrew greek romanian slovak czech european ethiopic
            devanagari indian cyrillic chinese case-table help overlay md5
            base64 format mule env backquote custom widget x-toolkit)
__Pascal_Bourguignon__                   http://www.informatimago.com/
 The name is Baud,...... James Baud.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]