From: yamaoka Date: Mon, 10 Dec 2001 12:29:52 +0000 (+0000) Subject: * wl-demo.el: Rewrote to make it read a logo file at the run-time. X-Git-Tag: wl-2_8-root~68 X-Git-Url: http://git.chise.org/gitweb/?a=commitdiff_plain;h=35b310f3db500b1c2e7a63a970b390275068e46a;p=elisp%2Fwanderlust.git * wl-demo.el: Rewrote to make it read a logo file at the run-time. (wl-demo-icon-name): Use Xmas logo at the end of the year. (wl-demo-insert-image): New function. (wl-demo-insert-text): New function. (wl-demo-image-type-alist): Redefine as a function. (wl-demo): Use `wl-demo-insert-image' and `wl-demo-insert-text'. (wl-demo-with-temp-file-buffer): Removed. (wl-logo-xpm): Removed. (wl-logo-xbm): Removed. (wl-logo-bitmap): Removed. --- diff --git a/wl/ChangeLog b/wl/ChangeLog index a9033c0..52bb5ca 100644 --- a/wl/ChangeLog +++ b/wl/ChangeLog @@ -1,3 +1,16 @@ +2001-12-10 Katsumi Yamaoka + + * wl-demo.el: Rewrote to make it read a logo file at the run-time. + (wl-demo-icon-name): Use Xmas logo at the end of the year. + (wl-demo-insert-image): New function. + (wl-demo-insert-text): New function. + (wl-demo-image-type-alist): Redefine as a function. + (wl-demo): Use `wl-demo-insert-image' and `wl-demo-insert-text'. + (wl-demo-with-temp-file-buffer): Removed. + (wl-logo-xpm): Removed. + (wl-logo-xbm): Removed. + (wl-logo-bitmap): Removed. + 2001-10-30 Nishimoto Masaki * wl-expire.el (wl-expire-localdir-date-folder-name-fmt): New variable. @@ -824,7 +837,7 @@ 2001-07-14 Yuuichi Teranishi * wl-draft.el (wl-message-mail-p): Test resent-to: field. - (Fix by Peter Møller Neergaard ) + (Fix by Peter M~ller Neergaard ) (wl-default-draft-cite): Fix. * wl-score.el (wl-score-insert-help): Fixed parenthesis. @@ -968,7 +981,7 @@ * wl-util.el (wl-biff-check-folder): Call elmo-folder-check instead of elmo-folder-close. -2001-06-06 Peter Møller Neergaard +2001-06-06 Peter M~ller Neergaard * wl-summary.el (wl-summary-resend-bounced-mail): Modified regexp for postfix. diff --git a/wl/wl-demo.el b/wl/wl-demo.el index 948b636..efdd2c0 100644 --- a/wl/wl-demo.el +++ b/wl/wl-demo.el @@ -1,4 +1,4 @@ -;;; wl-demo.el --- Opening demo on Wanderlust. +;;; wl-demo.el --- Opening demo on Wanderlust ;; Copyright (C) 1998,1999,2000,2001 Yuuichi Teranishi ;; Copyright (C) 2000,2001 Katsumi Yamaoka @@ -13,50 +13,79 @@ ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 2, or (at your option) ;; any later version. -;; + ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. -;; + ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. -;; ;;; Commentary: + +;; Using BITMAP-MULE to compose a logo image will take a long time. +;; It will be used if you are using Mule, Emacs 20 or Emacs 21 without +;; a new redisplay engine. If it makes you irritated, you can inhibit +;; the use of BITMAP-MULE on the startup screen by the following line +;; in your .wl file: ;; +;; (setq wl-demo-display-logo nil) ;;; Code: -;; (defconst wl-demo-copyright-notice - "Copyright (C) 1998-2001 Yuuichi Teranishi ") + "Copyright (C) 1998-2001 Yuuichi Teranishi " + "A declaration of the copyright on Wanderlust.") +(eval-when-compile + (require 'cl)) (require 'wl-vars) (require 'wl-version) (require 'wl-highlight) -(defconst wl-demo-icon-name (concat "wl-" (wl-version-status) "-logo")) +(defconst wl-demo-icon-name + (concat "wl-" (wl-version-status) + (if (string-match "^... Dec \\([ 1][0-9]\\|2[0-4]\\)" + (current-time-string)) + "-xmas-logo" + "-logo")) + "Basename of the logo file.") + +(defvar wl-logo-ascii "\ + o$ oo$$$$$$ooo + oo$$$ o$$ o$$$\"\"\"\"\"\"$$$$$o + $$$$$$\" o$$$\" o$\"\" \"$$$ + $$\" o$\"\" o$\" $$$ + $\" oo$\" $\" $$$ + o$ oo\"\"$$ $ $$ +o$$ oo$\" \"$$$o $ o$$ +$$$$\"\" \"$$oo$ o o$\" + \"$$o \"$$$o oooo$\"\" + $$ \"\"\"\" + Wanderlust + \"$ +Yet Another Message Interface On Emacsen" + "Ascii picture used to splash the startup screen.") (eval-and-compile - (if wl-on-emacs21 - ;; `display-images-p' has not been available prior to Emacs 21.0.105. - (defalias-maybe 'display-images-p 'display-graphic-p))) + (when wl-on-emacs21 + ;; `display-images-p' has not been available in Emacs versions + ;; prior to Emacs 21.0.105. + (defalias-maybe 'display-images-p 'display-graphic-p))) ;; Avoid byte compile warnings. (eval-when-compile - (defalias-maybe 'bitmap-compose 'ignore) - (defalias-maybe 'bitmap-decode-xbm 'ignore) - (defalias-maybe 'bitmap-read-xbm-buffer 'ignore) - (defalias-maybe 'bitmap-read-xbm-file 'ignore) + (defalias-maybe 'bitmap-insert-xbm-file 'ignore) (defalias-maybe 'create-image 'ignore) (defalias-maybe 'device-on-window-system-p 'ignore) - (defalias-maybe 'display-images-p 'ignore) (defalias-maybe 'frame-char-height 'ignore) (defalias-maybe 'frame-char-width 'ignore) - (defalias-maybe 'frame-parameter 'ignore) + (defalias-maybe 'glyph-height 'ignore) + (defalias-maybe 'glyph-width 'ignore) + (defalias-maybe 'image-size 'ignore) (defalias-maybe 'image-type-available-p 'ignore) (defalias-maybe 'insert-image 'ignore) (defalias-maybe 'make-extent 'ignore) @@ -68,311 +97,220 @@ (defalias-maybe 'window-pixel-height 'ignore) (defalias-maybe 'window-pixel-width 'ignore)) -;; -;; demo ;-) -;; - -(defvar wl-logo-ascii "\ - o$ oo$$$$$$ooo - oo$$$ o$$ o$$$\"\"\"\"\"\"$$$$$o - $$$$$$\" o$$$\" o$\"\" \"$$$ - $$\" o$\"\" o$\" $$$ - $\" oo$\" $\" $$$ - o$ oo\"\"$$ $ $$ -o$$ oo$\" \"$$$o $ o$$ -$$$$\"\" \"$$oo$ o o$\" - \"$$o \"$$$o oooo$\"\" - $$ \"\"\"\" - Wanderlust - \"$ -Yet Another Message Interface On Emacsen") - -(eval-when-compile - (defmacro wl-demo-with-temp-file-buffer (file &rest forms) - "Create a temporary buffer, insert FILE's contents without -any conversions and evaluate FORMS there like `progn'." - ( `(with-temp-buffer - (let ((coding-system-for-read 'binary) - (input-coding-system '*noconv*) - auto-mode-alist - file-name-handler-alist - format-alist - insert-file-contents-access-hook - insert-file-contents-post-hook - insert-file-contents-pre-hook - interpreter-mode-alist) - (insert-file-contents (, file)) - (,@ forms))))) - (put 'wl-demo-with-temp-file-buffer 'lisp-indent-function 1)) - -(eval-when-compile - (defmacro wl-logo-xpm () - ;; (WIDTH HEIGHT DATA) - (let ((file (expand-file-name - (if (string-match "^... Dec \\([ 1][0-9]\\|2[0-4]\\)" - (current-time-string)) - (concat (substring wl-demo-icon-name 0 -4) - "xmas-" - (substring wl-demo-icon-name -4) - ".xpm") - (concat wl-demo-icon-name ".xpm")) - wl-icon-dir))) - (if (file-exists-p file) - (wl-demo-with-temp-file-buffer file - (re-search-forward - (concat "\"[\t ]*\\([0-9]+\\)[\t ]+\\([0-9]+\\)" - "[\t ]+[0-9]+[\t ]+[0-9]+[\t ]*\"")) - (list 'list - (string-to-number (match-string 1)) - (string-to-number (match-string 2)) - (buffer-string)))))) - (defmacro wl-logo-xbm () - ;; (WIDTH HEIGHT DATA) - (let ((file (expand-file-name (concat wl-demo-icon-name ".xbm") - wl-icon-dir))) - (if (file-exists-p file) - (wl-demo-with-temp-file-buffer file - (let ((case-fold-search t) - width height) - (search-forward "width") - (setq width (read (current-buffer))) - (goto-char (point-min)) - (search-forward "height") - (setq height (read (current-buffer))) - (goto-char (point-min)) - (search-forward "{") - (delete-region (point-min) (point)) - (while (re-search-forward "[^0-9a-fx]+" nil t) - (replace-match "")) - (goto-char (point-min)) - (insert "\"") - (while (search-forward "0x" nil t) - (replace-match "\\\\x")) - (goto-char (point-max)) - (insert "\"") - (goto-char (point-min)) - (list 'list width height (read (current-buffer)))))))) - (defmacro wl-logo-bitmap () - ;; (DECODED-P . DATA) - (let ((file (expand-file-name (concat wl-demo-icon-name ".xbm") - wl-icon-dir))) - (if (file-exists-p file) - (if (condition-case nil - (require 'bitmap) - (error nil)) - (list 'cons t (bitmap-decode-xbm (bitmap-read-xbm-file file))) - (wl-demo-with-temp-file-buffer file - (list 'cons nil (buffer-string)))))))) - -(let ((xpm (wl-logo-xpm))) - (if (and xpm - (or (and (featurep 'xemacs) - (featurep 'xpm)) - (condition-case nil - (require 'image) - (error nil)))) - (progn - (put 'wl-logo-xpm 'width (car xpm)) - (put 'wl-logo-xpm 'height (nth 1 xpm)) - (put 'wl-logo-xpm 'image - (if (featurep 'xemacs) - (make-glyph (vector 'xpm ':data (nth 2 xpm))) - (condition-case nil - (let ((image-types '(xpm))) - (create-image (nth 2 xpm) 'xpm t)) - (error - (put 'wl-logo-xpm 'width nil) - (put 'wl-logo-xpm 'height nil) - nil))))))) - -(let (width height) - (let ((xbm (wl-logo-xbm))) - (setq width (car xbm) - height (nth 1 xbm)) - (if (and xbm - (or (featurep 'xemacs) - (condition-case nil - (require 'image) - (error nil)))) +(defun wl-demo-insert-image (image-type) + "Insert a logo image at the point and position it to be centered. +IMAGE-TYPE specifies what a type of image should be displayed. +Return a number of lines that an image occupies in the buffer." + (let ((file (cond ((eq image-type 'xpm) + (concat wl-demo-icon-name ".xpm")) + ((memq image-type '(xbm bitmap)) + (concat wl-demo-icon-name ".xbm")))) + image width height) + (when (featurep 'xemacs) + (when (boundp 'default-gutter-visible-p) + (set-specifier (symbol-value 'default-gutter-visible-p) + nil (current-buffer))) + (set-specifier (symbol-value 'scrollbar-height) 0 (current-buffer)) + (set-specifier (symbol-value 'scrollbar-width) 0 (current-buffer))) + (if (and file + (if (and wl-icon-dir + (file-directory-p wl-icon-dir)) + (setq file (expand-file-name file wl-icon-dir)) + (message "You should specify the value of `wl-icon-dir'") + nil) + (if (file-exists-p file) + (if (file-readable-p file) + t + (message "Permission denied: %s" file) + nil) + (message "File not found: %s" file) + nil)) (progn - (put 'wl-logo-xbm 'width width) - (put 'wl-logo-xbm 'height height) - (put 'wl-logo-xbm 'image - (if (featurep 'xemacs) - (make-glyph (vector 'xbm ':data xbm)) - (condition-case nil - (let ((image-types '(xbm))) - (create-image (nth 2 xbm) 'xbm t - ':width (car xbm) ':height (nth 1 xbm))) - (error - (put 'wl-logo-xbm 'width nil) - (put 'wl-logo-xbm 'height nil) - nil))))))) - (if (and width - (not (featurep 'xemacs)) - (condition-case nil - (require 'bitmap) - (error nil))) - (progn - (put 'wl-logo-bitmap 'width width) - (put 'wl-logo-bitmap 'height height) - (let ((default-enable-multibyte-characters t) - (default-mc-flag t)) - (with-temp-buffer - (let* ((bm (wl-logo-bitmap)) - (cmp (if (car bm) - (cdr bm) - (insert (cdr bm)) - (prog1 - (bitmap-decode-xbm (bitmap-read-xbm-buffer - (current-buffer))) - (erase-buffer)))) - (len (length cmp)) - (i 1)) - (insert (bitmap-compose (aref cmp 0))) - (while (< i len) - (insert "\n" (bitmap-compose (aref cmp i))) - (setq i (1+ i))) - (put 'wl-logo-bitmap 'image (buffer-string)))))))) + (cond ((featurep 'xemacs) + (setq width (window-pixel-width) + height (window-pixel-height) + image (make-glyph (vector image-type ':file file))) + (when (eq 'xbm image-type) + (set-glyph-face image 'wl-highlight-logo-face)) + (insert-char ?\ (max 0 (/ (+ (* (- width (glyph-width image)) + (window-width)) width) + (* 2 width)))) + (set-extent-end-glyph (make-extent (point) (point)) image) + (insert "\n") + (/ (+ (* 2 (glyph-height image) (window-height)) height) + (* 2 height))) + ((eq 'bitmap image-type) + (message "Composing a bitmap image...") + (save-restriction + (narrow-to-region (point) (point)) + (bitmap-insert-xbm-file file) + (backward-char) + (indent-rigidly (point-min) (point-max) + (max 0 (/ (1+ (- (window-width) + (current-column))) + 2))) + (put-text-property (point-min) (point-max) + 'face 'wl-highlight-logo-face) + (message "Composing a bitmap image...done") + (count-lines (point-min) (goto-char (point-max))))) + ((>= emacs-major-version 21) + (if (eq 'xpm image-type) + (setq image (create-image file 'xpm) + width (image-size image) + height (cdr width) + width (car width)) + (with-temp-buffer + (setq case-fold-search t) + (insert-file-contents file) + (goto-char (point-min)) + (re-search-forward "\ +^#define[[:blank:]]+[^[:blank:]]+_width[[:blank:]]+") + (setq width (read (current-buffer))) + (goto-char (point-min)) + (re-search-forward "\ +^#define[[:blank:]]+[^[:blank:]]+_height[[:blank:]]+") + (setq height (read (current-buffer))) + (search-forward "{") + (delete-region (point-min) (point)) + (while (re-search-forward "[^0-9a-fx]+" nil t) + (replace-match "")) + (goto-char (point-min)) + (insert "\"") + (while (search-forward "0x" nil t) + (replace-match "\\\\x")) + (goto-char (point-max)) + (insert "\"") + (goto-char (point-min)) + (setq image (create-image (read (current-buffer)) + 'xbm t + ':width width + ':height height) + width (/ (float width) (frame-char-width)) + height (/ (float height) (frame-char-height))) + (let ((bg (face-background 'wl-highlight-logo-face)) + (fg (face-foreground 'wl-highlight-logo-face))) + (when (stringp bg) + (plist-put (cdr image) ':background bg)) + (when (stringp fg) + (plist-put (cdr image) ':foreground fg))))) + (insert (propertize " " 'display + (list 'space ':align-to + (max 0 (round (- (window-width) + width) + 2))))) + (insert-image image) + (insert "\n") + (round height)))) + (save-restriction + (narrow-to-region (point) (point)) + (insert wl-logo-ascii) + (put-text-property (point-min) (point) 'face 'wl-highlight-logo-face) + (unless (bolp) + (insert "\n")) + (setq width 0) + (while (progn + (end-of-line 0) + (not (bobp))) + (setq width (max width (current-column)))) + (indent-rigidly (point-min) (point-max) + (max 0 (/ (1+ (- (window-width) width)) 2))) + (count-lines (point-min) (goto-char (point-max))))))) -(eval-when-compile - (defmacro wl-demo-image-type-alist () - '(append (if (and (get 'wl-logo-xpm 'width) - (or (and (featurep 'xemacs) - (featurep 'xpm) - (device-on-window-system-p)) - (and wl-on-emacs21 - (display-images-p) - (image-type-available-p 'xpm)))) - '(("xpm" . xpm))) - (if (and (get 'wl-logo-xbm 'width) - (or (and (featurep 'xemacs) - (device-on-window-system-p)) - (and wl-on-emacs21 - (display-images-p) - (image-type-available-p 'xbm)))) - '(("xbm" . xbm))) - (if (and (get 'wl-logo-bitmap 'width) - (not (featurep 'xemacs)) - window-system - (featurep 'bitmap)) - '(("bitmap" . bitmap))) - '(("ascii"))))) +(defun wl-demo-insert-text (height) + "Insert a version and the copyright message after a logo image. HEIGHT +should be a number of lines that an image occupies in the buffer." + (let* ((height (- (window-height) height 1)) + (text (format (cond ((<= height 2) + "version %s - \"%s\"\n%s") + ((eq height 3) + "version %s - \"%s\"\n\n%s") + (t + "\nversion %s - \"%s\"\n\n%s")) + (product-version-string (product-find 'wl-version)) + (product-code-name (product-find 'wl-version)) + wl-demo-copyright-notice)) + start) + (goto-char (point-min)) + (insert-char ?\n (max 0 (/ (- height 4) 2))) + (setq start (goto-char (point-max))) + (if wl-on-emacs21 + (let ((bg (face-background 'wl-highlight-demo-face)) + (fg (face-foreground 'wl-highlight-demo-face))) + (insert (propertize text + 'face (nconc '(variable-pitch :slant oblique) + (if (stringp bg) + (list ':background bg)) + (if (stringp fg) + (list ':foreground fg)))))) + (insert text) + (put-text-property start (point) 'face 'wl-highlight-demo-face)) + (let ((fill-column (window-width))) + (center-region start (point))))) + +(defun wl-demo-image-type-alist () + "Return an alist of available logo image types on the current frame." + (if (or (and (featurep 'xemacs) + (device-on-window-system-p)) + window-system) + (let ((selection (append (when (or (and (featurep 'xemacs) + (featurep 'xpm)) + (and wl-on-emacs21 + (display-images-p) + (image-type-available-p 'xpm))) + '(("xpm" . xpm))) + (when (or (featurep 'xemacs) + (and wl-on-emacs21 + (display-images-p) + (image-type-available-p 'xbm))) + '(("xbm" . xbm)))))) + (unless (or selection + (featurep 'xemacs)) + (condition-case nil + (require 'bitmap) + (error))) + (when (featurep 'bitmap) + (setq selection (append selection '(("bitmap" . bitmap))))) + (append selection '(("ascii")))) + '(("ascii")))) (defun wl-demo (&optional image-type) - "Demo on the startup screen. -Optional IMAGE-TYPE overrides the variable `wl-demo-display-logo'." + "Demo on the startup screen. IMAGE-TYPE should be a symbol which +overrides the variable `wl-demo-display-logo'. It will prompt user +for the type of image when it is called interactively with a prefix +argument." (interactive "P") (let ((selection (wl-demo-image-type-alist)) type) (if (and image-type (interactive-p)) (setq type (completing-read "Image type: " selection nil t) - image-type (if (assoc type selection) - (cdr (assoc type selection)))) + image-type (when (assoc type selection) + (cdr (assoc type selection)))) (if (setq type (assoc (format "%s" (or image-type wl-demo-display-logo)) selection)) (setq image-type (cdr type)) - (setq image-type (cdr (car selection)))))) - (if image-type - (setq image-type (intern (format "wl-logo-%s" image-type)))) - (let ((demo-buf (let ((default-enable-multibyte-characters t) - (default-mc-flag t) - (default-line-spacing 0)) - (get-buffer-create "*WL Demo*")))) - (switch-to-buffer demo-buf) + (setq image-type (when wl-demo-display-logo + (cdr (car selection))))))) + (when (eq 'bitmap image-type) + ;; Composing a bitmap image takes a long time. :-< + (wl-demo 'ascii)) + (let ((buffer (let ((default-enable-multibyte-characters t) + (default-mc-flag t) + (default-line-spacing 0)) + (get-buffer-create "*WL Demo*")))) + (switch-to-buffer buffer) + (setq buffer-read-only nil) (erase-buffer) (setq truncate-lines t tab-width 8) (set (make-local-variable 'tab-stop-list) '(8 16 24 32 40 48 56 64 72 80 88 96 104 112 120)) - (when (and (featurep 'xemacs) - (device-on-window-system-p)) - (if (boundp 'default-gutter-visible-p) - (set-specifier (symbol-value 'default-gutter-visible-p) - nil demo-buf)) - (set-specifier (symbol-value 'scrollbar-height) 0 demo-buf) - (set-specifier (symbol-value 'scrollbar-width) 0 demo-buf)) - (let ((ww (window-width)) - (wh (window-height)) - rest) - (if image-type - (let ((lw (get image-type 'width)) - (lh (get image-type 'height)) - (image (get image-type 'image))) - (cond - ((featurep 'xemacs) - (if (eq 'wl-logo-xbm image-type) - (set-glyph-face image 'wl-highlight-logo-face)) - (setq rest (- wh 1 (/ (+ (* lh wh) (window-pixel-height) -1) - (window-pixel-height)))) - (insert-char ?\ (max 0 (/ (- (* (window-pixel-width) (1+ ww)) - (* lw ww)) - 2 (window-pixel-width)))) - (set-extent-end-glyph (make-extent (point) (point)) image)) - ((and wl-on-emacs21 - (display-images-p) - (not (eq 'wl-logo-bitmap image-type))) - (if (eq 'wl-logo-xbm image-type) - (let ((bg (face-background 'wl-highlight-logo-face)) - (fg (face-foreground 'wl-highlight-logo-face))) - (if (stringp bg) - (plist-put (cdr image) ':background bg)) - (if (stringp fg) - (plist-put (cdr image) ':foreground fg)))) - (setq rest (/ (- (* wh (frame-char-height)) lh 1) - (frame-char-height))) - (insert (propertize " " 'display - (list 'space ':align-to - (max 0 (/ (- (* (frame-char-width) - (1+ ww)) lw) - 2 (frame-char-width)))))) - (insert-image image)) - (t - (insert image) - (put-text-property (point-min) (point) 'face - 'wl-highlight-logo-face) - (setq rest (/ (- (* 16 wh) lh 8) 16)) - (indent-rigidly (point-min) (point-max) - (/ (- (* 8 (1+ ww)) lw) 16)))) - (goto-char (point-min))) - (insert (or wl-logo-ascii (product-name (product-find 'wl-version)))) - (put-text-property (point-min) (point) 'face 'wl-highlight-logo-face) - (setq rest (- wh (count-lines (point-min) (point)) 1)) - (let ((lw (current-column)) - (lh (count-lines (point-min) (point)))) - (while (progn (beginning-of-line) (not (bobp))) - (backward-char) - (setq lw (max lw (current-column)))) - (indent-rigidly (point) (point-max) (max 0 (/ (- ww lw) 2))))) - (insert-char ?\n (max 0 (/ (- rest 4) 2))) - (goto-char (point-max)) - (insert "\n") - (let ((start (point)) - (text (format (cond ((<= rest 2) - "version %s - \"%s\"\n%s") - ((eq rest 3) - "version %s - \"%s\"\n\n%s") - (t - "\nversion %s - \"%s\"\n\n%s")) - (product-version-string (product-find 'wl-version)) - (product-code-name (product-find 'wl-version)) - wl-demo-copyright-notice))) - (if wl-on-emacs21 - (let ((bg (face-background 'wl-highlight-demo-face)) - (fg (face-foreground 'wl-highlight-demo-face))) - (insert (propertize text - 'face (nconc '(variable-pitch :slant oblique) - (if (stringp bg) - (list ':background bg)) - (if (stringp fg) - (list ':foreground fg)))))) - (insert text) - (put-text-property start (point) 'face 'wl-highlight-demo-face)) - (let ((fill-column ww)) - (center-region start (point)))) - (goto-char (point-min)) - (sit-for (if (featurep 'lisp-float-type) (/ (float 5) (float 10)) 1)) - demo-buf))) + (wl-demo-insert-text (wl-demo-insert-image image-type)) + (set-buffer-modified-p nil) + (goto-char (point-min)) + (sit-for (if (featurep 'lisp-float-type) + (/ (float 5) (float 10)) + 1)) + buffer)) (require 'product) (product-provide (provide 'wl-demo) (require 'wl-version))