comparison lisp/w3/w3-vars.el @ 0:376386a54a3c r19-14

Import from CVS: tag r19-14
author cvs
date Mon, 13 Aug 2007 08:45:50 +0200
parents
children ac2d302a0011
comparison
equal deleted inserted replaced
-1:000000000000 0:376386a54a3c
1 ;;; w3-vars.el,v --- All variable definitions for emacs-w3
2 ;; Author: wmperry
3 ;; Created: 1996/06/06 14:20:01
4 ;; Version: 1.219
5 ;; Keywords: comm, help, hypermedia
6
7 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
8 ;;; Copyright (c) 1993, 1994, 1995 by William M. Perry (wmperry@spry.com)
9 ;;;
10 ;;; This file is not part of GNU Emacs, but the same permissions apply.
11 ;;;
12 ;;; GNU Emacs is free software; you can redistribute it and/or modify
13 ;;; it under the terms of the GNU General Public License as published by
14 ;;; the Free Software Foundation; either version 2, or (at your option)
15 ;;; any later version.
16 ;;;
17 ;;; GNU Emacs is distributed in the hope that it will be useful,
18 ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
19 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 ;;; GNU General Public License for more details.
21 ;;;
22 ;;; You should have received a copy of the GNU General Public License
23 ;;; along with GNU Emacs; see the file COPYING. If not, write to
24 ;;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
25 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
26
27 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
28 ;;; Variable definitions for w3
29 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
30 (defconst w3-version-number
31 (let ((x "p2-3-67"))
32 (if (string-match "State:[ \t\n]+.\\([^ \t\n]+\\)" x)
33 (setq x (substring x (match-beginning 1) (match-end 1)))
34 (setq x (substring x 1)))
35 (mapconcat
36 (function (lambda (x) (if (= x ?-) "." (char-to-string x)))) x ""))
37 "Version # of w3-mode.")
38
39 (defconst w3-version-date (let ((x "1996/06/06 14:20:01"))
40 (if (string-match "Date: \\([^ \t\n]+\\)" x)
41 (substring x (match-beginning 1) (match-end 1))
42 x))
43 "Date this version of w3-mode was released.")
44
45 (defconst w3-version
46 (format "WWW %s %s" w3-version-number w3-version-date)
47 "More descriptive version of w3-version-number.")
48
49 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
50 ;;; General configuration variables
51 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
52 (defvar w3-annotation-mode 'html-mode
53 "*A symbol specifying the major mode to enter when doing annotations.")
54
55 (defvar w3-annotation-position 'bottom
56 "*A symbol specifying where personal annotations should appear in a buffer.
57 Can be one of the symbols 'top or 'bottom. If the symbol is eq to 'top, then
58 the annotations will appear at the top of the buffer. If 'bottom, will appear
59 at the end of the buffer.")
60
61 (defvar w3-auto-image-alt t
62 "*Whether emacs-w3 should create an alt attribute for an image that
63 is missing it.
64 If nil, emacs-w3 will not automatically create an ALT attribute.
65 If t, the alt attribute will be [IMAGE(nameofimage)]
66 If a string, it should be a string suitable for running through format,
67 with only one %s, which will be replaced with just the filename of the
68 graphic that is not loaded.")
69
70 (defvar w3-configuration-directory "~/.w3/"
71 "*Where emacs-w3 can find its configuration files")
72
73 (defvar w3-debug-html nil "*Whether to gripe about bad HTML or not.")
74
75 (defvar w3-debug-buffer "*HTML Debug*"
76 "*Name of buffer to store debugging information in.")
77
78 (defvar w3-default-configuration-file nil
79 "*Where per-user customizations of w3 are kept.")
80
81 (defvar w3-default-action 'w3-prepare-buffer
82 "*A lisp symbol specifying what action to take for files with
83 extensions that are not mapped to a MIME type in `mm-mime-extensions'.
84 This is useful in case you ever run across files with weird extensions
85 \(.foo, .README, .READMEFIRST, etc). This should not be required
86 anymore.
87
88 Possible values: any lisp symbol. Should be a function that takes no
89 arguments. The return value does not matter, it is ignored. Some examples
90 are:
91
92 Action Value
93 ----------------------------------------------
94 Parse as HTML 'w3-prepare-buffer
95 View as text 'indented-text-mode")
96
97 (defvar w3-default-homepage nil
98 "*The url to open at startup. It can be any valid URL. This will
99 default to the environment variable WWW_HOME if you do not set it in
100 your .emacs file. If WWW_HOME is undefined, then it will default to
101 the hypertext documentation for W3 at Indiana University.")
102
103 (defvar w3-default-stylesheet nil
104 "*The filename of the users default stylesheet.")
105
106 (defvar w3-do-blinking nil
107 "*Whether emacs-w3 should display blinking text.")
108
109 (defvar w3-do-incremental-display nil
110 "*Whether to do incremental display of pages or not.")
111
112 (defvar w3-documents-menu-file nil
113 "*Where the Mosaic documents-menu file is located. This is a file
114 that has extra menus for the 'Navigate' menu. This should be in the same
115 format as the Mosaic extra documents.menu.")
116
117 (defvar w3-dump-to-disk nil
118 "*If non-nil, all W3 pages loaded will be dumped to disk.")
119
120 (defvar w3-echo-link 'url
121 "Whether to display the URL of a link when tabbing through links.
122 Possible values are:
123
124 url == show the url of the target in the minibuffer
125 text == show the text of the link in the minibuffer
126 nil == show nothing")
127
128 (defvar w3-horizontal-rule-char ?-
129 "*The character to use to create a horizontal rule.
130 Must be the character's code, not a string. This character is
131 replicated across the screen to create a division.")
132
133 (defvar w3-hotlist-file nil
134 "*Hotlist filename.
135 This should be the name of a file that is stored in either
136 NCSA's Mosaic/X or Netscape/X format. It is used to keep a listing
137 of commonly accessed URL's without having to go through 20 levels of
138 menus to get to them.")
139
140 (defvar w3-html2latex-args "-s -"
141 "*Args to pass `w3-html2latex-prog'. This should send the LaTeX source
142 to standard output.")
143
144 (defvar w3-html2latex-prog "html2latex"
145 "*Program to convert html to latex.")
146
147 (defvar w3-icon-directory "http://cs.indiana.edu/elisp/w3/icons/"
148 "*Where to find standard icons. Must end in a /!")
149
150 (defvar w3-icon-format 'xbm
151 "*What file extension icons end in. This is a symbol, string, or nil.
152 If nil, then no file extension is used.")
153
154 (defvar w3-indent-level 4
155 "*Default # of spaces to indent instead of using TABs. This is
156 necessary to preserve tabs in PRE segments yet still get smaller
157 indentation for lists, etc.")
158
159 (defvar w3-keep-old-buffers t
160 "*Whether to keep old buffers around when following links.")
161
162 (defvar w3-latex-docstyle "{article}"
163 "*The documentstyle to use when printing/mailing converted HTML
164 files in LaTeX. Good defaults are:
165 {article}, [psfig,twocolumn]{article}, etc.")
166
167 (defvar w3-link-info-display-function nil
168 "*A function to call to get extra information about a link and
169 include it in a buffer. Will be placed after the link and any other
170 delimiters.")
171
172 (defvar w3-mail-command 'mail
173 "*This function will be called whenever w3 needs to send mail. It should
174 enter a mail-mode-like buffer in the current window.
175 `w3-mail-other-window-command' will be used if w3-mutable-windows is t.
176 The commands `mail-to' and `mail-subject' should still work in this
177 buffer, and it should use mail-header-separator if possible.")
178
179 (defvar w3-mail-other-window-command 'mail-other-window
180 "*This function will be called whenever w3 needs to send mail in
181 another window. It should enter a mail-mode-like buffer in a
182 different window. The commands `mail-to' and `mail-subject' should still
183 work in this buffer, and it should use mail-header-separator if
184 possible.")
185
186 (defvar w3-max-inlined-image-size nil
187 "*The maximum byte size of a file to transfer as an inlined image.
188 If an image is being retrieved and exceeds this size, then it will be
189 cancelled. This works best on HTTP/1.0 servers that send a
190 Content-length header, otherwise the image is retrieved up until the
191 max number of bytes is retrieved, then killed.")
192
193 (defvar w3-max-menu-length 35
194 "*The maximum length of a pulldown menu before it will be split into
195 smaller chunks, with the first part as a submenu, followed by the rest
196 of the menu.")
197
198 (defvar w3-max-menu-width 40 "*The maximum width of a pulldown menu choice.")
199
200 (defvar w3-modeline-format
201 '(" " ("W3"
202 (w3-netscape-emulation-minor-mode
203 " (NS)")
204 (w3-lynx-emulation-minor-mode
205 " (Lynx)")
206 ": "
207 (40 (-40 "%b"))
208 " "
209 (w3-current-isindex "[Searchable] ")
210 "%p" " " global-mode-string))
211 "*The modeline format string when in w3 mode")
212
213 (defvar w3-mule-attribute 'underline
214 "*How to highlight items in Mule (Multi-Linugual Emacs).")
215
216 (defvar w3-mutable-windows nil
217 "*Controls how new WWW documents are displayed. If this is set to
218 non-nil and pop-up-windows is non-nil, then new buffers will be shown
219 in another window. If either is nil, then it will replace the document
220 in the current window.")
221
222 (defvar w3-netscape-configuration-file nil
223 "*A Netscape-for-X style configuration file. This file will only be read if
224 and only if `w3-use-netscape-configuration-file' is non-nil.")
225
226 (defvar w3-netscape-compatible-comments t
227 "*Whether to honor netscape-style <! > comments.
228 Ye gods I wish I could turn this off by default.")
229
230 (defvar w3-notify 'semibully
231 "*Selects the behavior when w3 page is ready.
232 This variable may have one of the following values:
233
234 newframe -- put the w3 page in its own frame
235 bully -- make the w3 page the current buffer and only window
236 semibully -- make the w3 page the current buffer in the same window
237 aggressive -- make the w3 page the current buffer in the other window
238 friendly -- display w3page in other window but don't make current
239 polite -- don't display w3 page, but prints message when ready (beeps)
240 quiet -- like `polite', but don't beep
241 meek -- make no indication that page is ready
242
243 Any other value of `w3-notify' is equivalent to `meek'.")
244
245 (defvar w3-personal-annotation-directory nil
246 "*Directory where w3 looks for personal annotations.
247 This is a directory that should hold the personal annotations stored in
248 a Mosaic-compatible format.")
249
250 (defvar w3-ppmtoxbm-command "ppmtopgm | pgmtopbm | pbmtoxbm"
251 "*The command used to convert from the portable-pixmap graphics format
252 to an x bitmap. This will only ever be used if XEmacs doesn't have support
253 for XPM.")
254
255 (defvar w3-ppmtoxpm-command "ppmtoxpm"
256 "*The command used to convert from the portable-pixmap graphics format
257 to XPM. The XPM _MUST_ be in version 3 format.")
258
259 (defvar w3-print-command "lpr -h -d"
260 "*Print command for dvi files.
261 This is usually lpr -h -d to send it to a postscript printer, but you can set
262 it up so that it is any command that takes a dvi file as its last argument.")
263
264 (defvar w3-reuse-buffers 'reuse
265 "What to do when following a link will re-fetch a document that has
266 already been fetched into a W3 buffer. Possible values are: nil,
267 'yes, and 'no. Nil means ask the user if we should reuse the buffer.
268 A value of 'yes means assume the user wants us to reuse the buffer.
269 A value of 'no means assume the user wants us to re-fetch the document.
270
271 This will also accept:
272 'no 'never 'reload ==> always reload
273 'yes 'reuse 'always ==> always reuse
274 'ask nil ==> always ask")
275
276 (defvar w3-right-border 2
277 "*Amount of space to leave on right margin of WWW buffers.
278 This amount is subtracted from (window-width) for each new WWW buffer
279 and used as the new fill-column.")
280
281 (defvar w3-maximum-line-length nil
282 "*Maximum length of a line. If nil, then lines can extend all the way to
283 the window margin. If a number, the smaller of this and
284 (- (window-width) w3-right-border) is used.")
285
286 (defvar w3-right-justify-address t
287 "*Whether to make address fields right justified, like Arena.")
288
289 (defvar w3-show-headers nil
290 "*This is a list of regexps that match HTTP/1.0 headers to show at
291 the end of a buffer. All the headers being matched against will be
292 in lowercase. All matching headers will be inserted at the end of the
293 buffer in a <UL> list.")
294
295 (defvar w3-show-status t
296 "*Whether to show a running total of bytes transferred. Can cause a
297 large hit if using a remote X display over a slow link, or a terminal
298 with a slow modem.")
299
300 (defvar w3-starting-documents
301 '(("Internet Starting Points" "http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/StartingPoints/NetworkStartingPoints.html")
302 ("Internet Resources Meta-index" "http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/MetaIndex.html")
303 ("NCSA's What's New" "http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/Docs/whats-new.html"))
304 "*An assoc list of titles and URLs for quick access. These are just
305 defaults so that new users have somewhere to go.")
306
307 (defvar w3-temporary-directory "/tmp" "*Where temporary files go.")
308
309 (defvar w3-track-last-buffer nil
310 "*Whether to track the last w3 buffer to automatically switch to with
311 M-x w3.")
312
313 (defvar w3-track-mouse t
314 "*Whether to track the mouse and message the url under the mouse.")
315
316 (defvar w3-use-forms-index t
317 "*Non-nil means translate <ISINDEX> tags into a hypertext form.
318 A single text entry box will be drawn where the ISINDEX tag appears.
319 If t, the isindex handling will be the same as Mosaic for X.")
320
321 (defvar w3-use-html2latex nil
322 "*This controls how HTML is converted into LaTeX for printing or mailing.
323 If nil, the w3-convert-html-to-latex function is used instead of the
324 html2latex in a subprocess. The lisp function gives slightly better
325 formatting in my biased opinion.")
326
327 (defvar w3-use-netscape-configuration-file nil
328 "*Whether to use a netscape configuration file to determine things like
329 home pages, link colors, etc. If non-nil, then `w3-netscape-configuration-file'
330 is read in at startup.")
331
332 (defvar w3-honor-stylesheets t
333 "*Whether to let a document specify a CSS stylesheet.")
334
335 (defvar w3-user-colors-take-precedence nil
336 "*Whether to let a document define certain colors about itself.
337 Like foreground and background colors and pixmaps, color of links and
338 visited links, etc.")
339
340 (defvar w3-gc-cons-threshold-multiplier 1
341 "Amount to temporarily multiply gc-cons-threshold by when parsing HTML.
342 Setting this to a number greater than 1 will result in less frequent
343 garbage collections when parsing an HTML document, which may often speed
344 up handling of a large document with many elements. The disadvantage is
345 that it allows Emacs's total memory usage to grow larger, which may result
346 in later garbage collections taking more time.")
347
348 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
349 ;;; Hook Variables
350 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
351 (defvar w3-load-hook nil "*Hooks to be run after loading w3.")
352 (defvar w3-mode-hook nil "*Hooks to be run after entering w3-mode.")
353 (defvar w3-file-prepare-hook nil
354 "*Hooks to be run before preparing a buffer.")
355 (defvar w3-file-done-hook nil "*Hooks to be run after preparing a buffer.")
356 (defvar w3-source-file-hook nil
357 "*Hooks to be run after getting document source.")
358
359 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
360 ;;; Figure out what flavor of emacs we are running
361 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
362 (defvar w3-running-xemacs (string-match "XEmacs\\|Lucid" emacs-version)
363 "*In XEmacs or Lucid Emacs?.")
364
365 (defvar w3-running-FSF19 (and (string-match "^19" emacs-version)
366 (not w3-running-xemacs))
367 "*In FSF v19 emacs?")
368
369 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
370 ;;; Link delimiting
371 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
372 (defvar w3-delimit-emphasis 'guess
373 "*Whether to use characters at the start and end of each bold/italic
374 region. Obsolete variable (almost) - all this should be specified by the
375 default stylesheet.")
376
377 (defvar w3-link-start-delimiter '("[[" . "{{")
378 "*Put this at front of link if w3-delimit-links is t.")
379
380 (defvar w3-link-end-delimiter '("]]" . "}}")
381 "*Put this at end of link if w3-delimit-links is t.")
382
383 (defvar w3-delimit-links 'guess
384 "*Put brackets around links? If this variable is eq to 'linkname, then
385 it will put the link # in brackets after the link text. If it is nil, then
386 it will not put anything. If it is non-nil and not eq to 'linkname, then
387 it will put [[ & ]] around the entire text of the link. Is initially set
388 to be t iff in normal emacs. Nil if in XEmacs or lucid emacs, since links
389 should be in different colors/fonts.")
390
391 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
392 ;;; embedded document variables
393 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
394 (defvar w3-mpeg-size 150 "*The height and width of an mpeg window.")
395 (defvar w3-mpeg-args '("-loop") "*Arguments to mpeg_play.")
396 (defvar w3-mpeg-program "mpeg_play" "*The mpeg_play executable.")
397 (defvar w3-delayed-movies nil "A list of mpeg movies for this buffer.")
398
399 (defvar w3-embedded-data-converters
400 '(("application/eqn" . w3-embed-eqn)
401 ("application/postscript" . w3-embed-postscript)
402 ("text/plain". w3-embed-text)
403 ("text/html" . w3-embed-text)
404 ("image/.*" . w3-embed-image))
405 "An assoc list of regular expressions to match against MIME content-types
406 for embedded data in HTML documents. The cdr is a function to be passed
407 to 'funcall', with the embedded data and content-type as the sole arguments
408 passed to the function.")
409
410 (if w3-running-xemacs
411 (progn
412 (condition-case ()
413 (require 'annotations)
414 (error nil))
415 (setq w3-embedded-data-converters
416 (cons (cons "video/mpeg" 'w3-embed-mpeg)
417 w3-embedded-data-converters))))
418
419 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
420 ;;; Graphics parsing stuff
421 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
422 (defvar w3-graphics-always-show-entities t
423 "*Set to t to always show graphic entities, regardless of the value of
424 w3-delay-image-loads. Useful if you keep the entities locally and aren't
425 worried about the transfer time on something that small.")
426
427 (defvar w3-graphics-list nil
428 "*List of graphics already read in.")
429
430 (defvar w3-delay-image-loads nil
431 "*Delay loading images for w3 or not?")
432
433 (defvar w3-delayed-images nil
434 "*A buffer-local variable holding positions and urls of images within
435 the buffer.")
436
437 (defvar w3-delay-mpeg-loads t
438 "*Whether to delay loading mpegs or not.")
439
440 (defvar w3-image-mappings
441 '(
442 ("image/x-xbitmap" . xbm)
443 ("image/xbitmap" . xbm)
444 ("image/xbm" . xbm)
445 ("image/jpeg" . jpeg)
446 ("image/gif" . gif)
447 ("image/png" . png)
448 ("image/x-fax" . g3fax)
449 ("image/x-raster" . rast)
450 ("image/windowdump" . xwd)
451 ("image/x-icon" . icon)
452 ("image/portable-graymap" . pgm)
453 ("image/portable-pixmap" . ppm)
454 ("image/x-pixmap" . xpm)
455 ("image/x-xpixmap" . xpm)
456 ("image/pict" . pict)
457 ("image/x-rgb" . sgi)
458 ("image/x-sgi" . sgi)
459 ("image/x-macpaint" . macpt)
460 ("image/x-targa" . tga)
461 ("image/tiff" . tiff)
462 ) "*How to map MIME types to image types for the `image' package.")
463
464 (defvar w3-color-use-reducing 'guess
465 "*Whether to use ppmquant/ppmdither to do color reducing for inlined images.
466 If you are using a 24bit display, you should set this to nil.")
467
468 (defvar w3-color-max-red 4
469 "*Max # of red cells to allocate for inlined images.")
470
471 (defvar w3-color-max-green 4
472 "*Max # of green cells to allocate for inlined images.")
473
474 (defvar w3-color-max-blue 4
475 "*Max # of blue cells to allocate for inlined images.")
476
477 (defvar w3-color-filter 'ppmdither
478 "*How to do color reducing on inlined images.
479 This should be a symbol, either ppmdither or ppmquant.
480 This variable only has any meaning if w3-color-use-reducing is non-nil.
481 Possible values are:
482
483 ppmquant :== Use the ppmquant program to reduce colors. The product
484 of w3-color-max-[red|green|blue] is used as the maximum
485 number of colors.
486 ppmdither :== Use the ppmdither program to reduce colors.
487
488 any string :== Use this string as the filter. No interpretation of it
489 is done at all. Example is:
490 ppmquant -fs -map ~/pixmaps/colormap.ppm")
491
492 (defvar w3-ppmdither-is-buggy t
493 "*The ppmdither which comes with pbmplus/netpbm releases through
494 1mar1994 at least ignores the 'maxval' in its input. This can cause
495 trouble viewing black-and-white gifs. If this variable is set, a
496 (harmless) 'pnmdepth 255' step is inserted to work around this bug.
497 You can test your ppmdither by doing
498 ppmmake white 100 100 | pnmdepth 1 | ppmdither | pnmdepth 255 | ppmhist
499 If the output has a single line like this:
500 255 255 255 255 10000
501 then it's safe to set this variable to nil.")
502
503 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
504 ;;; How to look up styles
505 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
506 (defvar w3-style-tags-assoc
507 '(
508 (b . ("*" . "*"))
509 (address . ("*" . "*"))
510 (byline . ("_" . "_"))
511 (cite . ("_" . "_"))
512 (cmd . ("*" . "*"))
513 (dfn . ("*" . "*"))
514 (em . ("~" . "~"))
515 (i . ("~" . "~"))
516 (q . ("\"" . "\""))
517 (removed . ("" . ""))
518 (s . ("" . ""))
519 (strong . ("*" . "*"))
520 (sub . ("" . ""))
521 (sup . ("" . ""))
522 (u . ("_" . "_"))
523 )
524 "*An assoc list of emphasis tags and their corresponding
525 begin and end characters.")
526
527 (defvar w3-header-chars-assoc
528 '(
529 (h1 . (?* ?* w3-upcase-region))
530 (h2 . (?* ?* w3-upcase-region))
531 (h3 . (?- ?- w3-upcase-region))
532 (h4 . (nil ?= nil))
533 (h5 . (nil ?= nil))
534 (h6 . (nil ?: nil)))
535 "*An assoc list of header tags and a list of formatting instructions.
536 This list consists of 3 items - the first item is no longer used. The
537 second item is the character to insert after the header. A <BR> is
538 inserted before and after this string. And the third is a function to
539 call on the region between the start and end of the header. This will
540 be called with 2 arguments, the buffer positions of the start and end
541 of the headers.")
542
543 ;; Store the database of HTML general entities.
544 (defvar w3-html-entities
545 '(
546 (excl . 33)
547 (quot . 34)
548 (num . 35)
549 (dollar . 36)
550 (percent . 37)
551 (amp . 38)
552 (rsquo . 39)
553 (apos . 39)
554 (lpar . 40)
555 (rpar . 41)
556 (times . 42)
557 (ast . 42)
558 (plus . 43)
559 (comma . 44)
560 (period . 46)
561 (colon . 58)
562 (semi . 59)
563 (lt . 60)
564 (equals . 61)
565 (gt . 62)
566 (quest . 63)
567 (commat . 64)
568 (lsqb . 91)
569 (rsqb . 93)
570 (uarr . 94)
571 (lowbar . 95)
572 (lsquo . 96)
573 (lcub . 123)
574 (verbar . 124)
575 (rcub . 125)
576 (tilde . 126)
577 (nbsp . 160)
578 (iexcl . 161)
579 (cent . 162)
580 (pound . 163)
581 (curren . 164)
582 (yen . 165)
583 (brvbar . 166)
584 (sect . 167)
585 (uml . 168)
586 (copy . 169)
587 (ordf . 170)
588 (laquo . 171)
589 (not . 172)
590 (shy . 173)
591 (reg . 174)
592 (macr . 175)
593 (deg . 176)
594 (plusmn . 177)
595 (sup2 . 178)
596 (sup3 . 179)
597 (acute . 180)
598 (micro . 181)
599 (para . 182)
600 (middot . 183)
601 (cedil . 184)
602 (sup1 . 185)
603 (ordm . 186)
604 (raquo . 187)
605 (frac14 . 188)
606 (frac12 . 189)
607 (frac34 . 190)
608 (iquest . 191)
609 (Agrave . 192)
610 (Aacute . 193)
611 (Acirc . 194)
612 (Atilde . 195)
613 (Auml . 196)
614 (Aring . 197)
615 (AElig . 198)
616 (Ccedil . 199)
617 (Egrave . 200)
618 (Eacute . 201)
619 (Ecirc . 202)
620 (Euml . 203)
621 (Igrave . 204)
622 (Iacute . 205)
623 (Icirc . 206)
624 (Iuml . 207)
625 (ETH . 208)
626 (Ntilde . 209)
627 (Ograve . 210)
628 (Oacute . 211)
629 (Ocirc . 212)
630 (Otilde . 213)
631 (Ouml . 214)
632 (times . 215)
633 (Oslash . 216)
634 (Ugrave . 217)
635 (Uacute . 218)
636 (Ucirc . 219)
637 (Uuml . 220)
638 (Yacute . 221)
639 (THORN . 222)
640 (szlig . 223)
641 (agrave . 224)
642 (aacute . 225)
643 (acirc . 226)
644 (atilde . 227)
645 (auml . 228)
646 (aring . 229)
647 (aelig . 230)
648 (ccedil . 231)
649 (egrave . 232)
650 (eacute . 233)
651 (ecirc . 234)
652 (euml . 235)
653 (igrave . 236)
654 (iacute . 237)
655 (icirc . 238)
656 (iuml . 239)
657 (eth . 240)
658 (ntilde . 241)
659 (ograve . 242)
660 (oacute . 243)
661 (ocirc . 244)
662 (otilde . 245)
663 (ouml . 246)
664 (divide . 247)
665 (oslash . 248)
666 (ugrave . 249)
667 (uacute . 250)
668 (ucirc . 251)
669 (uuml . 252)
670 (yacute . 253)
671 (thorn . 254)
672 (yuml . 255)
673
674 ;; Special handling of these
675 (frac56 . "5/6")
676 (frac16 . "1/6")
677 (frac45 . "4/5")
678 (frac35 . "3/5")
679 (frac25 . "2/5")
680 (frac15 . "1/5")
681 (frac23 . "2/3")
682 (frac13 . "1/3")
683 (frac78 . "7/8")
684 (frac58 . "5/8")
685 (frac38 . "3/8")
686 (frac18 . "1/8")
687
688 ;; The following 5 entities are not mentioned in the HTML 2.0
689 ;; standard, nor in any other HTML proposed standard of which I
690 ;; am aware. I am not even sure they are ISO entity names. ***
691 ;; Hence, some arrangement should be made to give a bad HTML
692 ;; message when they are seen.
693 (ndash . 45)
694 (mdash . 45)
695 (emsp . 32)
696 (ensp . 32)
697 (sim . 126)
698 (le . "<=")
699 (agr . "alpha")
700 (rdquo . "''")
701 (ldquo . "``")
702 (trade . "(TM)")
703 ;; To be done
704 ;; (shy . ????) ; soft hyphen
705 )
706 "*An assoc list of entity names and how to actually display them.")
707
708 (defvar w3-graphic-entities
709 '(
710 (archive "archive" )
711 (audio "audio" )
712 (binary.document "binary.document" )
713 (binhex.document "binhex.document" )
714 (calculator "calculator" )
715 (caution "caution" )
716 (cd.i "cd.i" )
717 (cd.rom "cd.rom" )
718 (clock "clock" )
719 (compressed.document "compressed.document" )
720 (disk.drive "disk.drive" )
721 (diskette "diskette" )
722 (document "document" )
723 (fax "fax" )
724 (filing.cabinet "filing.cabinet" )
725 (film "film" )
726 (fixed.disk "fixed.disk" )
727 (folder "folder" )
728 (form "form" )
729 (ftp "ftp" )
730 (glossary "glossary" )
731 (gopher "gopher" )
732 (home "home" )
733 (html "html" )
734 (image "image" )
735 (index "index" )
736 (keyboard "keyboard" )
737 (mail "mail" )
738 (mail.in "mail.in" )
739 (mail.out "mail.out" )
740 (map "map" )
741 (mouse "mouse" )
742 (new "new" )
743 (next "next" )
744 (notebook "notebook" )
745 (parent "parent" )
746 (play.fast.forward "play.fast.forward" )
747 (play.fast.reverse "play.fast.reverse" )
748 (play.pause "play.pause" )
749 (play.start "play.start" )
750 (play.stop "play.stop" )
751 (previous "previous" )
752 (printer "printer" )
753 (sadsmiley "sadsmiley" ":(")
754 (smiley "smiley" ":)")
755 (stop "stop" )
756 (summary "summary" )
757 (telephone "telephone" )
758 (telnet "telnet" )
759 (text.document "text.document" )
760 (tn3270 "tn3270" )
761 (toc "toc" )
762 (trash "trash" )
763 (unknown.document "unknown.document" )
764 (uuencoded.document "uuencoded.document" )
765 (work "work" )
766 (www "www" )
767 )
768 "List of graphical entity names and the tail end of a URL for them.
769 If there is a 3rd item in the list, it is the alternative text to use
770 for the image.")
771
772 (defvar w3-list-chars-assoc
773 '(
774 (ul . ("o" "*" "+" ">"))
775 (ol . ("." ")" "]" ":"))
776 (dl . ("o" "*" "+" ">")))
777 "An assoc list of characters to put at the front of list items. It is
778 keyed on the type of list, followed by a list of items. Each item should
779 be placed in the nth position of the list, where n is the nesting level it
780 should be used for. n starts at 1.")
781
782 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
783 ;;; Menu definitions
784 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
785 (defvar w3-navigate-menu nil)
786 (defvar w3-popup-menu
787 '("Emacs-W3 Commands"
788 ["Back" w3-backward-in-history t]
789 ["Forward" w3-forward-in-history t]
790 "---"
791 ["Add annotation" w3-annotation-add t]
792 )
793 "The shorter popup menu.")
794
795 (defvar w3-documentation-root "http://www.cs.indiana.edu/elisp/w3/docs/"
796 "*Where the w3 documentation lives. This MUST end in a slash.")
797
798 (defvar w3-graphlink-menu
799 '(("Open this Image (%s)" . w3-fetch)
800 ("Save this Image As..." . w3-download-url)
801 ("Copy this Image Location" . w3-save-url)
802 ("Information on this Image". w3-popup-image-info))
803 "An assoc list of function names and labels. These will be displayed
804 in a popup menu when the mouse is pressed on a hyperlink. Format is
805 ( (label . function)), function is called with one argument, the URL of
806 the link. Each label can have exactly one `%s' that will be replaced by
807 the URL of the link.")
808
809 (defvar w3-hyperlink-menu
810 '(("Open this Link (%s)" . w3-fetch)
811 ("Add Bookmark for this Link" . w3-hotlist-add-document)
812 ("New Window with this Link" . w3-fetch-other-frame)
813 ("Save Link As..." . w3-download-url)
814 ("Copy this Link Location to Clipboard" . w3-save-url)
815 ("Information on this Link" . w3-popup-info))
816 "An assoc list of function names and labels. These will be displayed
817 in a popup menu when the mouse is pressed on a hyperlink. Format is
818 ( (label . function)), function is called with one argument, the URL of
819 the link. Each label can have exactly one `%s' that will be replaced by
820 the URL of the link.")
821
822 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
823 ;;; Variables internal to W3, you should not change any of these
824 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
825 (defvar w3-form-radio-elements nil "Internal variable - do not touch!")
826 (defvar w3-form-elements nil "Internal variable - do not touch!")
827
828 (defvar w3-invisible-href-list nil
829 "A list of 'invisible' graphic links in the current buffer.")
830
831 (defconst w3-state-locator-variable
832 '(
833 :align
834 :background
835 :center
836 :depth
837 :figalt
838 :figdata
839 :fillcol
840 :form
841 :formnum
842 :header-start
843 :href
844 :link-args
845 :image
846 :lists
847 :map
848 :mpeg
849 :name
850 :needspace
851 :next-break
852 :nofill
853 :nowrap
854 :optarg
855 :options
856 :pre-start
857 :select
858 :secret
859 :table
860 :text-mangler
861 :title
862 :link-title
863 :w3-graphic
864 :zone
865 :label-text
866 :seen-this-url
867 )
868 "A list of all the various state kept in the drawing engine.
869 This is used by the `w3-get-state' and `w3-put-state' macros.")
870
871 (defvar w3-state-vector
872 (make-vector (1+ (length w3-state-locator-variable)) nil)
873 "Various state shit kept by emacs-w3.")
874
875 (defvar w3-user-stylesheet nil
876 "The global stylesheet for this user.")
877
878 (defvar w3-current-stylesheet nil
879 "The stylesheet for this document.")
880
881 (defvar w3-base-alist nil
882 "An assoc list of named BASE tags in the current document.")
883
884 (defvar w3-blinking-buffs nil
885 "A list of buffers with blinking text in them.
886 This is used to optimize when we change a face so the entire display
887 doesn't flash every second, whether we've run into a buffer that is
888 displaying blinking text or not.")
889
890 (defvar w3-last-fill-pos nil
891 "An internal variable for the new display engine that specifies the
892 last character position that was correctly filled.")
893
894 (defvar w3-last-tag nil
895 "An internal variable for the new display engine that specifies the
896 last tag processed.")
897
898 (defvar w3-table-info nil
899 "An internal variable for the new display engine for keeping table data
900 during the pre-pass parsing.")
901
902 (defvar w3-current-formatter nil
903 "Current formatter function.")
904
905 (defvar w3-draw-buffer nil
906 "Where we are currently drawing into. This _must_ be a buffer object
907 when it is referenced.")
908
909 (defvar w3-active-faces nil "The list of active faces.")
910 (defvar w3-active-voices nil "The list of active voices.")
911
912 (defvar w3-netscape-variable-mappings
913 '(("PRINT_COLOR" . ps-print-color-p)
914 ("DITHER_IMAGES" . w3-color-use-reducing)
915 ("SOCKS_HOST" . url-socks-host)
916 ("ORGANIZATION" . url-user-organization)
917 ("EMAIL_ADDRESS" . url-personal-mail-address)
918 ("REAL_NAME" . url-user-real-name)
919 ("NEWSGROUP_DESCRIPTIONS" . url-show-newsgroup-descriptions)
920 ("NNTPSERVER" . url-news-server)
921 ("AUTOLOAD_IMAGES" . w3-delay-image-loads)
922 ("HOME_DOCUMENT" . w3-default-homepage)
923 ("UNDERLINE_LINKS" . w3-underline-links)
924 ("TMPDIR" . url-temporary-directory))
925 "A mapping from netscape configuration file options to w3 variables.")
926
927 (defvar w3-acceptable-protocols-alist
928 '(("Gopher" . "gopher")
929 ("TN3270 (IBM Mainframe emulation)" . "tn3270")
930 ("Interactive Telnet Session" . "telnet")
931 ("Local file or file over ftp" . "file")
932 ("File on an http server" . "http")
933 ("Usenet newsgroup/article" . "news")
934 ("Mail session" . "mailto"))
935 "An assoc list of descriptive labels and the corresponding URL stub.")
936
937 (defvar w3-annotation-marker "<ncsa-annotation-format-1>")
938 (defvar w3-annotation-minor-mode nil "Whether we are in the minor mode.")
939 (defconst w3-bug-address "wmperry@spry.com" "Address of current maintainer.")
940 (defvar w3-continuation '(url-uncompress url-clean-text)
941 "List of functions to call to process a document completely.")
942 (defvar w3-current-annotation nil "URL of document we are annotating...")
943 (defvar w3-current-isindex nil "Is the current document a searchable index?")
944 (defvar w3-current-last-buffer nil "Last W3 buffer seen before this one.")
945 (defvar w3-current-links nil "An assoc list of <LINK> tags for this doc.")
946 (defvar w3-current-source nil "Source of current document.")
947 (defvar w3-current-parse nil "Parsed version of current document.")
948 (defconst w3-default-continuation '(url-uncompress url-clean-text)
949 "Default action to start with - cleans text and uncompresses if necessary.")
950 (defvar w3-editing-annotation nil "Are we editing an annotation or not?")
951 (defvar w3-find-this-link nil "Link to go to within a document.")
952 (defvar w3-hidden-forms nil "List of hidden form areas and their info.")
953 (defvar w3-hotlist nil "Default hotlist.")
954 (defvar w3-icon-path-cache nil "Cache of where we found icons for entities.")
955 (defvar w3-last-buffer nil "The last W3 buffer visited.")
956 (defvar w3-personal-annotations nil "Assoc list of personal annotations.")
957 (defvar w3-print-next nil "Should we latex & print the next doc?")
958 (defvar w3-roman-characters "ivxLCDMVX" "Roman numerals.")
959 (defvar w3-setup-done nil "Have we been through setup code yet?")
960 (defvar w3-source nil "Should we source the next document or not?")
961
962 (defvar w3-strict-width nil
963 "*This variable will control how wide emacs thinks the current window is.
964 This is useful when working in batch mode, and (window-width) returns the
965 wrong value. If the value is nil, it will use the value (window-width)
966 returns.")
967
968 (defvar w3-submit-button nil
969 "A widget object specifying what button was pressed to submit a form.")
970
971 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
972 ;;; buffer-local variables to keep around when going into w3-mode
973 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
974 (defvar w3-e19-hotlist-menu nil
975 "A menu for hotlists.")
976
977 (defvar w3-e19-links-menu nil
978 "A buffer-local menu for links.")
979
980 (defvar w3-id-positions nil "Internal use only.")
981 (defvar w3-imagemaps nil "Internal use only.")
982
983 (defvar w3-persistent-variables
984 '(
985 ;; So we can show the URL in the list-buffers listing
986 list-buffers-directory
987 ;; So widgets don't get lost
988 widget-field-new
989 w3-form-radio-elements
990 w3-form-elements
991 url-current-callback-func
992 url-current-content-length
993 url-current-file
994 url-current-mime-encoding
995 url-current-mime-headers
996 url-current-mime-type
997 url-current-mime-viewer
998 url-current-port
999 url-current-referer
1000 url-current-server
1001 url-current-type
1002 url-current-user
1003 w3-e19-links-menu
1004 w3-current-parse
1005 w3-current-annotation
1006 w3-current-isindex
1007 w3-current-last-buffer
1008 w3-current-links
1009 w3-current-source
1010 w3-delayed-images
1011 w3-delayed-movies
1012 w3-hidden-forms
1013 w3-invisible-href-list
1014 w3-state-vector
1015 w3-current-stylesheet
1016 w3-form-labels
1017 w3-id-positions
1018 w3-imagemaps
1019 )
1020 "A list of variables that should be preserved when entering w3-mode.")
1021
1022 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1023 ;;; Syntax stuff
1024 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1025 (defvar w3-parse-args-syntax-table
1026 (copy-syntax-table emacs-lisp-mode-syntax-table)
1027 "A syntax table for parsing sgml attributes.")
1028
1029 (modify-syntax-entry ?' "\"" w3-parse-args-syntax-table)
1030 (modify-syntax-entry ?` "\"" w3-parse-args-syntax-table)
1031 (modify-syntax-entry ?< "(>" w3-parse-args-syntax-table)
1032 (modify-syntax-entry ?> ")<" w3-parse-args-syntax-table)
1033
1034 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1035 ;;; Emulation stuff
1036 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1037 (defvar w3-netscape-emulation-minor-mode nil
1038 "Whether we are in the netscape emulation minor mode.")
1039 (defvar w3-netscape-emulation-minor-mode-map (make-sparse-keymap)
1040 "Keymap for netscape emulation.")
1041 (defvar w3-lynx-emulation-minor-mode nil
1042 "Whether we are in the lynx emulation minor mode.")
1043 (defvar w3-lynx-emulation-minor-mode-map (make-sparse-keymap)
1044 "Keymap for lynx emulation.")
1045 (defvar w3-last-search-item nil)
1046
1047 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1048 ;;; Startup items
1049 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1050 (defvar w3-form-labels nil "")
1051 (mapcar (function
1052 (lambda (var)
1053 (if (boundp var)
1054 (make-variable-buffer-local var)))) w3-persistent-variables)
1055 (make-variable-buffer-local 'w3-state-vector)
1056 (make-variable-buffer-local 'w3-current-stylesheet)
1057 (make-variable-buffer-local 'w3-base-alist)
1058 (make-variable-buffer-local 'w3-annotation-minor-mode)
1059 (make-variable-buffer-local 'w3-last-tag)
1060 (make-variable-buffer-local 'w3-last-fill-pos)
1061 (make-variable-buffer-local 'w3-table-info)
1062 (make-variable-buffer-local 'w3-draw-buffer)
1063 (make-variable-buffer-local 'w3-current-formatter)
1064 (make-variable-buffer-local 'w3-active-faces)
1065 (make-variable-buffer-local 'w3-default-style)
1066 (make-variable-buffer-local 'w3-netscape-emulation-minor-mode)
1067 (make-variable-buffer-local 'w3-lynx-emulation-minor-mode)
1068 (make-variable-buffer-local 'w3-last-search-item)
1069
1070
1071 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1072 ;;; Keymap definitions
1073 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1074 (defvar w3-mode-map (make-keymap) "Keymap to use in w3-mode.")
1075 (defvar w3-annotation-minor-mode-map (make-keymap) "Keymap for annotation.")
1076
1077 (suppress-keymap w3-mode-map)
1078
1079 (define-key w3-mode-map "h" (make-sparse-keymap))
1080 (define-key w3-mode-map "H" (make-sparse-keymap))
1081 (define-key w3-mode-map "a" (make-sparse-keymap))
1082
1083 (define-key w3-mode-map "ha" 'w3-hotlist-apropos)
1084 (define-key w3-mode-map "hd" 'w3-hotlist-delete)
1085 (define-key w3-mode-map "hi" 'w3-hotlist-add-document)
1086 (define-key w3-mode-map "hv" 'w3-show-hotlist)
1087 (define-key w3-mode-map "hr" 'w3-hotlist-rename-entry)
1088 (define-key w3-mode-map "hu" 'w3-use-hotlist)
1089 (define-key w3-mode-map "hA" 'w3-hotlist-append)
1090 (define-key w3-mode-map "hI" 'w3-hotlist-add-document-at-point)
1091 (define-key w3-mode-map "hR" 'w3-hotlist-refresh)
1092
1093 (define-key w3-mode-map "ai" 'w3-annotation-add)
1094 (define-key w3-mode-map "ad" 'w3-delete-personal-annotation)
1095 (define-key w3-mode-map "ae" 'w3-annotation-edit)
1096
1097 (define-key w3-mode-map "HF" 'w3-forward-in-history)
1098 (define-key w3-mode-map "HB" 'w3-backward-in-history)
1099 (define-key w3-mode-map "Hv" 'w3-show-history-list)
1100
1101 (define-key w3-mode-map " " 'w3-scroll-up)
1102 (define-key w3-mode-map "<" 'beginning-of-buffer)
1103 (define-key w3-mode-map ">" 'end-of-buffer)
1104 (define-key w3-mode-map "?" 'w3-help)
1105 (define-key w3-mode-map "B" 'w3-backward-in-history)
1106 (define-key w3-mode-map "F" 'w3-forward-in-history)
1107 (define-key w3-mode-map "G" 'w3-show-graphics)
1108 (define-key w3-mode-map "I" 'w3-popup-info)
1109 (define-key w3-mode-map "K" 'w3-save-this-url)
1110 (define-key w3-mode-map "P" 'w3-print-url-under-point)
1111 (define-key w3-mode-map "Q" 'w3-leave-buffer)
1112 (define-key w3-mode-map "R" 'w3-refresh-buffer)
1113 (define-key w3-mode-map "S" 'w3-source-document-at-point)
1114 (define-key w3-mode-map "U" 'w3-use-links)
1115 (define-key w3-mode-map "V" 'w3-view-this-url)
1116 (define-key w3-mode-map "\C-?" 'scroll-down)
1117 (define-key w3-mode-map "\C-c\C-b" 'w3-show-history-list)
1118 (define-key w3-mode-map "\C-c\C-v" 'w3-version)
1119 (define-key w3-mode-map "\C-o" 'w3-fetch)
1120 (define-key w3-mode-map "\M-M" 'w3-mail-document-under-point)
1121 (define-key w3-mode-map "\M-\C-i" 'w3-insert-this-url)
1122 (define-key w3-mode-map "\M-m" 'w3-mail-current-document)
1123 (define-key w3-mode-map "\M-s" 'w3-search)
1124 (define-key w3-mode-map "\M-\r" 'w3-follow-inlined-image)
1125 (define-key w3-mode-map "\r" 'w3-widget-button-press)
1126 (define-key w3-mode-map "b" 'widget-backward)
1127 (define-key w3-mode-map "c" 'w3-mail-document-author)
1128 (define-key w3-mode-map "f" 'widget-forward)
1129 (define-key w3-mode-map "g" 'w3-reload-document)
1130 (define-key w3-mode-map "i" 'w3-document-information)
1131 (define-key w3-mode-map "k" 'w3-save-url)
1132 (define-key w3-mode-map "l" 'w3-goto-last-buffer)
1133 (define-key w3-mode-map "m" 'w3-complete-link)
1134 (define-key w3-mode-map "n" 'widget-forward)
1135 (define-key w3-mode-map "o" 'w3-open-local)
1136 (define-key w3-mode-map "p" 'w3-print-this-url)
1137 (define-key w3-mode-map "q" 'w3-quit)
1138 (define-key w3-mode-map "r" 'w3-reload-document)
1139 (define-key w3-mode-map "s" 'w3-source-document)
1140 (define-key w3-mode-map "u" 'w3-leave-buffer)
1141 (define-key w3-mode-map "v" 'url-view-url)
1142 (define-key w3-mode-map "w" 'w3-submit-bug)
1143
1144 ;; Emulate some netscape stuff by default
1145 (define-key w3-mode-map [(control alt t)] 'url-list-processes)
1146 (define-key w3-mode-map [(control meta t)] 'url-list-processes)
1147
1148 ;; Widget navigation
1149 (define-key w3-mode-map "\t" 'widget-forward)
1150 (define-key w3-mode-map [(shift tab)] 'widget-backward)
1151
1152 (define-key w3-annotation-minor-mode-map "\C-c\C-c"
1153 'w3-personal-annotation-finish)
1154
1155 ;;; This is so we can use a consistent method of checking for mule support
1156 ;;; Emacs-based mule uses (boundp 'MULE), but XEmacs-based mule uses
1157 ;;; (featurep 'mule) - I choose to use the latter.
1158
1159 (if (boundp 'MULE)
1160 (provide 'mule))
1161 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1162 ;;; Keyword definitions
1163 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1164 (require 'w3-keyword)
1165 (provide 'w3-vars)