Mercurial > hg > xemacs-beta
annotate lisp/msw-glyphs.el @ 5818:15b0715c204d
Avoid passing patterns to with charset property to FcNameUnparse.
Prevents crash reported by Raymond Toy.
| author | Stephen J. Turnbull <stephen@xemacs.org> |
|---|---|
| date | Sat, 18 Oct 2014 21:20:42 +0900 |
| parents | 308d34e9f07d |
| children |
| rev | line source |
|---|---|
| 428 | 1 ;;; msw-glyphs.el --- Support for glyphs in ms windows |
| 2 | |
| 3 ;; Copyright (C) 1994, 1997 Free Software Foundation, Inc. | |
| 793 | 4 ;; Copyright (C) 2002 Ben Wing. |
| 428 | 5 |
| 6 ;; Author: Kirill M. Katsnelson <kkm@kis.ru> | |
| 7 ;; Maintainer: XEmacs Development Team | |
| 8 ;; Keywords: extensions, internal, dumped | |
| 9 | |
| 10 ;; This file is part of XEmacs. | |
| 11 | |
|
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
1315
diff
changeset
|
12 ;; XEmacs is free software: you can redistribute it and/or modify it |
|
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
1315
diff
changeset
|
13 ;; under the terms of the GNU General Public License as published by the |
|
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
1315
diff
changeset
|
14 ;; Free Software Foundation, either version 3 of the License, or (at your |
|
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
1315
diff
changeset
|
15 ;; option) any later version. |
| 428 | 16 |
|
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
1315
diff
changeset
|
17 ;; XEmacs is distributed in the hope that it will be useful, but WITHOUT |
|
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
1315
diff
changeset
|
18 ;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
1315
diff
changeset
|
19 ;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
1315
diff
changeset
|
20 ;; for more details. |
| 428 | 21 |
| 22 ;; You should have received a copy of the GNU General Public License | |
|
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
1315
diff
changeset
|
23 ;; along with XEmacs. If not, see <http://www.gnu.org/licenses/>. |
| 428 | 24 |
| 25 ;;; Synched up with: Not in FSF. | |
| 26 | |
| 27 ;;; Commentary: | |
| 28 | |
| 440 | 29 ;; Initialization code for MS Windows glyphs. |
| 428 | 30 |
| 1315 | 31 ;; This file is dumped with XEmacs (when MS Windows display support is |
| 442 | 32 ;; compiled in). Make sure this is the first of msw-*.el files |
| 33 ;; dumped. | |
| 428 | 34 |
| 35 ;;; Code: | |
| 36 | |
| 442 | 37 (defun msgdi-device-p (&optional device) |
| 38 "Return non-nil if DEVICE is a GDI device, that is 'mswindows or 'msprinter. | |
| 39 MS GDI devices are mutuially WYSIWIG-compatible, so that many common glyph, | |
| 40 color and font properties apply to them equally. | |
| 41 | |
| 42 This function is also a predicate for 'msgdi device tag, matching this | |
| 43 device class." | |
| 44 (memq (device-type device) '(mswindows msprinter))) | |
| 45 | |
| 428 | 46 (progn |
| 442 | 47 |
| 48 (define-specifier-tag 'msgdi (function msgdi-device-p)) | |
| 49 | |
| 428 | 50 (set-console-type-image-conversion-list |
| 51 'mswindows | |
| 52 `(("\\.bmp\\'" [bmp :file nil] 2) | |
| 53 ("\\`BM" [bmp :data nil] 2) | |
| 54 ,@(if (featurep 'xpm) '(("\\.xpm\\'" [xpm :file nil] 2))) | |
| 55 ("\\.xbm\\'" [xbm :file nil] 2) | |
| 56 ,@(if (featurep 'xpm) '(("\\`/\\* XPM \\*/" [xpm :data nil] 2))) | |
| 57 ,@(if (featurep 'gif) '(("\\.gif\\'" [gif :file nil] 2) | |
| 58 ("\\`GIF8[79]" [gif :data nil] 2))) | |
| 59 ,@(if (featurep 'jpeg) '(("\\.jpe?g\\'" [jpeg :file nil] 2))) | |
| 60 ;; all of the JFIF-format JPEG's that I've seen begin with | |
| 61 ;; the following. I have no idea if this is standard. | |
| 62 ,@(if (featurep 'jpeg) '(("\\`\377\330\377\340\000\020JFIF" | |
| 63 [jpeg :data nil] 2))) | |
| 64 ,@(if (featurep 'png) '(("\\.png\\'" [png :file nil] 2))) | |
| 65 ,@(if (featurep 'png) '(("\\`\211PNG" [png :data nil] 2))) | |
| 66 ,@(if (featurep 'tiff) '(("\\.tif?f\\'" [tiff :file nil] 2))) | |
| 67 ("\\`X-Face:" [string :data "[xface]"]) | |
| 68 ("\\`/\\* XPM \\*/" [string :data "[xpm]"]) | |
| 69 ("" [string :data nil] 2) | |
| 70 ;; this last one is here for pointers and icons and such -- | |
| 71 ;; strings are not allowed so they will be ignored. | |
| 72 ("" [nothing]))) | |
| 73 | |
| 442 | 74 (set-console-type-image-conversion-list |
| 75 'msprinter (console-type-image-conversion-list 'mswindows)) | |
| 76 | |
| 428 | 77 (set-face-font 'border-glyph "WingDings:Regular:11::Symbol" |
| 442 | 78 'global 'msgdi) |
| 79 (set-glyph-image continuation-glyph "\xC3" 'global 'msgdi) | |
| 80 (set-glyph-image truncation-glyph "\xF0" 'global 'msgdi) | |
| 81 (set-glyph-image hscroll-glyph "\xEF" 'global 'msgdi) | |
| 793 | 82 (set-glyph-contrib-p continuation-glyph nil) |
| 83 (set-glyph-contrib-p truncation-glyph nil) | |
| 84 (set-glyph-contrib-p hscroll-glyph nil) | |
| 428 | 85 |
| 86 (set-glyph-image octal-escape-glyph "\\") | |
| 87 (set-glyph-image control-arrow-glyph "^") | |
| 88 (set-glyph-image invisible-text-glyph " ...") | |
| 89 | |
| 90 (cond ((featurep 'xpm) | |
| 91 (set-glyph-image frame-icon-glyph | |
| 92 (concat "../etc/" "xemacs-icon3.xpm") | |
| 93 'global 'mswindows) | |
| 94 (set-glyph-image xemacs-logo | |
| 95 (concat "../etc/" | |
| 96 (if emacs-beta-version | |
| 97 "xemacs-beta.xpm" | |
| 98 "xemacs.xpm")) | |
| 442 | 99 'global 'msgdi)) |
| 428 | 100 (t |
| 101 (set-glyph-image xemacs-logo | |
| 102 "XEmacs <insert spiffy graphic logo here>" | |
| 442 | 103 'global 'msgdi))) |
| 428 | 104 ) |
| 105 | |
| 106 ;;; msw-glyphs.el ends here |
