From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bernt Hansen Subject: Bug: Publishing with org-src-fontify-natively fails with Lisp error: (void-function -mode) [7.4 (release_7.4.79.g9c4b9)] Date: Tue, 21 Dec 2010 22:56:24 -0500 Message-ID: <87r5da1mvr.fsf@norang.ca> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Received: from [140.186.70.92] (port=46747 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PVFoU-0003GJ-9B for emacs-orgmode@gnu.org; Tue, 21 Dec 2010 22:56:32 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PVFoS-0001O1-1L for emacs-orgmode@gnu.org; Tue, 21 Dec 2010 22:56:30 -0500 Received: from mho-01-ewr.mailhop.org ([204.13.248.71]:16475) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PVFoR-0001Nw-UX for emacs-orgmode@gnu.org; Tue, 21 Dec 2010 22:56:27 -0500 Received: from cpe000102d0fe75-cm0012256ecbde.cpe.net.cable.rogers.com ([99.239.148.180] helo=mail.norang.ca) by mho-01-ewr.mailhop.org with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1PVFoQ-000AE7-Vz for emacs-orgmode@gnu.org; Wed, 22 Dec 2010 03:56:27 +0000 Received: from localhost.localdomain (gollum.intra.norang.ca [192.168.1.5]) by mail.norang.ca (8.14.3/8.14.3/Debian-5+lenny1) with ESMTP id oBM3uP32026013 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT) for ; Tue, 21 Dec 2010 22:56:26 -0500 Received: from localhost.localdomain (gollum [127.0.0.1]) by localhost.localdomain (8.14.3/8.14.3/Debian-9.4) with ESMTP id oBM3uPZD009956 for ; Tue, 21 Dec 2010 22:56:25 -0500 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org Hi, I have a patch for this problem which works for me but I'm not sure it's the correct fix. Will post the patch following this report. When I attempt to publish the source for http://doc.norang.ca/org-mode.html (a copy of which is at http://doc.norang.ca/org-mode.org) with org-src-fontify-natively set to t I get the error void-function -mode. I start a fresh emacs, load the org file and call M-x bh/save-then-publish. --8<---------------cut here---------------start------------->8--- (defun bh/save-then-publish (&optional force) (interactive "P") (save-buffer) (org-save-all-org-buffers) (org-publish-current-project force)) (setq org-publish-project-alist ; ; http://www.norang.ca/ (norang website) ; norang-org are the org-files that generate the content ; norang-extra are images and css files that need to be included ; norang is the top-level project that gets published (quote (("norang-org" :base-directory "~/git/www.norang.ca" :publishing-directory "/ssh:www-data@www:~/www.norang.ca/htdocs" :recursive t :table-of-contents nil :base-extension "org" :publishing-function org-publish-org-to-html :style-include-default nil :section-numbers nil :table-of-contents nil :style "" :author-info nil :creator-info nil) ("norang-extra" :base-directory "~/git/www.norang.ca/" :publishing-directory "/ssh:www-data@www:~/www.norang.ca/htdocs" :base-extension "css\\|pdf\\|png\\|jpg\\|gif" :publishing-function org-publish-attachment :recursive t :author nil) ("norang" :components ("norang-org" "norang-extra")) ; ; http://doc.norang.ca/ (norang website) ; doc-org are the org-files that generate the content ; doc-extra are images and css files that need to be included ; doc is the top-level project that gets published ("doc-org" :base-directory "~/git/doc.norang.ca/" :publishing-directory "/ssh:www-data@www:~/doc.norang.ca/htdocs" :recursive t :section-numbers nil :table-of-contents nil :base-extension "org" :publishing-function (org-publish-org-to-html org-publish-org-to-org) :style-include-default nil :style "" :author-info nil :creator-info nil) ("doc-extra" :base-directory "~/git/doc.norang.ca/" :publishing-directory "/ssh:www-data@www:~/doc.norang.ca/htdocs" :base-extension "css\\|pdf\\|png\\|jpg\\|gif" :publishing-function org-publish-attachment :recursive t :author nil) ("doc" :components ("doc-org" "doc-extra")) ; ; Miscellaneous pages for other websites ; org are the org-files that generate the content ("org-org" :base-directory "~/git/org/" :publishing-directory "/ssh:www-data@www:~/org" :recursive t :section-numbers nil :table-of-contents nil :base-extension "org" :publishing-function org-publish-org-to-html :style-include-default nil :style "" :author-info nil :creator-info nil) ; ; http://doc.norang.ca/ (norang website) ; org-mode-doc-org this document ; org-mode-doc-extra are images and css files that need to be included ; org-mode-doc is the top-level project that gets published ; This uses the same target directory as the 'doc' project ("org-mode-doc-org" :base-directory "~/git/org-mode-doc/" :publishing-directory "/ssh:www-data@www:~/doc.norang.ca/htdocs" :recursive t :section-numbers nil :table-of-contents nil :base-extension "org" :publishing-function (org-publish-org-to-html org-publish-org-to-org) :plain-source t :htmlized-source t :style-include-default nil :style "" :author-info nil :creator-info nil) ("org-mode-doc-extra" :base-directory "~/git/org-mode-doc/" :publishing-directory "/ssh:www-data@www:~/doc.norang.ca/htdocs" :base-extension "css\\|pdf\\|png\\|jpg\\|gif" :publishing-function org-publish-attachment :recursive t :author nil) ("org-mode-doc" :components ("org-mode-doc-org" "org-mode-doc-extra")) ; ; http://doc.norang.ca/ (norang website) ; org-mode-doc-org this document ; org-mode-doc-extra are images and css files that need to be included ; org-mode-doc is the top-level project that gets published ; This uses the same target directory as the 'doc' project ("tmp-org" :base-directory "/tmp/" :publishing-directory "/ssh:www-data@www:~/www.norang.ca/htdocs/tmp" :recursive t :section-numbers nil :table-of-contents nil :base-extension "org" :publishing-function (org-publish-org-to-html org-publish-org-to-org) :plain-source t :htmlized-source t :style-include-default t :author-info nil :creator-info nil) ("tmp-extra" :base-directory "/tmp/" :publishing-directory "/ssh:www-data@www:~/www.norang.ca/htdocs/tmp" :base-extension "png" :publishing-function org-publish-attachment :recursive t :author nil) ("tmp" :components ("tmp-org" "tmp-extra"))))) --8<---------------cut here---------------end--------------->8--- This results in the following error: Debugger entered--Lisp error: (void-function -mode) -mode() funcall(-mode) (if (eq major-mode lang-mode) nil (funcall lang-mode)) (unless (eq major-mode lang-mode) (funcall lang-mode)) (save-current-buffer (set-buffer (get-buffer-create ...)) (delete-region (point-min) (point-max)) (insert string) (unless (eq major-mode lang-mode) (funcall lang-mode)) (font-lock-fontify-buffer) (setq pos (point-min)) (while (setq next ...) (put-text-property ... ... ... ... org-buffer) (setq pos next))) (with-current-buffer (get-buffer-create (concat " org-src-fontification:" ...)) (delete-region (point-min) (point-max)) (insert string) (unless (eq major-mode lang-mode) (funcall lang-mode)) (font-lock-fontify-buffer) (setq pos (point-min)) (while (setq next ...) (put-text-property ... ... ... ... org-buffer) (setq pos next))) (let* ((lang-mode ...) (string ...) (modified ...) (org-buffer ...) pos next) (remove-text-properties start end (quote ...)) (with-current-buffer (get-buffer-create ...) (delete-region ... ...) (insert string) (unless ... ...) (font-lock-fontify-buffer) (setq pos ...) (while ... ... ...)) (add-text-properties start end (quote ...)) (set-buffer-modified-p modified)) org-src-font-lock-fontify-block("" 49905 50459) (cond ((and lang org-src-fontify-natively) (org-src-font-lock-fontify-block lang block-start block-end)) (quoting (add-text-properties beg1 ... ...)) ((not org-fontify-quote-and-verse-blocks)) ((string= block-type "quote") (add-text-properties beg1 end1 ...)) ((string= block-type "verse") (add-text-properties beg1 end1 ...))) (progn (setq end (match-end 0) end1 (1- ...)) (setq block-end (match-beginning 0)) (when quoting (remove-text-properties beg end ...)) (add-text-properties beg end (quote ...)) (add-text-properties beg beg1 (quote ...)) (add-text-properties end1 (+ end 1) (quote ...)) (cond (... ...) (quoting ...) (...) (... ...) (... ...)) t) (if (re-search-forward (concat "^[ ]*#\\+end" ... "\\>.*") nil t) (progn (setq end ... end1 ...) (setq block-end ...) (when quoting ...) (add-text-properties beg end ...) (add-text-properties beg beg1 ...) (add-text-properties end1 ... ...) (cond ... ... ... ... ...) t)) (when (re-search-forward (concat "^[ ]*#\\+end" ... "\\>.*") nil t) (setq end (match-end 0) end1 (1- ...)) (setq block-end (match-beginning 0)) (when quoting (remove-text-properties beg end ...)) (add-text-properties beg end (quote ...)) (add-text-properties beg beg1 (quote ...)) (add-text-properties end1 (+ end 1) (quote ...)) (cond (... ...) (quoting ...) (...) (... ...) (... ...)) t) (cond ((member dc1 ...) (org-remove-flyspell-overlays-in ... ...) (remove-text-properties ... ... ...) (add-text-properties ... ... ...) (add-text-properties ... ... ...) t) ((and ... ...) (setq block-type ... quoting ...) (when ... ... ... ... ... ... ... ... t)) ((member dc1 ...) (add-text-properties beg ... ...) (add-text-properties ... ... ...)) ((not ...) (add-text-properties beg ... ...) t) ((or ... ...) (add-text-properties beg ... ...) t) ((member dc3 ...) (add-text-properties beg ... ...)) (t nil)) (let ((beg ...) (block-start ...) (block-end nil) (lang ...) (beg1 ...) (dc1 ...) (dc3 ...) end end1 quoting block-type) (cond (... ... ... ... ... t) (... ... ...) (... ... ...) (... ... t) (... ... t) (... ...) (t nil))) (if (re-search-forward "^\\([ ]*#\\+\\(\\([a-zA-Z]+:?\\| \\|$\\)\\(_\\([a-zA-Z]+\\)\\)?\\)[ ]*\\(\\([^ \n]*\\)[ ]*\\(.*\\)\\)\\)" limit t) (let (... ... ... ... ... ... ... end end1 quoting block-type) (cond ... ... ... ... ... ... ...))) (let ((case-fold-search t)) (if (re-search-forward "^\\([ ]*#\\+\\(\\([a-zA-Z]+:?\\| \\|$\\)\\(_\\([a-zA-Z]+\\)\\)?\\)[ ]*\\(\\([^ \n]*\\)[ ]*\\(.*\\)\\)\\)" limit t) (let ... ...))) org-fontify-meta-lines-and-blocks(157030) font-lock-fontify-keywords-region(1 157030 nil) font-lock-default-fontify-region(1 157030 nil) ad-Orig-font-lock-fontify-region(1 157030 nil) (setq ad-return-value (ad-Orig-font-lock-fontify-region beg end loudly)) (let ((develock-inhibit-advice-font-lock-set-defaults t)) (setq ad-return-value (ad-Orig-font-lock-fontify-region beg end loudly))) (let (ad-return-value) (let (...) (setq ad-return-value ...)) ad-return-value) font-lock-fontify-region(1 157030) run-hook-with-args(font-lock-fontify-region 1 157030) byte-code("\302\303 #\207" [start next run-hook-with-args jit-lock-functions] 4) jit-lock-fontify-now(1 157030) (progn (if (> ... 65536) (message "Forcing fontification of %s..." ...)) (jit-lock-fontify-now (point-min) (point-max)) (if (> ... 65536) (message "Forcing fontification of %s...done" ...))) (htmlize-with-fontify-message (jit-lock-fontify-now (point-min) (point-max))) (cond ((and ... ...) (htmlize-with-fontify-message ...)) ((and ... ...) (htmlize-with-fontify-message ...)) ((and ... ...) (htmlize-with-fontify-message ...))) (progn (cond (... ...) (... ...) (... ...))) (if (and (boundp ...) font-lock-mode) (progn (cond ... ... ...))) (when (and (boundp ...) font-lock-mode) (cond (... ...) (... ...) (... ...))) htmlize-ensure-fontified() (save-excursion (save-excursion (run-hooks ...)) (htmlize-ensure-fontified) (clrhash htmlize-extended-character-cache) (clrhash htmlize-memoization-table) (let* (... ... ... ... ...) (with-current-buffer htmlbuf ... ... ... ... ... ... ... ... ... ... ... ...) (let ... ... ...) (with-current-buffer htmlbuf ... ... ... ... ... ... ... ... ... ... ... ... ...) htmlbuf)) htmlize-buffer-1() (save-current-buffer (set-buffer (or buffer ...)) (htmlize-buffer-1)) (with-current-buffer (or buffer (current-buffer)) (htmlize-buffer-1)) (let ((htmlbuf ...)) (when (interactive-p) (switch-to-buffer htmlbuf)) htmlbuf) htmlize-buffer() (let* ((htmlize-output-type ...) (newbuf ...)) (with-current-buffer newbuf (when org-export-htmlized-org-css-url ... ...) (write-file ...)) (kill-buffer newbuf)) (progn (require (quote htmlize)) (require (quote org-html)) (font-lock-fontify-buffer) (let* (... ...) (with-current-buffer newbuf ... ...) (kill-buffer newbuf))) (if (plist-get opt-plist :htmlized-source) (progn (require ...) (require ...) (font-lock-fontify-buffer) (let* ... ... ...))) (when (plist-get opt-plist :htmlized-source) (require (quote htmlize)) (require (quote org-html)) (font-lock-fontify-buffer) (let* (... ...) (with-current-buffer newbuf ... ...) (kill-buffer newbuf))) (save-excursion (switch-to-buffer buffer) (erase-buffer) (insert region) (let (...) (org-mode)) (org-install-letbind) (org-export-remove-archived-trees (plist-get opt-plist :archived-trees)) (org-export-remove-comment-blocks-and-subtrees) (org-export-handle-export-tags (plist-get opt-plist :select-tags) (plist-get opt-plist :exclude-tags)) (when (or ... ...) (save-buffer)) (when (plist-get opt-plist :htmlized-source) (require ...) (require ...) (font-lock-fontify-buffer) (let* ... ... ...)) (set-buffer-modified-p nil) (if (equal to-buffer ...) (progn ... ... str-ret) (kill-buffer ...))) (let* ((opt-plist ...) (bfname ...) (filename ...) (filename ...) (backup-inhibited t) (buffer ...) (region ...) str-ret) (save-excursion (switch-to-buffer buffer) (erase-buffer) (insert region) (let ... ...) (org-install-letbind) (org-export-remove-archived-trees ...) (org-export-remove-comment-blocks-and-subtrees) (org-export-handle-export-tags ... ...) (when ... ...) (when ... ... ... ... ...) (set-buffer-modified-p nil) (if ... ... ...))) org-export-as-org(nil nil (:buffer-will-be-killed t :base-directory "~/git/org-mode-doc/" :publishing-directory "/ssh:www-data@www:~/doc.norang.ca/htdocs" :recursive t :section-numbers nil :table-of-contents nil :base-extension "org" :publishing-function (org-publish-org-to-html org-publish-org-to-org) :plain-source t :htmlized-source t :style-include-default nil :style "" :author-info nil :creator-info nil) nil nil "/ssh:www-data@www:/var/www/doc.norang.ca/htdocs/") funcall(org-export-as-org nil nil (:buffer-will-be-killed t :base-directory "~/git/org-mode-doc/" :publishing-directory "/ssh:www-data@www:~/doc.norang.ca/htdocs" :recursive t :section-numbers nil :table-of-contents nil :base-extension "org" :publishing-function (org-publish-org-to-html org-publish-org-to-org) :plain-source t :htmlized-source t :style-include-default nil :style "" :author-info nil :creator-info nil) nil nil "/ssh:www-data@www:/var/www/doc.norang.ca/htdocs/") (setq export-buf-or-file (funcall (intern ...) (plist-get plist :headline-levels) nil plist nil (plist-get plist :body-only) pub-dir)) (let* ((plist ...) (init-buf ...) (init-point ...) (init-buf-string ...) export-buf-or-file) (run-hooks (quote org-publish-before-export-hook)) (setq export-buf-or-file (funcall ... ... nil plist nil ... pub-dir)) (when (and ... ...) (set-buffer export-buf-or-file) (progn ... ...) (kill-buffer export-buf-or-file)) (set-buffer init-buf) (when (buffer-modified-p init-buf) (erase-buffer) (insert init-buf-string) (save-buffer) (goto-char init-point)) (unless visiting (kill-buffer init-buf))) (save-excursion (switch-to-buffer (or visiting ...)) (let* (... ... ... ... export-buf-or-file) (run-hooks ...) (setq export-buf-or-file ...) (when ... ... ... ...) (set-buffer init-buf) (when ... ... ... ... ...) (unless visiting ...))) (let ((visiting ...)) (save-excursion (switch-to-buffer ...) (let* ... ... ... ... ... ... ...))) org-publish-org-to("org" (:base-directory "~/git/org-mode-doc/" :publishing-directory "/ssh:www-data@www:~/doc.norang.ca/htdocs" :recursive t :section-numbers nil :table-of-contents nil :base-extension "org" :publishing-function (org-publish-org-to-html org-publish-org-to-org) :plain-source t :htmlized-source t :style-include-default nil :style "" :author-info nil :creator-info nil) "/home/bernt/git/org-mode-doc/org-mode.org" "/ssh:www-data@www:/var/www/doc.norang.ca/htdocs/") org-publish-org-to-org((:base-directory "~/git/org-mode-doc/" :publishing-directory "/ssh:www-data@www:~/doc.norang.ca/htdocs" :recursive t :section-numbers nil :table-of-contents nil :base-extension "org" :publishing-function (org-publish-org-to-html org-publish-org-to-org) :plain-source t :htmlized-source t :style-include-default nil :style "" :author-info nil :creator-info nil) "/home/bernt/git/org-mode-doc/org-mode.org" "/ssh:www-data@www:/var/www/doc.norang.ca/htdocs/") funcall(org-publish-org-to-org (:base-directory "~/git/org-mode-doc/" :publishing-directory "/ssh:www-data@www:~/doc.norang.ca/htdocs" :recursive t :section-numbers nil :table-of-contents nil :base-extension "org" :publishing-function (org-publish-org-to-html org-publish-org-to-org) :plain-source t :htmlized-source t :style-include-default nil :style "" :author-info nil :creator-info nil) "/home/bernt/git/org-mode-doc/org-mode.org" "/ssh:www-data@www:/var/www/doc.norang.ca/htdocs/") (progn (funcall f project-plist filename tmp-pub-dir) (org-publish-update-timestamp filename pub-dir f)) (if (org-publish-needed-p filename pub-dir f tmp-pub-dir) (progn (funcall f project-plist filename tmp-pub-dir) (org-publish-update-timestamp filename pub-dir f))) (when (org-publish-needed-p filename pub-dir f tmp-pub-dir) (funcall f project-plist filename tmp-pub-dir) (org-publish-update-timestamp filename pub-dir f)) (lambda (f) (when (org-publish-needed-p filename pub-dir f tmp-pub-dir) (funcall f project-plist filename tmp-pub-dir) (org-publish-update-timestamp filename pub-dir f)))(org-publish-org-to-org) mapc((lambda (f) (when (org-publish-needed-p filename pub-dir f tmp-pub-dir) (funcall f project-plist filename tmp-pub-dir) (org-publish-update-timestamp filename pub-dir f))) (org-publish-org-to-html org-publish-org-to-org)) (if (listp publishing-function) (mapc (lambda ... ...) publishing-function) (when (org-publish-needed-p filename pub-dir publishing-function tmp-pub-dir) (funcall publishing-function project-plist filename tmp-pub-dir) (org-publish-update-timestamp filename pub-dir publishing-function))) (let* ((project ...) (project-plist ...) (ftname ...) (publishing-function ...) (base-dir ...) (pub-dir ...) tmp-pub-dir) (unless no-cache (org-publish-initialize-cache ...)) (setq tmp-pub-dir (file-name-directory ...)) (if (listp publishing-function) (mapc ... publishing-function) (when ... ... ...)) (unless no-cache (org-publish-write-cache-file))) org-publish-file("/home/bernt/git/org-mode-doc/org-mode.org" ("org-mode-doc-org" :base-directory "~/git/org-mode-doc/" :publishing-directory "/ssh:www-data@www:~/doc.norang.ca/htdocs" :recursive t :section-numbers nil :table-of-contents nil :base-extension "org" :publishing-function (org-publish-org-to-html org-publish-org-to-org) :plain-source t :htmlized-source t :style-include-default nil :style "" :author-info nil :creator-info nil) t) (while (setq file (pop files)) (org-publish-file file project t)) (let* ((project-plist ...) (exclude-regexp ...) (sitemap-p ...) (sitemap-filename ...) (sitemap-function ...) (preparation-function ...) (completion-function ...) (files ...) file) (when preparation-function (run-hooks ...)) (if sitemap-p (funcall sitemap-function project sitemap-filename)) (while (setq file ...) (org-publish-file file project t)) (when (plist-get project-plist :makeindex) (org-publish-index-generate-theindex\.inc ...) (org-publish-file ... project t)) (when completion-function (run-hooks ...)) (org-publish-write-cache-file)) (lambda (project) (org-publish-initialize-cache (car project)) (let* (... ... ... ... ... ... ... ... file) (when preparation-function ...) (if sitemap-p ...) (while ... ...) (when ... ... ...) (when completion-function ...) (org-publish-write-cache-file)))(("org-mode-doc-org" :base-directory "~/git/org-mode-doc/" :publishing-directory "/ssh:www-data@www:~/doc.norang.ca/htdocs" :recursive t :section-numbers nil :table-of-contents nil :base-extension "org" :publishing-function (org-publish-org-to-html org-publish-org-to-org) :plain-source t :htmlized-source t :style-include-default nil :style "" :author-info nil :creator-info nil)) mapc((lambda (project) (org-publish-initialize-cache (car project)) (let* (... ... ... ... ... ... ... ... file) (when preparation-function ...) (if sitemap-p ...) (while ... ...) (when ... ... ...) (when completion-function ...) (org-publish-write-cache-file))) (("org-mode-doc-org" :base-directory "~/git/org-mode-doc/" :publishing-directory "/ssh:www-data@www:~/doc.norang.ca/htdocs" :recursive t :section-numbers nil :table-of-contents nil :base-extension "org" :publishing-function (org-publish-org-to-html org-publish-org-to-org) :plain-source t :htmlized-source t :style-include-default nil :style "" :author-info nil :creator-info nil) ("org-mode-doc-extra" :base-directory "~/git/org-mode-doc/" :publishing-directory "/ssh:www -data@www:~/doc.norang.ca/htdocs" :base-extension "css\\|pdf\\|png\\|jpg\\|gif" :publishing-function org-publish-attachment :recursive t :author nil))) org-publish-projects((("org-mode-doc" :components ("org-mode-doc-org" "org-mode-doc-extra")))) (let* ((org-publish-use-timestamps-flag ...)) (org-publish-projects (if ... ... ...))) (save-window-excursion (let* (...) (org-publish-projects ...))) org-publish(("org-mode-doc" :components ("org-mode-doc-org" "org-mode-doc-extra"))) (let ((project ...) (org-publish-use-timestamps-flag ...)) (if (not project) (error "File %s is not part of any known project" ...)) (org-publish project)) (save-window-excursion (let (... ...) (if ... ...) (org-publish project))) org-publish-current-project(nil) bh/save-then-publish(nil) call-interactively(bh/save-then-publish nil nil) Emacs : GNU Emacs 23.2.1 (i486-pc-linux-gnu, GTK+ Version 2.20.1) of 2010-11-03 on potassium, modified by Debian Package: Org-mode version 7.4 (release_7.4.79.g9c4b9)