1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-17 17:58:46 +00:00

Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-43

Merge from emacs--devo--0

Patches applied:

 * emacs--devo--0  (patch 148-156)

   - Update from CVS
   - Merge from gnus--rel--5.10
   - Remove nick-abbrevs stuff from rcirc.el
   - rcirc.el update from Ryan Yeske

 * gnus--rel--5.10  (patch 57)

   - Copy/update icons from Gnus trunk
This commit is contained in:
Miles Bader 2006-03-13 12:19:58 +00:00
commit 71936d6753
94 changed files with 5547 additions and 899 deletions

View File

@ -1,3 +1,32 @@
2006-03-11 Miles Bader <miles@gnu.org>
* images/mail: New directory.
* images/attach.xpm, images/connect.xpm:
* images/contact.xpm, images/delete.xpm:
* images/describe.xpm, images/disconnect.xpm:
* images/exit.xpm, images/gnus/toggle-subscription.xpm:
* images/lock-broken.xpm, images/lock-ok.xpm:
* images/lock.xpm, images/mail/compose.xpm:
* images/mail/copy.xpm, images/mail/forward.xpm:
* images/mail/inbox.xpm, images/mail/move.xpm:
* images/mail/not-spam.xpm, images/mail/outbox.xpm:
* images/mail/preview.xpm, images/mail/reply-all.xpm:
* images/mail/reply.xpm, images/mail/save-draft.xpm:
* images/mail/save.xpm, images/mail/send.xpm:
* images/mail/spam.xpm, images/next-page.xpm:
* images/refresh.xpm, images/separator.xpm:
* images/sort-ascending.xpm:
* images/sort-column-ascending.xpm:
* images/sort-criteria.xpm, images/sort-descending.xpm:
* images/sort-row-ascending.xpm:
New icons, copied from Gnus trunk (originally from Gnome 2.6).
2006-03-11 Bill Wohler <wohler@newt.com>
* NEWS: Document `image-load-path-for-library'. Note that all
images have been moved from lisp into etc/images in `find-image'
item. Fix typo in `copy-tree'.
2006-03-09 Reiner Steib <Reiner.Steib@gmx.de>
* TUTORIAL.de: Replace "Schreiben" by "Dr,A|(Bcken" where appropriate.

View File

@ -3566,7 +3566,7 @@ associates a numeric ordering of each element added to the list.
+++
*** New function `copy-tree' makes a copy of a tree.
It recursively copyies through both CARs and CDRs.
It recursively copies through both CARs and CDRs.
+++
*** New function `delete-dups' deletes `equal' duplicate elements from a list.
@ -4959,6 +4959,15 @@ explicitly; for example, if an image is put in etc/images/foo/bar.xpm:
(defimage foo-image '((:type xpm :file "foo/bar.xpm")))
Note that all images formerly located in the lisp directory have been
moved to etc/images.
+++
*** New function `image-load-path-for-library' returns a suitable
search path for images relative to library. This function is useful in
external packages to save users from having to update
`image-load-path'.
+++
*** The new variable `max-image-size' defines the maximum size of
images that Emacs will load and display.

View File

@ -1221,6 +1221,10 @@ resources to load all the colors it needs.
A solution is to exit the offending X programs before starting Emacs.
"undefined color" messages can also occur if the RgbPath entry in the
X configuration file is incorrect, or the rgb.txt file is not where
X expects to find it.
*** Improving performance with slow X connections.
There are several ways to improve this performance, any subset of which can

View File

@ -60,6 +60,10 @@ to the FSF.
** M-! M-n should fetch the buffer-file-name as the default.
** Redesign the load-history data structure so it can cope better
with evaluating definitions of the same function from different files,
recording which file the latest definition came from.
* Important features:
** Provide user-friendly ways to list all available font families,

126
etc/images/attach.xpm Normal file
View File

@ -0,0 +1,126 @@
/* XPM */
static char * stock_attach_xpm[] = {
"24 24 99 2",
" c None",
". c #000000",
"+ c #010101",
"@ c #515151",
"# c #9A9A9A",
"$ c #CFCFCF",
"% c #6F6F6F",
"& c #464646",
"* c #A5A5A5",
"= c #E2E2E2",
"- c #FFFFFF",
"; c #F6F6F6",
"> c #8A8A8A",
", c #393939",
"' c #1C1C1C",
") c #8B8B8B",
"! c #E6E6E6",
"~ c #EEEEEE",
"{ c #E1E1E1",
"] c #F8F8F8",
"^ c #F7F7F7",
"/ c #CCCCCC",
"( c #565656",
"_ c #3E3E3E",
": c #818181",
"< c #D4D4D4",
"[ c #E7E7E7",
"} c #D7D7D7",
"| c #FAFAFA",
"1 c #F9F9F9",
"2 c #C2C2C2",
"3 c #CBCBCB",
"4 c #F5F5F5",
"5 c #D9D9D9",
"6 c #030303",
"7 c #545454",
"8 c #DEDEDE",
"9 c #B3B3B3",
"0 c #797979",
"a c #F4F4F4",
"b c #9D9D9D",
"c c #282828",
"d c #FBFBFB",
"e c #A6A6A6",
"f c #C5C5C5",
"g c #F0F0F0",
"h c #CACACA",
"i c #C7C7C7",
"j c #F2F2F2",
"k c #CECECE",
"l c #C4C4C4",
"m c #D5D5D5",
"n c #DADADA",
"o c #F3F3F3",
"p c #858585",
"q c #BEBEBE",
"r c #D3D3D3",
"s c #DCDCDC",
"t c #9C9C9C",
"u c #484848",
"v c #A7A7A7",
"w c #D6D6D6",
"x c #C8C8C8",
"y c #C6C6C6",
"z c #4C4C4C",
"A c #EAEAEA",
"B c #E5E5E5",
"C c #D8D8D8",
"D c #ADADAD",
"E c #BCBCBC",
"F c #E0E0E0",
"G c #F1F1F1",
"H c #909090",
"I c #686868",
"J c #A2A2A2",
"K c #C0C0C0",
"L c #C1C1C1",
"M c #787878",
"N c #AEAEAE",
"O c #151515",
"P c #D0D0D0",
"Q c #979797",
"R c #727272",
"S c #4A4A4A",
"T c #ECECEC",
"U c #ACACAC",
"V c #BABABA",
"W c #DDDDDD",
"X c #DBDBDB",
"Y c #B1B1B1",
"Z c #232323",
"` c #696969",
" . c #B7B7B7",
".. c #828282",
"+. c #404040",
"@. c #969696",
"#. c #323232",
"$. c #E8E8E8",
"%. c #121212",
" ",
" . . . . . ",
" . . . . ",
" . + @ # $ % . ",
" . . & * = - - ; > , ",
" . ' ) ! ~ { - ] ^ ; / ( ",
" . _ : < ' [ } | 1 ] 2 3 4 5 : . ",
" 6 7 ! - - - . } 8 9 0 . = ; 4 a b c ",
" . ; - - | | d . e f g ] . = 2 h a i ( ",
" . j ] 1 k l f . m 1 ] ] . 9 n a o o 0 . ",
" p - ] q 1 1 . r s 2 2 . = 4 a o j t c ",
" u - ^ ^ ] ] . v w ^ ; . = a l x j y z ",
" . A - ; q 2 . B C ; 4 . D E A F G A H . ",
" I - 4 ; ; J . K L . M w o j G G m N O ",
" , - a 4 4 n # . . 0 w j j G w P Q R S ",
" . T - a U V W o k X T } w Y : ( Z . ",
" ` - o o o o j j } ...+.Z . . ",
" c - o j j } q @.#.Z . ",
" . ! $./ # +.Z . . ",
" , .., %.. ",
" . . ",
" ",
" ",
" "};

85
etc/images/connect.xpm Normal file
View File

@ -0,0 +1,85 @@
/* XPM */
static char * stock_connect_xpm[] = {
"24 24 58 1",
" c None",
". c #000000",
"+ c #989389",
"@ c #807D74",
"# c #C6C2BA",
"$ c #34332D",
"% c #B7B3AA",
"& c #C4C2BD",
"* c #EAE8E3",
"= c #9C978D",
"- c #BCB9B2",
"; c #363433",
"> c #E2E1DD",
", c #F0EFEC",
"' c #AAA7A0",
") c #F0EEEB",
"! c #B2B0AB",
"~ c #F9F9F8",
"{ c #C5C3BD",
"] c #0F0F0D",
"^ c #F2F0ED",
"/ c #EBEAE6",
"( c #8A857B",
"_ c #ECEBE8",
": c #EEECEA",
"< c #9F9C93",
"[ c #F3F2F0",
"} c #E8E7E4",
"| c #E3E1DD",
"1 c #78756B",
"2 c #BEBBB5",
"3 c #B3B1AA",
"4 c #7D786E",
"5 c #E1DFDB",
"6 c #D1D0CC",
"7 c #938E84",
"8 c #C8C5BF",
"9 c #A7A298",
"0 c #010101",
"a c #8C8981",
"b c #A6A29B",
"c c #726D63",
"d c #CECAC3",
"e c #A7A49E",
"f c #7E7A70",
"g c #A09D94",
"h c #817D73",
"i c #6C685E",
"j c #3C3933",
"k c #8B877E",
"l c #706C62",
"m c #B1ADA4",
"n c #97938A",
"o c #625E54",
"p c #6A655B",
"q c #37342D",
"r c #646056",
"s c #8B877D",
" ",
" ",
" ",
" ",
" ",
" ",
" .. .. ",
" ..+@.#@.. ",
" $%&*@.*@=-; ",
" .>,'*@.)@!~{] ",
"......@>,'*@.)@!~{@.....",
"*******^/(_@.:@<[}|*****",
"@@@@@1123451.6@789@@@@@@",
".....01abcd1.e@fghi.....",
" ]abcd1.e@fgh] ",
" ]jklmi.n@opq. ",
" ]]+r.s@.. ",
" ]] ]. ",
" ",
" ",
" ",
" ",
" ",
" "};

129
etc/images/contact.xpm Normal file
View File

@ -0,0 +1,129 @@
/* XPM */
static char * stock_contact_xpm[] = {
"24 24 102 2",
" c None",
". c #000000",
"+ c #E3E1DE",
"@ c #ECEBE7",
"# c #F0EEEB",
"$ c #D2CFC9",
"% c #81817F",
"& c #4C4C4A",
"* c #ECEAE6",
"= c #ECEAE5",
"- c #EBE9E5",
"; c #D2CEC8",
"> c #D9C7B8",
", c #D9C7B9",
"' c #D8C5B8",
") c #D1C0B3",
"! c #D6C5B7",
"~ c #EBEAE5",
"{ c #D3D0C9",
"] c #CDBCAC",
"^ c #AFA093",
"/ c #3A3531",
"( c #443F3A",
"_ c #AE9F93",
": c #CBBAAB",
"< c #4E4E4C",
"[ c #595957",
"} c #595857",
"| c #7D7C7A",
"1 c #D3D0CA",
"2 c #C6B5A4",
"3 c #3D3833",
"4 c #433D37",
"5 c #C2B0A2",
"6 c #D4D1CA",
"7 c #B0A08E",
"8 c #261F18",
"9 c #D37D1E",
"0 c #D68021",
"a c #B26616",
"b c #27241F",
"c c #9C8E7F",
"d c #EAE9E5",
"e c #A29281",
"f c #2E2012",
"g c #CC751A",
"h c #CC761A",
"i c #BF6C16",
"j c #24211C",
"k c #8E8170",
"l c #EAE8E3",
"m c #E9E8E3",
"n c #E9E7E3",
"o c #8E7F6C",
"p c #221E17",
"q c #C56D14",
"r c #7D450D",
"s c #AF5F11",
"t c #221E19",
"u c #7F7260",
"v c #E9E7E2",
"w c #E8E6E1",
"x c #E7E5E1",
"y c #E7E5E0",
"z c #D5D1CB",
"A c #3E372C",
"B c #1C1F1F",
"C c #301B06",
"D c #542D07",
"E c #291B0E",
"F c #151412",
"G c #473F33",
"H c #E8E6E2",
"I c #546371",
"J c #849CB4",
"K c #56687C",
"L c #343332",
"M c #495868",
"N c #566D85",
"O c #293643",
"P c #E6E4DF",
"Q c #E5E4DE",
"R c #EEEDE9",
"S c #7B95AF",
"T c #7B96B0",
"U c #68819B",
"V c #8999AA",
"W c #5A7088",
"X c #607A96",
"Y c #5B7691",
"Z c #E5E3DE",
"` c #4B4A48",
" . c #757471",
".. c #E6E3DE",
"+. c #3B3A39",
"@. c #747371",
"#. c #D3CFC8",
"$. c #E2E1DD",
"%. c #E7E4E0",
"&. c #D2CFC8",
"*. c #D1D0CA",
"=. c #C2C0B9",
" ",
" ",
" ",
" . . . . . . . . . . . . . . . . . . . . ",
" . + @ # # # # # # # # # # # # # # # # # $ . ",
" . # % . . . . . . . & * = - - - - - - - ; . ",
" . # . > , ' ) ! > , . * * ~ ~ ~ ~ - - ~ { . ",
" . # . ] ^ / . ( _ : . * < [ ~ } } | - ~ 1 . ",
" . # . 2 3 . . . 4 5 . * * ~ ~ - - - - - 6 . ",
" . # . 7 8 9 0 a b c . * [ < | [ - } | d 6 . ",
" . # . e f g h i j k . * * l l m n n n n 6 . ",
" . # . o p q r s t u . v v w w w x y y y z . ",
" . # . A B C D E F G . H H y y y y y y y 6 . ",
" . # . I J K L M N O . y y P P P P P P Q { . ",
" . R . S T U V W X Y . y y P P P P Z Z Z { . ",
" . d ` . . . . . . . ` y y ...+.+.Z @.Z #.. ",
" . $.y y y y y y y y y %.P Z Z Z Z Z Z Z &.. ",
" . *.6 z 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 =.. ",
" . . . . . . . . . . . . . . . . . . . . . ",
" ",
" ",
" ",
" ",
" "};

270
etc/images/delete.xpm Normal file
View File

@ -0,0 +1,270 @@
/* XPM */
static char * stock_delete_xpm[] = {
"24 24 243 2",
" c None",
". c #000000",
"+ c #1C1C1C",
"@ c #767676",
"# c #E6E6E6",
"$ c #D3D3D3",
"% c #C3C3C3",
"& c #909090",
"* c #494949",
"= c #48473D",
"- c #BAB8A6",
"; c #E2E2DF",
"> c #F1F1F0",
", c #EAE9E6",
"' c #F2F2EE",
") c #EBEAE5",
"! c #C1C0B5",
"~ c #57564A",
"{ c #525146",
"] c #A8A68F",
"^ c #BDBBA1",
"/ c #C0BEA3",
"( c #A3A18A",
"_ c #6D6C5C",
": c #7C7C72",
"< c #4C4C49",
"[ c #45453F",
"} c #44433A",
"| c #6F6F67",
"1 c #C6C5B9",
"2 c #B6B59B",
"3 c #6D6C5D",
"4 c #B3B19B",
"5 c #A7A68E",
"6 c #908F7A",
"7 c #AAA993",
"8 c #CCCBB5",
"9 c #D0CEBA",
"0 c #D5D3C1",
"a c #AEADA3",
"b c #94938A",
"c c #454442",
"d c #232321",
"e c #353431",
"f c #292823",
"g c #1E1E1A",
"h c #535246",
"i c #ADAC93",
"j c #929189",
"k c #C2C1AF",
"l c #B1AF96",
"m c #ACAA92",
"n c #93927D",
"o c #080808",
"p c #D1D0C1",
"q c #D6D5C4",
"r c #DFDED1",
"s c #CECDC0",
"t c #ACACA6",
"u c #908F8A",
"v c #7E7D77",
"w c #5C5C55",
"x c #47463E",
"y c #656456",
"z c #777665",
"A c #807E6F",
"B c #BEBDA7",
"C c #B5B39A",
"D c #A19F88",
"E c #D9D8CC",
"F c #F6F5F2",
"G c #DBDAD1",
"H c #DAD9CE",
"I c #E5E4D9",
"J c #D0CFC3",
"K c #D3D3C9",
"L c #CAC9BC",
"M c #B7B6A6",
"N c #B8B6A1",
"O c #B0AF96",
"P c #B9B89D",
"Q c #B9B79D",
"R c #B8B69C",
"S c #C4C2A9",
"T c #AFAD97",
"U c #8B8976",
"V c #AAA998",
"W c #B6B6B2",
"X c #F9F9F7",
"Y c #FAFAF8",
"Z c #F4F4F0",
"` c #E2E1DA",
" . c #D9D9CE",
".. c #DBDACF",
"+. c #D3D1BE",
"@. c #C5C4AC",
"#. c #D6D5C3",
"$. c #CDCCBF",
"%. c #BBBAAD",
"&. c #7C7A69",
"*. c #717060",
"=. c #131313",
"-. c #999882",
";. c #AFAE9D",
">. c #C3C3BE",
",. c #DEDEDC",
"'. c #E9E9E8",
"). c #FBFBFA",
"!. c #FDFDFC",
"~. c #FDFDFD",
"{. c #FCFBFA",
"]. c #F2F2EF",
"^. c #EAE9E3",
"/. c #C0BFB1",
"(. c #959484",
"_. c #787766",
":. c #6E6D5D",
"<. c #5B5B4D",
"[. c #5D5C4F",
"}. c #A3A293",
"|. c #B8B7A6",
"1. c #D8D7D0",
"2. c #DBDBD4",
"3. c #D3D2CA",
"4. c #C8C8C3",
"5. c #C6C5BD",
"6. c #BDBCAD",
"7. c #BAB8A8",
"8. c #9F9E8B",
"9. c #8E8C78",
"0. c #8C8B77",
"a. c #7A7968",
"b. c #6C6B5D",
"c. c #4E4D45",
"d. c #424242",
"e. c #7B7B73",
"f. c #9F9F96",
"g. c #D2D1C7",
"h. c #DCDBD2",
"i. c #CCCBBE",
"j. c #D1D0C2",
"k. c #C4C3B6",
"l. c #9A9883",
"m. c #807F6D",
"n. c #7D7C6B",
"o. c #6A695E",
"p. c #40403E",
"q. c #37372D",
"r. c #0F0F0F",
"s. c #383734",
"t. c #787875",
"u. c #999893",
"v. c #8A897E",
"w. c #B3B2A4",
"x. c #AAAA9E",
"y. c #878673",
"z. c #8F8D79",
"A. c #626155",
"B. c #545451",
"C. c #31312E",
"D. c #2B2B23",
"E. c #71715D",
"F. c #57574B",
"G. c #42423A",
"H. c #262620",
"I. c #212121",
"J. c #1B1B1B",
"K. c #242424",
"L. c #161613",
"M. c #2A2A22",
"N. c #303027",
"O. c #3F3F34",
"P. c #7A7A65",
"Q. c #5B5B51",
"R. c #858576",
"S. c #76766B",
"T. c #98988E",
"U. c #75756B",
"V. c #515146",
"W. c #7F7F74",
"X. c #6A6A58",
"Y. c #404035",
"Z. c #626251",
"`. c #545445",
" + c #3E3E33",
".+ c #555546",
"++ c #34342B",
"@+ c #515143",
"#+ c #85856E",
"$+ c #5D5D54",
"%+ c #919182",
"&+ c #828278",
"*+ c #AAAAA3",
"=+ c #7A7A71",
"-+ c #4E4E45",
";+ c #8A8A80",
">+ c #7C7C6D",
",+ c #424237",
"'+ c #606052",
")+ c #5A5A4A",
"!+ c #3C3C32",
"~+ c #4E4E41",
"{+ c #35352C",
"]+ c #ACAC9C",
"^+ c #85857B",
"/+ c #BBBBB3",
"(+ c #A3A39A",
"_+ c #54544B",
":+ c #93938A",
"<+ c #919185",
"[+ c #686856",
"}+ c #414136",
"|+ c #434337",
"1+ c #A4A493",
"2+ c #C1C1B6",
"3+ c #B1B1A2",
"4+ c #6B6B5F",
"5+ c #9D9D8B",
"6+ c #848470",
"7+ c #71715E",
"8+ c #A5A594",
"9+ c #C2C2B7",
"0+ c #7B7B65",
"a+ c #5F5F4F",
"b+ c #666654",
"c+ c #49493C",
"d+ c #575748",
"e+ c #57574A",
"f+ c #7D7D6D",
"g+ c #767669",
"h+ c #B3B3A8",
"i+ c #A1A194",
"j+ c #6D6D61",
"k+ c #B3B3A5",
"l+ c #696957",
"m+ c #414135",
"n+ c #565647",
"o+ c #444438",
"p+ c #595951",
"q+ c #585849",
"r+ c #4E4E40",
"s+ c #747467",
"t+ c #616153",
" . . . . . . ",
" . + @ # $ % & * . . ",
" . . . = - ; > , ' ) ! ~ { . . . ",
" . ] ^ / ( _ : < [ } | 1 2 3 4 5 6 . ",
" . 7 8 9 0 a b c d e f g h i j k l m n . ",
" o p 8 q r s t u v w x y z A B C 2 C D . ",
" . E F G H I J K L M N O D P Q R S T U . ",
" . V W X Y Z ` ...0 +.S / @.#.$.%.&.*.. ",
" =.-.;.>.,.'.).!.~.{.X ].^.G /.(._.:.<.. ",
" . [.n }.|.1.2.3.4.5.6.7.8.9.0.9.a.b.c. ",
" . d.e.f.g.h.i.j.k.l l l l.m.n.o.p.. ",
" . q.r.s.t.u.v.w.x.( y.z.A.B.C.. D.. ",
" . E.F.G.H.I.J.. K.. . . . L.M.N.O.. ",
" . P.Q.R.S.T.U.V.W.X.Y.Z.`. +.+++@+. ",
" . #+$+%+&+*+=+-+;+>+,+'+)+!+~+{+`.. ",
" . #+Q.]+^+/+(+_+:+<+,+'+[+}+X.|+X.. ",
" . #+Q.1+^+2+3+4+3+5+`.6+7+|+X.|+X.. ",
" . #+Q.8+^+9+3+4+3+5+`.6+7+|+X.|+X.. ",
" . #+Q.5+^+2+3+4+3+5+`.6+7+|+X.|+X.. ",
" . 0+Q.1+^+2+3+4+3+5+`.6+7+|+X.|+a+. ",
" . b+Q.1+&+2+3+4+3+5+`.6+7+|+X.c+d+. ",
" . e+f+g+h+i+j+k+5+`.6+l+m+n+o+. . ",
" . . . p+q+r+s+t+~+c+c+. . . ",
" . . . . . . . . . . "};

95
etc/images/describe.xpm Normal file
View File

@ -0,0 +1,95 @@
/* XPM */
static char * stock_properties_xpm[] = {
"24 24 68 1",
" c None",
". c #000000",
"+ c #74716E",
"@ c #C9C4BD",
"# c #DFDAD2",
"$ c #F4EFE5",
"% c #F2ECE1",
"& c #FFFFFF",
"* c #4C4B48",
"= c #EEE5D4",
"- c #ECE2CF",
"; c #EADFC9",
"> c #F9F9F9",
", c #E2D2B1",
"' c #F4F4F4",
") c #EEEEEE",
"! c #959595",
"~ c #F5F5F5",
"{ c #F6F6F6",
"] c #D9D9D9",
"^ c #C7B99C",
"/ c #E9E9E9",
"( c #787878",
"_ c #E1E1E1",
": c #E2E2E2",
"< c #C8C8C8",
"[ c #877E69",
"} c #9A8F78",
"| c #DEDEDE",
"1 c #E3E3E3",
"2 c #929292",
"3 c #AFA389",
"4 c #ACACAC",
"5 c #A2A2A2",
"6 c #E4E4E4",
"7 c #BCBCBC",
"8 c #939393",
"9 c #EDEDED",
"0 c #EFEFEF",
"a c #F0F0F0",
"b c #E5E5E5",
"c c #E7E7E7",
"d c #E8E8E8",
"e c #EAEAEA",
"f c #EBEBEB",
"g c #BEBEBE",
"h c #F1F1F1",
"i c #DFDFDF",
"j c #F3F3F3",
"k c #E0E0E0",
"l c #ABABAB",
"m c #AEAEAE",
"n c #AFAFAF",
"o c #ADADAD",
"p c #B0B0B0",
"q c #B1B1B1",
"r c #F7F7F7",
"s c #B3B3B3",
"t c #F8F8F8",
"u c #B4B4B4",
"v c #B5B5B5",
"w c #B6B6B6",
"x c #FAFAFA",
"y c #FBFBFB",
"z c #DCDCDC",
"A c #DDDDDD",
"B c #E6E6E6",
"C c #969696",
" ",
" ",
" ",
" ......... ",
" .+@#$%.&&. ",
" *=---;.&>. ",
" .......;.,,,,.'). ",
" !~~{].;.^.,^^./(.. ",
" .~_:<.;.[.^.}..|].. ",
" .~:1.;.2.[.3.4...5. ",
" .{16..7/8.[.49)0a|. ",
" .{6bcd/ef8.g9)0ahi. ",
" .{bcd/ef9ef9)0ahjk. ",
" .{cllefmnomnppqj'_. ",
" .rd/ef9)09)0ahj'~:. ",
" .r/4o9)ppnppqss~{1. ",
" .tef9)0ah0ahj'~{rb. ",
" .>9npahssqssuvw>xc. ",
" .>)0ahj'~j'~{r>xyd. ",
" .nzA|ik_:k_:1bBcdC. ",
" ................. ",
" ",
" ",
" "};

69
etc/images/disconnect.xpm Normal file
View File

@ -0,0 +1,69 @@
/* XPM */
static char * stock_disconnect_xpm[] = {
"24 24 42 1",
" c None",
". c #000000",
"+ c #989389",
"@ c #807D74",
"# c #C6C2BA",
"$ c #43423C",
"% c #B7B3AA",
"& c #C4C2BD",
"* c #EAE8E3",
"= c #E2E1DD",
"- c #F0EFEC",
"; c #AAA7A0",
"> c #C5D2C8",
", c #E9EEEA",
"' c #F0EEEB",
") c #F2F0ED",
"! c #EBEAE6",
"~ c #8A857B",
"{ c #ECEBE8",
"] c #EEECEA",
"^ c #78756B",
"/ c #BEBBB5",
"( c #B3B1AA",
"_ c #7D786E",
": c #E1DFDB",
"< c #D1D0CC",
"[ c #010101",
"} c #8C8981",
"| c #A6A29B",
"1 c #726D63",
"2 c #CECAC3",
"3 c #A7A49E",
"4 c #0F0F0D",
"5 c #F0F3F1",
"6 c #272622",
"7 c #8B877E",
"8 c #706C62",
"9 c #B1ADA4",
"0 c #6C685E",
"a c #97938A",
"b c #646056",
"c c #8B877D",
" ",
" ",
" ",
" ",
" ",
" ",
" .. ..",
" ..+@. .#@",
" $%&*@.... .*@",
" .=-;*@.>>,. .'@",
".....@=-;*@.... .'@",
"******)!~{@. .]@",
"@@@@^^/(_:^. .<@",
"....[^}|12^.... .3@",
" 4}|12^.>>5. .3@",
" 67890.... .a@",
" 44+b. .c@",
" 44 4.",
" ",
" ",
" ",
" ",
" ",
" "};

View File

@ -1,36 +1,167 @@
/* XPM */
static char *magick[] = {
/* columns rows colors chars-per-pixel */
"24 24 6 1",
" c Gray0",
". c #ae6e66e76a0a",
"X c #c6c67d7d8181",
"o c #cdcd86868989",
"O c #e4e4e4e4dcdc",
"+ c None",
/* pixels */
"++++++++++++++++++++++++",
"++++++++++++++++++++++++",
"++++++++++++++++++++++++",
"++++++++++++++++++++++++",
"++++++++++++++++++++++++",
"++++++++++ +++++",
"++++++++++ OOOOOO +++++",
"++++++++++ OOOOOO +++++",
"++++++++ OOOOOO +++++",
"++++++++ . OOOOOO +++++",
"+++ .X OO O +++++",
"+++ ......Xo O O +++++",
"+++ ......Xo OOOO +++++",
"+++ .X OOOOO +++++",
"++++++++ . OOOOOO +++++",
"++++++++ OOOOOO +++++",
"++++++++++ OOOO +++++",
"++++++++++ OO +++++",
"++++++++++ +++++",
"++++++++++++++++++++++++",
"++++++++++++++++++++++++",
"++++++++++++++++++++++++",
"++++++++++++++++++++++++",
"++++++++++++++++++++++++"
};
static char * stock_exit_xpm[] = {
"24 24 140 2",
" c None",
". c #000000",
"+ c #D6D6D4",
"@ c #BDBDBC",
"# c #A8A8A4",
"$ c #92928F",
"% c #727370",
"& c #61615E",
"* c #20201F",
"= c #F1F1EF",
"- c #E6E6E4",
"; c #DADAD7",
"> c #CFCFCD",
", c #C4C4C1",
"' c #A8A8A5",
") c #767674",
"! c #777774",
"~ c #1E1E1D",
"{ c #B9B9B7",
"] c #AEAEAC",
"^ c #8F8F8D",
"/ c #262626",
"( c #414140",
"_ c #E9836C",
": c #DEDEDC",
"< c #C5C5C2",
"[ c #636362",
"} c #040504",
"| c #040604",
"1 c #050705",
"2 c #E87B62",
"3 c #E67056",
"4 c #D5D5D3",
"5 c #DBDBD8",
"6 c #D0D0CE",
"7 c #080A07",
"8 c #0A0C09",
"9 c #0A0D09",
"0 c #0B0E0A",
"a c #F0B0A1",
"b c #EB8D77",
"c c #DF421E",
"d c #E97E66",
"e c #CBCBC8",
"f c #0C0F0B",
"g c #0F130D",
"h c #10140E",
"i c #11150F",
"j c #EFA392",
"k c #BFBFBD",
"l c #5D5D5C",
"m c #10150F",
"n c #141912",
"o c #161C14",
"p c #171D15",
"q c #B7B7B4",
"r c #0C0C0C",
"s c #192017",
"t c #1C2319",
"u c #1D241A",
"v c #CD8484",
"w c #990000",
"x c #701616",
"y c #A6A6A5",
"z c #181E16",
"A c #1E261B",
"B c #212A1E",
"C c #222B1F",
"D c #4F0000",
"E c #AEAEAB",
"F c #1D261B",
"G c #242E21",
"H c #273224",
"I c #283325",
"J c #580000",
"K c #B5B5B3",
"L c #293426",
"M c #2D3929",
"N c #2E3A2A",
"O c #7C4343",
"P c #6A0000",
"Q c #720000",
"R c #BDBDBB",
"S c #232C20",
"T c #2A3526",
"U c #303C2B",
"V c #33402E",
"W c #C5C5C3",
"X c #1E261C",
"Y c #303D2C",
"Z c #374532",
"` c #394834",
" . c #500000",
".. c #CDCDCB",
"+. c #1B2319",
"@. c #253022",
"#. c #303E2D",
"$. c #394934",
"%. c #3D4E38",
"&. c #9D9D9B",
"*. c #565655",
"=. c #2C3828",
"-. c #40503A",
";. c #43553E",
">. c #BABAB7",
",. c #777776",
"'. c #323830",
"). c #232C1F",
"!. c #313E2D",
"~. c #3B4A36",
"{. c #43553D",
"]. c #485B42",
"^. c #4A5E44",
"/. c #F0F0EE",
"(. c #E5E5E3",
"_. c #C6C6C3",
":. c #ACACAB",
"<. c #8B8B8A",
"[. c #32392F",
"}. c #2C3728",
"|. c #3F503A",
"1. c #465840",
"2. c #4B5E44",
"3. c #4E6347",
"4. c #506549",
"5. c #DADAD8",
"6. c #7A7D78",
"7. c #333C30",
"8. c #475A41",
"9. c #4F6348",
"0. c #53694C",
"a. c #566C4E",
"b. c #576D4F",
"c. c #91968F",
"d. c #3B4736",
"e. c #42543C",
"f. c #51674A",
"g. c #586F50",
"h. c #5B7353",
"i. c #5C7454",
" ",
" . . . . . . . . . . . . . . . . ",
" . + @ # $ % & & & * . . . . . . ",
" . = - ; > , ' ) ! ~ . . . . . . ",
" . . = - ; > , { ] ^ / . . . . . . ",
" . . . = - ; > , { { { ( . . . . . . ",
" . _ . : - ; > < { { { [ } | 1 1 1 . ",
". . . . . . 2 3 . 4 5 6 < { { { [ 7 8 9 0 0 . ",
". a 2 2 2 2 b c d . e 6 < { { { [ f g h i i . ",
". j c c c c c c c 3 . k < { l { [ m n o p p . ",
". j c c c c c c c c 3 . q { l r [ n s t u u . ",
". v w w w w w w w w w x . y r { [ z A B C C . ",
". v w w w w w w w w D . E { { { [ F G H I I . ",
". v w w w w w w w J . K < { { { [ C L M N N . ",
". O P P P P Q w J . R 6 < { { { [ S T U V V . ",
". . . . . . Q J . W 5 6 < { { { [ X H Y Z ` . ",
" . .. ..- 5 6 < { { { [ +.@.#.$.%.. ",
" . . . = - 5 6 < { ] &.*.B =.Z -.;.. ",
" . . = - 5 6 >.&.,.'.).!.~.{.].^.. ",
" . /.(._.:.<.[.}.Z |.1.2.3.4.4.. ",
" . 5.k 6.7.Z -.8.9.0.a.a.b.b.b.. ",
" . c.d.e.^.f.g.h.i.i.i.i.i.i.i.. ",
" . . . . . . . . . . . . . . . . ",
" "};

View File

@ -0,0 +1,58 @@
/* XPM */
static char * stock_task_recurring_xpm[] = {
"24 24 31 1",
" c None",
". c #000000",
"+ c #FFFFFF",
"@ c #F4E2BC",
"# c #F4D597",
"$ c #434343",
"% c #F0CC84",
"& c #EBB13D",
"* c #4B4B4B",
"= c #535353",
"- c #C8C8C8",
"; c #7D7D7D",
"> c #7C7C7C",
", c #858585",
"' c #5C5C5C",
") c #949494",
"! c #F2F2F2",
"~ c #B6B6B6",
"{ c #BDBDBD",
"] c #818181",
"^ c #878787",
"/ c #B2B2B2",
"( c #FDFDFD",
"_ c #DBDBDB",
": c #CCCCCC",
"< c #ECECEC",
"[ c #7F7F99",
"} c #333366",
"| c #8F8FA9",
"1 c #59597F",
"2 c #EEEEEE",
" ",
" . . . . . . . ",
" .+.+.+.+.+.+.+. ",
" .@.#.#.#.#.#.#. ",
" .$%$&*&*&=&=&$&*. ",
" .-*;*>*>*>*>=,'). ",
" .!>~>{]{]{]{]{^/. ",
" .(_:::::::::::_/. ",
" .+<<<<<<<<<<<<</. ",
" .+_::[}::}}}}:_/. ",
" .+<<|}<<<}}}<<</. ",
" .+_:}[:::}}1[:_/. ",
" .+<<}<<<<}<|}<</. ",
" .+_:}[:}::::}:_/. ",
" .+<<|}}}<<<|}<</. ",
" .+_::}}}:::}[:_/. ",
" .+<<}}}}<<}|<<</. ",
" .+_:::::::::::_/. ",
" .+<<<<<<<<<<<<</. ",
" .2//////////////. ",
" ................. ",
" ",
" ",
" "};

231
etc/images/lock-broken.xpm Normal file
View File

@ -0,0 +1,231 @@
/* XPM */
static char * stock_lock_broken_xpm[] = {
"24 24 204 2",
" c None",
". c #0E0E0E",
"+ c #262626",
"@ c #464646",
"# c #3C3C3C",
"$ c #3B3B3B",
"% c #212121",
"& c #252525",
"* c #ADADAD",
"= c #F0F0F0",
"- c #EAEAEA",
"; c #1A1A1A",
"> c #000000",
", c #FAFAFA",
"' c #F4F4F4",
") c #4D4D4D",
"! c #303030",
"~ c #D8D8D8",
"{ c #E5E5E5",
"] c #B0B0B0",
"^ c #414141",
"/ c #484848",
"( c #030303",
"_ c #DADADA",
": c #E4E4E4",
"< c #353535",
"[ c #070707",
"} c #A6A6A6",
"| c #E6E6E6",
"1 c #686868",
"2 c #020202",
"3 c #3E3E3E",
"4 c #EFEFEF",
"5 c #9B9B9B",
"6 c #343434",
"7 c #F8F8F8",
"8 c #999999",
"9 c #F1F1F1",
"0 c #C4C4C4",
"a c #232323",
"b c #535353",
"c c #AEAEAE",
"d c #F3F3F3",
"e c #D3D3D3",
"f c #242424",
"g c #4E4E4E",
"h c #EEEEEE",
"i c #B5B5B5",
"j c #0F0601",
"k c #200E03",
"l c #765E49",
"m c #7D6A56",
"n c #38291D",
"o c #180A03",
"p c #D6CBC1",
"q c #A09E9D",
"r c #1D1109",
"s c #2A1E13",
"t c #3D2E21",
"u c #3F3123",
"v c #47423D",
"w c #DBB98E",
"x c #D6B183",
"y c #D3AC7E",
"z c #CFA573",
"A c #CD9E67",
"B c #C39056",
"C c #46270A",
"D c #281F14",
"E c #675643",
"F c #A48367",
"G c #D8AB7C",
"H c #BF9E7C",
"I c #DCBB93",
"J c #DCB786",
"K c #D1A872",
"L c #231B12",
"M c #7B6C58",
"N c #C69B63",
"O c #C39860",
"P c #C09257",
"Q c #BD8A4A",
"R c #B9803D",
"S c #AA6E28",
"T c #412409",
"U c #100B07",
"V c #CDB598",
"W c #E8CCA9",
"X c #DAB587",
"Y c #D4AC7D",
"Z c #D1A775",
"` c #C99F6A",
" . c #AF8B5B",
".. c #2E2517",
"+. c #1E1910",
"@. c #0B0805",
"#. c #594B39",
"$. c #2A2015",
"%. c #C2975E",
"&. c #BE8D50",
"*. c #BB823F",
"=. c #AE722C",
"-. c #422409",
";. c #0E0B07",
">. c #AB957E",
",. c #E9CEAC",
"'. c #DBB68A",
"). c #D5AD7E",
"!. c #D0A975",
"~. c #C9A26F",
"{. c #B99667",
"]. c #AA895F",
"^. c #31291C",
"/. c #322A1C",
"(. c #54493B",
"_. c #C69C64",
":. c #C2965E",
"<. c #BE8E50",
"[. c #C29156",
"}. c #9E692A",
"|. c #1A150D",
"1. c #887762",
"2. c #EAD1AF",
"3. c #DDB98E",
"4. c #D4AC7E",
"5. c #D2A876",
"6. c #C39E6D",
"7. c #927751",
"8. c #15110C",
"9. c #988468",
"0. c #C2945A",
"a. c #BE8F51",
"b. c #BC8544",
"c. c #BE8A4F",
"d. c #9A6526",
"e. c #70604D",
"f. c #EFD6B5",
"g. c #DEBD93",
"h. c #D4AC7C",
"i. c #D0A672",
"j. c #C9A069",
"k. c #9D7E53",
"l. c #140F09",
"m. c #1F1710",
"n. c #EFD8B9",
"o. c #E3C39C",
"p. c #D7B080",
"q. c #D4AC79",
"r. c #CDA46F",
"s. c #3A2C1B",
"t. c #FFFFFF",
"u. c #1C160D",
"v. c #B29E85",
"w. c #E6C8A3",
"x. c #D7B081",
"y. c #D1A874",
"z. c #CBA16A",
"A. c #BA905A",
"B. c #251C10",
"C. c #DF421E",
"D. c #F7F7F7",
"E. c #DFDFDF",
"F. c #2F2619",
"G. c #92806A",
"H. c #E6C7A2",
"I. c #D6AF7E",
"J. c #CCA26C",
"K. c #53422A",
"L. c #211910",
"M. c #2A2014",
"N. c #E1E1E1",
"O. c #6A5C4A",
"P. c #EAD0AD",
"Q. c #DAB68B",
"R. c #D2A978",
"S. c #CEA56E",
"T. c #C89D66",
"U. c #856740",
"V. c #534026",
"W. c #F9F9F9",
"X. c #FBFBFB",
"Y. c #E2E2E2",
"Z. c #42362B",
"`. c #D1BA9B",
" + c #DCBA8E",
".+ c #D1A773",
"++ c #C4975C",
"@+ c #BE8C4C",
"#+ c #B4813F",
"$+ c #281B0B",
"%+ c #E3E3E3",
"&+ c #372416",
"*+ c #74654F",
"=+ c #B68E5C",
"-+ c #926231",
";+ c #452B11",
">+ c #341E09",
",+ c #221205",
"'+ c #150802",
")+ c #FDFDFD",
"!+ c #030000",
"~+ c #050000",
"{+ c #010000",
"]+ c #C3C3C3",
" ",
" ",
" . + @ # $ % ",
" & * = - ; > , ' ) > ",
" ! ~ { ] ^ / ( $ _ : < ",
" [ } | 1 2 3 4 5 > ",
" 6 7 8 > > 9 0 a ",
" b 9 c > > d e f ",
" g h i > j k l m n o ",
" ^ p q r s t u > v w x y z A B C ",
" D E F G H I J K L > M N O P Q R S T ",
" U V W X Y Z ` ...+. @.#.$.%.&.*.=.-. ",
" ;.>.,.'.).!.~.{.].^./. (._.:.<.[.}.-. ",
" |.1.2.3.4.5.6.7.8. > 9.0.a.b.c.d.T ",
" e.f.g.h.i.j.k.l.> > > > > > > > > > ",
" m.n.o.p.q.r._.s. > t.t.t.t.t.t.t.> ",
" u.v.w.x.y.z.A.B.> > t.C.C.D.C.C.E.> ",
" F.G.H.I.i.J.K.L.M. > t.C.C.C.C.C.N.> ",
" O.P.Q.R.S.T.U.V. > t.W.C.C.C.X.Y.> ",
" Z.`. +.+z.++@+#+$+> > t.C.C.C.C.C.%+> ",
" &+*+=+-+;+>+,+'+ > t.C.C.)+C.C.{ > ",
" !+~+{+> > - %+%+: { { ]+> ",
" > > > > > > > > > ",
" "};

215
etc/images/lock-ok.xpm Normal file
View File

@ -0,0 +1,215 @@
/* XPM */
static char * stock_lock_ok_xpm[] = {
"24 24 188 2",
" c None",
". c #000000",
"+ c #212121",
"@ c #9E9E9E",
"# c #E6E6E6",
"$ c #E7E7E7",
"% c #C8C8C8",
"& c #A0A0A0",
"* c #131313",
"= c #5F5F5F",
"- c #EDEDED",
"; c #D6D6D6",
"> c #D5D5D5",
", c #DDDDDD",
"' c #D8D8D8",
") c #A1A1A1",
"! c #3C3C3C",
"~ c #353535",
"{ c #EFEFEF",
"] c #CFCFCF",
"^ c #4C4C4C",
"/ c #141414",
"( c #6A6A6A",
"_ c #D0D0D0",
": c #B2B2B2",
"< c #454545",
"[ c #E2E2E2",
"} c #292929",
"| c #0F0F0F",
"1 c #949494",
"2 c #E9E9E9",
"3 c #C3C3C3",
"4 c #1C1C1C",
"5 c #E1E1E1",
"6 c #272727",
"7 c #DEDEDE",
"8 c #B6B6B6",
"9 c #B7B6B6",
"0 c #150902",
"a c #2E2419",
"b c #251D15",
"c c #616160",
"d c #5E5A56",
"e c #29211A",
"f c #15100C",
"g c #2F251B",
"h c #1D1710",
"i c #4A392B",
"j c #656361",
"k c #565352",
"l c #392B1D",
"m c #322110",
"n c #0C0500",
"o c #EFDBBF",
"p c #EDD9C0",
"q c #E9D5BE",
"r c #E7D2B9",
"s c #E5D0B3",
"t c #DCC09D",
"u c #D9BE99",
"v c #DABE99",
"w c #D7BB95",
"x c #D5B68E",
"y c #D2AF85",
"z c #CFA77C",
"A c #9A5E1B",
"B c #F0DABF",
"C c #E4C6A0",
"D c #D6AF80",
"E c #D3AC7B",
"F c #D0A570",
"G c #C99F68",
"H c #C69B64",
"I c #C69C64",
"J c #C89D66",
"K c #C79C65",
"L c #C39860",
"M c #C09256",
"N c #BC8645",
"O c #B67C36",
"P c #985E1A",
"Q c #EED8BC",
"R c #E3C39C",
"S c #D3AA7B",
"T c #CFA670",
"U c #CA9F68",
"V c #C89E66",
"W c #C89F68",
"X c #C49961",
"Y c #C09358",
"Z c #BC8746",
"` c #B77D39",
" . c #EED8BB",
".. c #E2C29B",
"+. c #D6AE7F",
"@. c #CA9E6D",
"#. c #C69861",
"$. c #BF925A",
"%. c #BB8E56",
"&. c #BD8E56",
"*. c #5C7354",
"=. c #EFDABE",
"-. c #E4C49D",
";. c #D7B080",
">. c #DAB685",
",. c #D4B07C",
"'. c #D0A971",
"). c #CEA46B",
"!. c #CDA46D",
"~. c #FFFFFF",
"{. c #DBE0D9",
"]. c #52684B",
"^. c #4E6346",
"/. c #52674A",
"(. c #EFD8BB",
"_. c #E0C199",
":. c #D3AA7A",
"<. c #C89B67",
"[. c #C3965F",
"}. c #BC8E56",
"|. c #BA8B52",
"1. c #BA8C54",
"2. c #F6F6F6",
"3. c #F7F7F7",
"4. c #F8F8F8",
"5. c #E6E9E5",
"6. c #6B8064",
"7. c #4B5F45",
"8. c #44553D",
"9. c #E3C29C",
"0. c #D9B484",
"a. c #D4AE77",
"b. c #CFA770",
"c. c #CCA46B",
"d. c #CBA36B",
"e. c #B6BEB3",
"f. c #4E6047",
"g. c #788274",
"h. c #CBD2C9",
"i. c #6A8063",
"j. c #384834",
"k. c #EDD6B8",
"l. c #E1BD94",
"m. c #D1A874",
"n. c #BD9058",
"o. c #B7874E",
"p. c #B48349",
"q. c #B5844C",
"r. c #8F9C8A",
"s. c #53684B",
"t. c #475841",
"u. c #657C5E",
"v. c #4A5D44",
"w. c #626E5D",
"x. c #EED8BA",
"y. c #E0C099",
"z. c #D8B37F",
"A. c #D2AD76",
"B. c #CEA66F",
"C. c #CCA46D",
"D. c #FAFAFA",
"E. c #6A7E63",
"F. c #63715E",
"G. c #E3E3E3",
"H. c #EED5B7",
"I. c #DFC096",
"J. c #D2A776",
"K. c #CEA46E",
"L. c #C89D65",
"M. c #C49960",
"N. c #C1955C",
"O. c #C2955C",
"P. c #FBFBFB",
"Q. c #FCFCFC",
"R. c #80937A",
"S. c #6D796A",
"T. c #FEFEFE",
"U. c #E5E5E5",
"V. c #AC8C65",
"W. c #CFA772",
"X. c #C49256",
"Y. c #C08D51",
"Z. c #BA8849",
"`. c #B78342",
" + c #B48240",
".+ c #B68241",
"++ c #EAEAEA",
"@+ c #E4E4E4",
" ",
" ",
" . . . . . ",
" . + @ # $ % & * ",
" . = - # ; > , ' ) ! . ",
" ~ { ] ^ . . / ( _ : < ",
" . [ ' } . | ( % 1 . ",
" * 2 3 . 4 5 @ . ",
" 6 7 8 . . $ 9 . ",
" 0 a b c d e f g b h b i j k l m n ",
" . o p q r s t u u v u w x y z A . ",
" . B C D E F G H I J K L M N O P . ",
" . Q R D S T U I V W V X Y Z ` A . ",
" . ...+.@.#.$.%.&.. . . . . . . . . *. ",
" . =.-.;.>.,.'.).!.. ~.~.~.~.~.~.{.].^./.",
" . (._.:.<.[.}.|.1.. ~.2.3.3.4.5.6.7.8. ",
" . Q 9.+.0.a.b.c.d.. ~.e.f.g.h.i.7.j. ",
" . k.l.m.#.n.o.p.q.. ~.r.s.t.u.v.w.. ",
" . x.y.S z.A.B.c.C.. ~.D.E.s./.F.G.. ",
" . H.I.J.K.L.M.N.O.. ~.P.Q.R.S.T.U.. ",
" . V.W.X.Y.Z.`. +.+. ++G.G.@+U.U.3 . ",
" . . . . . . . . . . . . . . . . . ",
" ",
" "};

227
etc/images/lock.xpm Normal file
View File

@ -0,0 +1,227 @@
/* XPM */
static char * stock_lock_xpm[] = {
"24 24 200 2",
" c None",
". c #000000",
"+ c #212121",
"@ c #9E9E9E",
"# c #E6E6E6",
"$ c #E7E7E7",
"% c #C8C8C8",
"& c #A0A0A0",
"* c #131313",
"= c #5F5F5F",
"- c #EDEDED",
"; c #D6D6D6",
"> c #D5D5D5",
", c #DDDDDD",
"' c #D8D8D8",
") c #A1A1A1",
"! c #3C3C3C",
"~ c #353535",
"{ c #EFEFEF",
"] c #CFCFCF",
"^ c #4C4C4C",
"/ c #141414",
"( c #6A6A6A",
"_ c #D0D0D0",
": c #B2B2B2",
"< c #454545",
"[ c #E2E2E2",
"} c #292929",
"| c #0F0F0F",
"1 c #949494",
"2 c #E9E9E9",
"3 c #C3C3C3",
"4 c #1C1C1C",
"5 c #E1E1E1",
"6 c #272727",
"7 c #DEDEDE",
"8 c #B6B6B6",
"9 c #B7B6B6",
"0 c #150902",
"a c #2E2419",
"b c #251D15",
"c c #616160",
"d c #5E5A56",
"e c #29211A",
"f c #15100C",
"g c #2F251B",
"h c #1D1710",
"i c #4A392B",
"j c #656361",
"k c #565352",
"l c #392B1D",
"m c #322110",
"n c #0C0500",
"o c #EFDBBF",
"p c #EDD9C0",
"q c #E9D5BE",
"r c #E7D2B9",
"s c #E5D0B3",
"t c #DCC09D",
"u c #D9BE99",
"v c #DABE99",
"w c #D7BB95",
"x c #D5B68E",
"y c #D2AF85",
"z c #CFA77C",
"A c #9A5E1B",
"B c #F0DABF",
"C c #E4C6A0",
"D c #D6AF80",
"E c #D3AC7B",
"F c #D0A570",
"G c #C99F68",
"H c #C69B64",
"I c #C69C64",
"J c #C89D66",
"K c #C79C65",
"L c #C39860",
"M c #C09256",
"N c #BC8645",
"O c #B67C36",
"P c #985E1A",
"Q c #EED8BC",
"R c #E3C39C",
"S c #D3AA7B",
"T c #CFA670",
"U c #CA9F68",
"V c #C89E66",
"W c #C89F68",
"X c #C49961",
"Y c #C09358",
"Z c #BC8746",
"` c #B77D39",
" . c #EED8BB",
".. c #E2C29B",
"+. c #D6AE7F",
"@. c #CA9E6D",
"#. c #C69861",
"$. c #BF925A",
"%. c #BB8E56",
"&. c #BD8E56",
"*. c #BD9058",
"=. c #BC8F58",
"-. c #B9884E",
";. c #B48145",
">. c #BA8442",
",. c #B47834",
"'. c #975C1A",
"). c #EFDABE",
"!. c #E4C49D",
"~. c #D7B080",
"{. c #DAB685",
"]. c #D4B07C",
"^. c #D0A971",
"/. c #CEA46B",
"(. c #CDA46D",
"_. c #CCA66D",
":. c #CCA46B",
"<. c #CA9F63",
"[. c #C79858",
"}. c #B9813F",
"|. c #B37834",
"1. c #975D1A",
"2. c #EFD8BB",
"3. c #E0C199",
"4. c #D3AA7A",
"5. c #C89B67",
"6. c #C3965F",
"7. c #BC8E56",
"8. c #BA8B52",
"9. c #BA8C54",
"0. c #BB8D55",
"a. c #BA8C55",
"b. c #B6864C",
"c. c #B47F43",
"d. c #BA833F",
"e. c #B37934",
"f. c #9B601E",
"g. c #E3C29C",
"h. c #D9B484",
"i. c #D4AE77",
"j. c #CFA770",
"k. c #CBA36B",
"l. c #CCA46C",
"m. c #CA9D61",
"n. c #C69856",
"o. c #BA813E",
"p. c #B27733",
"q. c #A36B2F",
"r. c #EDD6B8",
"s. c #E1BD94",
"t. c #D1A874",
"u. c #B7874E",
"v. c #B48349",
"w. c #B5844C",
"x. c #B5884D",
"y. c #B48146",
"z. c #B27A3C",
"A. c #B67D3A",
"B. c #B07530",
"C. c #A67137",
"D. c #EED8BA",
"E. c #E0C099",
"F. c #D8B37F",
"G. c #D2AD76",
"H. c #CEA66F",
"I. c #CCA46D",
"J. c #CCA56D",
"K. c #C99D61",
"L. c #C69858",
"M. c #B9803D",
"N. c #B67D38",
"O. c #AB783F",
"P. c #EED5B7",
"Q. c #DFC096",
"R. c #D2A776",
"S. c #CEA46E",
"T. c #C89D65",
"U. c #C49960",
"V. c #C1955C",
"W. c #C2955C",
"X. c #C2965C",
"Y. c #C09155",
"Z. c #BC8A4B",
"`. c #BE8A4C",
" + c #A9773C",
".+ c #AC8C65",
"++ c #CFA772",
"@+ c #C49256",
"#+ c #C08D51",
"$+ c #BA8849",
"%+ c #B78342",
"&+ c #B48240",
"*+ c #B68241",
"=+ c #B88544",
"-+ c #BB8949",
";+ c #BC8748",
">+ c #BA874A",
",+ c #B98548",
"'+ c #B27B3B",
")+ c #6D4215",
" ",
" ",
" . . . . . ",
" . + @ # $ % & * ",
" . = - # ; > , ' ) ! . ",
" ~ { ] ^ . . / ( _ : < ",
" . [ ' } . | ( % 1 . ",
" * 2 3 . 4 5 @ . ",
" 6 7 8 . . $ 9 . ",
" 0 a b c d e f g b h b i j k l m n ",
" . o p q r s t u u v u w x y z A . ",
" . B C D E F G H I J K L M N O P . ",
" . Q R D S T U I V W V X Y Z ` A . ",
" . ...+.@.#.$.%.&.*.=.-.;.>.,.'.. ",
" . ).!.~.{.].^./.(._.:.<.[.}.|.1.. ",
" . 2.3.4.5.6.7.8.9.0.a.b.c.d.e.f.. ",
" . Q g.+.h.i.j.:.k.l.k.m.n.o.p.q.. ",
" . r.s.t.#.*.u.v.w.x.b.y.z.A.B.C.. ",
" . D.E.S F.G.H.:.I.J.l.K.L.M.N.O.. ",
" . P.Q.R.S.T.U.V.W.X.X.Y.Z.>.`. +. ",
" . .+++@+#+$+%+&+*+=+-+;+>+,+'+)+. ",
" . . . . . . . . . . . . . . . ",
" ",
" "};

View File

@ -1,39 +1,225 @@
/* XPM */
static char *magick[] = {
/* columns rows colors chars-per-pixel */
"24 24 9 1",
" c Gray0",
". c #757560602020",
"X c #6711662663d9",
"o c #8e8e7d7d4545",
"O c #adad8e8e3030",
"+ c #d8d8bebe6a6a",
"@ c #a8fba84da483",
"# c #eb79ea70e4f4",
"$ c None",
/* pixels */
"$$$$$$$$$$$$$$$$$$$$$$$$",
"$$$$$$$$$$$$$$$$$$$$$$$$",
"$$$$$$$$$$$$$ $$$$$$$",
"$$$$$$$$ X##@ $$$$$$",
"$$$ X@######@ $$$$$$",
"$$ X@##########X@@ $$$$$",
"$$ #XX########@X@# $$$$$",
"$$ @#@XX######X@## $$$$$",
"$$$ ###@@X@##XXX##@ $ $$",
"$$$ #####@@XX@#@X@# + $",
"$$$ @####X#######X@ +o $",
"$$$$ ###@@######## +o $$",
"$$$$ ###X######## +o $$$",
"$$$$ @#@@######@ +o $$$$",
"$$$$$ #X####@ +o $$$$$",
"$$$$$ X@#@ $ +o $$$$$$",
"$$$$$ XX $$$ +o $$$$$$$",
"$$$$$$ $$$$ +o $$$$$$$$",
"$$$$$$$$$$$O. $$$$$$$$$",
"$$$$$$$$$$$ $$$$$$$$$$$",
"$$$$$$$$$$$$$$$$$$$$$$$$",
"$$$$$$$$$$$$$$$$$$$$$$$$",
"$$$$$$$$$$$$$$$$$$$$$$$$",
"$$$$$$$$$$$$$$$$$$$$$$$$"
};
static char * stock_mail_compose_xpm[] = {
"24 24 198 2",
" c None",
". c #000000",
"+ c #D1AF61",
"@ c #F1E3AC",
"# c #FBA90F",
"$ c #FFFFFF",
"% c #B5B5B5",
"& c #A06B09",
"* c #816000",
"= c #E0E0E0",
"- c #C1C1C1",
"; c #F4F4F4",
"> c #FDFDFD",
", c #E6C370",
"' c #F1D387",
") c #D58F0C",
"! c #B2B2B2",
"~ c #C3C3C3",
"{ c #FBFBFB",
"] c #A8A8A8",
"^ c #F6F6F6",
"/ c #B3B3B3",
"( c #FAFAFA",
"_ c #ADADAD",
": c #767676",
"< c #5D5D5D",
"[ c #404040",
"} c #F8F8F8",
"| c #F1D07E",
"1 c #ACACAC",
"2 c #F8F8F6",
"3 c #E2E2E2",
"4 c #858585",
"5 c #4B4B49",
"6 c #161616",
"7 c #FBFBFA",
"8 c #7D7D7D",
"9 c #F2F2F2",
"0 c #F0F0F0",
"a c #EFEFEF",
"b c #D5D5D5",
"c c #F9F9F9",
"d c #F6F6F3",
"e c #F3F3F3",
"f c #878786",
"g c #E5E5E5",
"h c #DFDFDF",
"i c #EBEBEB",
"j c #AEAEAE",
"k c #7B5307",
"l c #EDEDED",
"m c #EBEBE9",
"n c #E9E9E7",
"o c #E0E0DE",
"p c #BFBFBF",
"q c #F0F0ED",
"r c #F1D284",
"s c #CA870B",
"t c #9E9E9C",
"u c #DCDCD9",
"v c #D9D9D9",
"w c #D9D9D6",
"x c #D6D6D4",
"y c #E5E5E4",
"z c #D9D9D7",
"A c #BABABA",
"B c #AAAAAA",
"C c #E7E7E5",
"D c #E4E4E2",
"E c #E2E2E0",
"F c #EEEEEC",
"G c #979796",
"H c #D4D4D1",
"I c #DEDEDC",
"J c #DEDEDB",
"K c #BDBDBC",
"L c #E7E7E7",
"M c #EFEFED",
"N c #A6A6A5",
"O c #BA7C0A",
"P c #7A5B00",
"Q c #DBDBD9",
"R c #D5D5D3",
"S c #BCBCBC",
"T c #E3E3E3",
"U c #F2E6B6",
"V c #7B7B7B",
"W c #704B05",
"X c #676764",
"Y c #CBCBC7",
"Z c #C9C9C7",
"` c #DBDBD7",
" . c #D7D7D5",
".. c #D7D7D3",
"+. c #B4B4B4",
"@. c #E4E4E4",
"#. c #DBD5C1",
"$. c #7E6F57",
"%. c #755800",
"&. c #D9D9D5",
"*. c #D5D5D1",
"=. c #D0D0CE",
"-. c #BABAB8",
";. c #DDDDDB",
">. c #D1D1CF",
",. c #0E0E0E",
"'. c #535353",
"). c #8D8D8B",
"!. c #C4C4C1",
"~. c #C4C4BF",
"{. c #C1C1BC",
"]. c #D3D3D0",
"^. c #D1D1D0",
"/. c #DCDCDB",
"(. c #E0E0DC",
"_. c #898987",
":. c #C9C9C6",
"<. c #CDCDCA",
"[. c #D0D0CD",
"}. c #CECECB",
"|. c #CFCFCC",
"1. c #D0D0CC",
"2. c #B6B6B6",
"3. c #D4D4D0",
"4. c #C3C3C0",
"5. c #5B5B5B",
"6. c #91918D",
"7. c #91918F",
"8. c #9F9F9D",
"9. c #AFAFAC",
"0. c #B9B9B6",
"a. c #BEBEBB",
"b. c #C5C5C2",
"c. c #C8C8C5",
"d. c #CACAC7",
"e. c #CBCBC8",
"f. c #CCCCC9",
"g. c #CCCCC8",
"h. c #D2D2D0",
"i. c #D2D2CF",
"j. c #BFBFBD",
"k. c #9F9F9C",
"l. c #888886",
"m. c #878785",
"n. c #8C8C8A",
"o. c #959593",
"p. c #9C9C9A",
"q. c #A8A8A5",
"r. c #B1B1AE",
"s. c #B5B5B3",
"t. c #BBBBB8",
"u. c #BFBFBC",
"v. c #C2C2BE",
"w. c #D1D1CE",
"x. c #AEAEAB",
"y. c #9D9D9A",
"z. c #979794",
"A. c #949491",
"B. c #9A9A97",
"C. c #A3A3A0",
"D. c #AAAAA7",
"E. c #B0B0AC",
"F. c #B8B8B5",
"G. c #B0B0AE",
"H. c #CFCFCD",
"I. c #BEBEBC",
"J. c #B4B4B0",
"K. c #ACACA8",
"L. c #A4A4A2",
"M. c #A0A09C",
"N. c #A4A4A0",
"O. c #A8A8A6",
"P. c #ABABA7",
"Q. c #B2B2AE",
"R. c #A4A4A4",
"S. c #CECECC",
"T. c #CECECA",
"U. c #C6C6C2",
"V. c #BCBCB9",
"W. c #B3B3AF",
"X. c #ABABA9",
"Y. c #A6A6A3",
"Z. c #A0A09D",
"`. c #ACACA9",
" + c #A1A1A1",
".+ c #B1B1AF",
"++ c #B4B4B3",
"@+ c #B4B4B1",
"#+ c #B3B3B1",
"$+ c #AEAEAA",
"%+ c #A7A7A4",
"&+ c #A2A2A0",
"*+ c #A5A5A1",
"=+ c #999997",
"-+ c #929290",
";+ c #949490",
">+ c #9D9D9B",
",+ c #858583",
" . . . ",
" . . . . . . . . . . . . + @ # . . . ",
" . $ $ $ $ $ $ $ $ $ % & @ # * . = - . ",
" . $ ; $ $ $ $ $ > > . , ' ) . ! ~ { ] . ",
" . $ ^ $ $ $ > > > / & @ # * . ( _ : < [ . ",
" . $ ^ $ { { { { } . , | ) . 1 2 3 4 5 6 . ",
" . $ ; > > { { 7 8 & @ # * . ; 9 0 a b _ . ",
" . $ 9 c ^ ^ d e . , | ) . f g 3 h i 3 - . ",
" . $ 0 } } } 2 j k @ # * . l i m n n o p . ",
" . $ a e 0 q l . , r s . t u v w x y z A . ",
" . $ l ; ; 9 B & @ # * . C y y D o E z A . ",
" . $ i F C g . , r s . G H E o I J I z K . ",
" . $ L M i N O # # P . E o I J u Q Q R S . ",
" . $ g T v . U V W . X Y Z u ` z .z ..+.. ",
" . $ E y @.. #.$.%.. u Q ` &...R *...=.-.. ",
" . $ I ;.>.,.'.. . ).!.~.{.*.*.].^.].=.-.. ",
" . $ /.(.;.. . _.:.<.[.}.[.[.[.[.|.[.1.2.. ",
" . $ Q 3.4.5.6.7.8.9.0.a.4.b.c.d.e.f.g.! . ",
" . $ h.i.|.j.k.l.m.n.o.p.q.r.s.t.a.u.v.! . ",
" . $ w.1.f.|.4.x.y.z.z.A.B.k.C.q.D.E.F.G.. ",
" . $ i.w.w.w.H.e.I.J.K.L.M.M.N.L.O.P.Q.R.. ",
" . $ ^.w.=.S.T.T.g.U.V.W.J.X.Y.Z.Y.D.`. +. ",
" . $ .+++@+@+@+#+#+Q.$+%+&+*+*+=+-+;+>+,+. ",
" . . . . . . . . . . . . . . . . . . . . "};

104
etc/images/mail/copy.xpm Normal file
View File

@ -0,0 +1,104 @@
/* XPM */
static char * stock_mail_copy_xpm[] = {
"24 24 77 1",
" c None",
". c #010101",
"+ c #2F2F2F",
"@ c #E3E2E1",
"# c #FCFCFC",
"$ c #B3B2B1",
"% c #95938E",
"& c #F7F7F7",
"* c #F5F4F2",
"= c #F8F8F8",
"- c #F7F6F6",
"; c #EAE9E5",
"> c #7B7976",
", c #D2CFCA",
"' c #E1E0DD",
") c #908E8B",
"! c #EBEAEA",
"~ c #F1F0EE",
"{ c #E2E0DD",
"] c #7C7B78",
"^ c #C6C3C0",
"/ c #E5E3DE",
"( c #DCDAD7",
"_ c #8F8C88",
": c #EBEBEA",
"< c #EFEDEA",
"[ c #DFDDDA",
"} c #787774",
"| c #C1BEBA",
"1 c #E6E3E0",
"2 c #EFEEEC",
"3 c #CBCAC6",
"4 c #ECECEC",
"5 c #F3F2F0",
"6 c #DCDCDC",
"7 c #7D7C79",
"8 c #B4B2AE",
"9 c #E7E5E1",
"0 c #F0EFEB",
"a c #E4E2DD",
"b c #7B7874",
"c c #AFACA6",
"d c #ABA8A3",
"e c #F9F8F6",
"f c #EAE9E8",
"g c #B0ADA7",
"h c #F5F3F0",
"i c #B9B8B6",
"j c #CBC9C4",
"k c #DEDBD5",
"l c #9D9994",
"m c #DBD9D6",
"n c #747370",
"o c #A09C97",
"p c #DAD8D5",
"q c #E7E6E3",
"r c #E8E6E1",
"s c #E0DED9",
"t c #F7F6F4",
"u c #D3D1CF",
"v c #868480",
"w c #C2BFBD",
"x c #DAD9D5",
"y c #F6F5F1",
"z c #D8D6D1",
"A c #F7F5F2",
"B c #92908B",
"C c #CCCAC5",
"D c #F7F6F2",
"E c #F5F4F0",
"F c #EAE8E3",
"G c #D2D0CB",
"H c #D9D7D2",
"I c #DAD8D3",
"J c #D5D3CE",
"K c #D6D4CF",
"L c #040404",
" ",
" ",
" ",
" .+........... ",
" .@###########$. ",
" .#%&*=*-*-*;>,. ",
" .#')!~-*-*{]^/. ",
" .#~(_:~<~[}|1/. ",
" .#~23]4567890a. ",
" .#22~b.+........... ",
" .#~2c.@###########$. ",
" .#2de.#%&*=*-*-*;>,. ",
" .fgeh.#')!~-*-*{]^/. ",
" .ijkk.#~(_:~<~[}|1/. ",
" .....#~23]4567890a. ",
" .#22~l]mnopqrs. ",
" .#~2ctuvwxoy0z. ",
" .#2deetptAABrC. ",
" .fgehDEAEAhFBG. ",
" .ijkkkHIJKGGGB. ",
" ............L ",
" ",
" ",
" "};

View File

@ -0,0 +1,92 @@
/* XPM */
static char * stock_mail_forward_xpm[] = {
"24 24 65 1",
" c None",
". c #000000",
"+ c #535353",
"@ c #FFFFFF",
"# c #FEFEFE",
"$ c #FDFDFD",
"% c #FCFCFC",
"& c #FBFBFB",
"* c #F9F9F9",
"= c #F8F8F8",
"- c #F7F7F7",
"; c #F6F6F6",
"> c #F5F5F5",
", c #F4F4F4",
"' c #E3E3E3",
") c #EEEEEE",
"! c #4F4F4F",
"~ c #F3F3F3",
"{ c #F2F2F2",
"] c #F1F1F1",
"^ c #F0F0F0",
"/ c #EFEFEF",
"( c #EDEDED",
"_ c #AEAEAE",
": c #E4E4E4",
"< c #434343",
"[ c #ACACAC",
"} c #C8C8C8",
"| c #A0A0A0",
"1 c #D4D4D4",
"2 c #ECECEC",
"3 c #959595",
"4 c #3E3E3E",
"5 c #4D4D4D",
"6 c #818181",
"7 c #C6C6C6",
"8 c #6A6A6A",
"9 c #636363",
"0 c #B9B9B9",
"a c #737373",
"b c #7C7C7C",
"c c #5B88B2",
"d c #9EB8D1",
"e c #5080AD",
"f c #B5C9DC",
"g c #AFC5DA",
"h c #B2C7DB",
"i c #B6CADD",
"j c #A4BDD5",
"k c #9CB7D1",
"l c #080D11",
"m c #BCBCBC",
"n c #9BB6D0",
"o c #A0BAD3",
"p c #9AB5CF",
"q c #97B3CE",
"r c #5F8BB4",
"s c #91B0CC",
"t c #95B2CE",
"u c #4C79A3",
"v c #49749C",
"w c #3F6588",
"x c #2A435B",
"y c #456F96",
"z c #375978",
" ",
" ",
" ",
" ................. ",
" .+@@@@#$%&*=-;>,'+. ",
" .)!@>,~{{]^^/)('!_. ",
" .@:<$~{{]^/))('![}. ",
" .@>:!&]^^/)(('<|1}. ",
" .@&>:<=^/)(2'!31:}. ",
" .@>>>:4>)(2'567::}. ",
" .@&>>:8<~2'!877>.}. ",
" .@>>:9@0!^!37a7>... ",
" .@&:9@>:1![7::b:.c. ",
" .@:a@>>>>:.......de. ",
" .@b@::::::.fghiiijkel ",
" .ammmmmmmm.nokknpokqr. ",
" ..........sdppnkkkotu.",
" .vwwwwwwwwx. ",
" .yzzzzzwwx. ",
" .......wx. ",
" .x. ",
" .. ",
" . ",
" "};

103
etc/images/mail/inbox.xpm Normal file
View File

@ -0,0 +1,103 @@
/* XPM */
static char * stock_inbox_xpm[] = {
"24 24 76 1",
" c None",
". c #000000",
"+ c #B5CADD",
"@ c #BFD1E1",
"# c #C3D4E3",
"$ c #C7D7E5",
"% c #B0C6DA",
"& c #6B94BB",
"* c #131E29",
"= c #739ABF",
"- c #7EA2C4",
"; c #9AB6D0",
"> c #E4EBF2",
", c #DDE6EF",
"' c #8CACCA",
") c #5C8AB4",
"! c #090F15",
"~ c #B1C7DB",
"{ c #D0DDEA",
"] c #D9E3ED",
"^ c #88A9C8",
"/ c #4D7CA7",
"( c #030405",
"_ c #41688D",
": c #32506C",
"< c #C4D5E4",
"[ c #A5BED5",
"} c #456F97",
"| c #3B5F81",
"1 c #C8D8E6",
"2 c #9CB8D2",
"3 c #395B7B",
"4 c #C6D6E4",
"5 c #BBCEDF",
"6 c #3D6183",
"7 c #B6CBDE",
"8 c #426A90",
"9 c #E2C6A9",
"0 c #E5CDB4",
"a c #D5AA7F",
"b c #9D6733",
"c c #CB9967",
"d c #ADC4D9",
"e c #B99877",
"f c #CFBAA4",
"g c #9A7149",
"h c #CDA378",
"i c #D2A87E",
"j c #608DB6",
"k c #AA7B4B",
"l c #C2A588",
"m c #996633",
"n c #BB9978",
"o c #C3976B",
"p c #D2A980",
"q c #D1A77D",
"r c #E0C4A8",
"s c #C9B097",
"t c #D7B38E",
"u c #DAC2A9",
"v c #BD9063",
"w c #CEA57C",
"x c #E5CFBB",
"y c #393633",
"z c #E0C8B1",
"A c #C9A480",
"B c #D1A87E",
"C c #D0A67B",
"D c #E1CAB4",
"E c #52504D",
"F c #D8C6B5",
"G c #CBA988",
"H c #CCAF93",
"I c #D2B496",
"J c #A67D51",
"K c #E2CFBD",
" ...... ",
" .+@#$%&*. ",
" .=-;$>,')! ",
" ...=~{]^/( ",
" .=+#$_:. ",
" .<[@}|. ",
" .12@}3. ",
" ....425}6.... ",
" .=2527}8}:. ",
" ..9.=227}}:. ",
" ..0abb.=2~}:.. ",
" ..0abbbbc.=d:.ef.. ",
".0abbbbghii.j.kkklf.. ",
".mnabgopqqqi.iokkkkef. ",
".mmmnrooqiqqqiiiokkkks. ",
".mmmmmnrooqiqqqiiiokkl. ",
" ..mmmmmnrooqiqqiiituf. ",
" ..mmmmmnrvwiqqtxxy. ",
" ..mmmmmzABCDxE.. ",
" ...mmmFGHIE.. ",
" ...mJK... ",
" ..... ",
" ",
" "};

103
etc/images/mail/move.xpm Normal file
View File

@ -0,0 +1,103 @@
/* XPM */
static char * stock_mail_move_xpm[] = {
"24 24 76 1",
" c None",
". c #010101",
"+ c #2F2F2F",
"@ c #E3E2E1",
"# c #FCFCFC",
"$ c #B3B2B1",
"% c #95938E",
"& c #F7F7F7",
"* c #F5F4F2",
"= c #F8F8F8",
"- c #F7F6F6",
"; c #EAE9E5",
"> c #7B7976",
", c #D2CFCA",
"' c #E1E0DD",
") c #908E8B",
"! c #EBEAEA",
"~ c #F1F0EE",
"{ c #E2E0DD",
"] c #7C7B78",
"^ c #C6C3C0",
"/ c #E5E3DE",
"( c #DCDAD7",
"_ c #8F8C88",
": c #EBEBEA",
"< c #EFEDEA",
"[ c #DFDDDA",
"} c #787774",
"| c #C1BEBA",
"1 c #E6E3E0",
"2 c #EFEEEC",
"3 c #CBCAC6",
"4 c #ECECEC",
"5 c #F3F2F0",
"6 c #DCDCDC",
"7 c #7D7C79",
"8 c #B4B2AE",
"9 c #E7E5E1",
"0 c #F0EFEB",
"a c #E4E2DD",
"b c #9D9994",
"c c #DBD9D6",
"d c #747370",
"e c #A09C97",
"f c #DAD8D5",
"g c #E7E6E3",
"h c #E8E6E1",
"i c #E0DED9",
"j c #AFACA6",
"k c #F7F6F4",
"l c #D3D1CF",
"m c #868480",
"n c #C2BFBD",
"o c #DAD9D5",
"p c #F6F5F1",
"q c #D8D6D1",
"r c #ABA8A3",
"s c #F9F8F6",
"t c #F7F5F2",
"u c #92908B",
"v c #CCCAC5",
"w c #EAE9E8",
"x c #B0ADA7",
"y c #F5F3F0",
"z c #F7F6F2",
"A c #F5F4F0",
"B c #EAE8E3",
"C c #D2D0CB",
"D c #B9B8B6",
"E c #CBC9C4",
"F c #DEDBD5",
"G c #D9D7D2",
"H c #DAD8D3",
"I c #D5D3CE",
"J c #D6D4CF",
"K c #040404",
" ",
" ",
" ",
" . . . . . . . ",
" . . ",
" ",
" . . ",
" ",
" . . ",
" .+........... ",
" . .@###########$. ",
" .#%&*=*-*-*;>,. ",
" . .#')!~-*-*{]^/. ",
" .#~(_:~<~[}|1/. ",
" . . .#~23]4567890a. ",
" .#22~b]cdefghi. ",
" .#~2jklmnoep0q. ",
" .#2rsskfkttuhv. ",
" .wxsyzAtAtyBuC. ",
" .DEFFFGHIJCCCu. ",
" ............K ",
" ",
" ",
" "};

View File

@ -0,0 +1,149 @@
/* XPM */
static char * stock_not_spam_xpm[] = {
"24 24 122 2",
" c None",
". c #1D1E1E",
"+ c #333839",
"@ c #393F40",
"# c #171819",
"$ c #B2B8B9",
"% c #D5E3E7",
"& c #AABABD",
"* c #64696A",
"= c #0C0D0D",
"- c #929C9E",
"; c #E7F0F3",
"> c #EDF0F1",
", c #E5EDEF",
"' c #C5D9DD",
") c #2E3132",
"! c #3F4343",
"~ c #1F2121",
"{ c #DFEBEE",
"] c #B7C4C8",
"^ c #D2D9DA",
"/ c #E1EFF2",
"( c #B6CBCF",
"_ c #3C4547",
": c #1E2223",
"< c #191E1F",
"[ c #2D2E2F",
"} c #191A1A",
"| c #252829",
"1 c #7E8E92",
"2 c #B7C2C3",
"3 c #C3D9DD",
"4 c #9CACB0",
"5 c #C3CDCE",
"6 c #C7E1E7",
"7 c #668F97",
"8 c #90ACB2",
"9 c #CDDDE1",
"0 c #485559",
"a c #88A6AC",
"b c #1F2223",
"c c #3F4545",
"d c #242728",
"e c #313B3E",
"f c #A8C2C8",
"g c #B2BDC0",
"h c #CFE5E9",
"i c #C2D9DE",
"j c #81989C",
"k c #A2C0C5",
"l c #85A9B1",
"m c #E5ECEE",
"n c #E7F2F4",
"o c #9BAEB3",
"p c #C8E1E7",
"q c #3A3E3F",
"r c #0C0E0E",
"s c #000000",
"t c #333737",
"u c #B3C2C5",
"v c #DDEDF0",
"w c #D8E4E6",
"x c #DAECEF",
"y c #D5E9ED",
"z c #D2E7EC",
"A c #95ADB2",
"B c #DBE2E2",
"C c #EDEFF0",
"D c #A2B1B3",
"E c #8FA4A8",
"F c #D7E2E5",
"G c #798F94",
"H c #151819",
"I c #F3B5A7",
"J c #865E55",
"K c #AFB9BB",
"L c #F1F8F9",
"M c #F7FBFB",
"N c #D9EBEF",
"O c #ECF4F6",
"P c #F3F7F7",
"Q c #E9F2F4",
"R c #EEF2F3",
"S c #E9EDEE",
"T c #C5C8C9",
"U c #C2C6C8",
"V c #E0E7E7",
"W c #DDEAED",
"X c #7A9DA5",
"Y c #EB8169",
"Z c #B83618",
"` c #924E3C",
" . c #9FA5A6",
".. c #E3EEF0",
"+. c #ECF5F7",
"@. c #D6EAED",
"#. c #CBE4E9",
"$. c #747C7D",
"%. c #B43518",
"&. c #E76A4D",
"*. c #B53F24",
"=. c #CB705A",
"-. c #C4D8DB",
";. c #D2E6E9",
">. c #CAE3E8",
",. c #A9C8CF",
"'. c #EC927D",
"). c #E66F54",
"!. c #D26951",
"~. c #F1A897",
"{. c #E76547",
"]. c #C58B7D",
"^. c #A8ABAC",
"/. c #70A1AB",
"(. c #DF421E",
"_. c #C43A1A",
":. c #E17055",
"<. c #DD8D7A",
"[. c #FFFFFF",
"}. c #030505",
"|. c #A2432E",
"1. c #AC3316",
" ",
" ",
" . + @ ",
" # $ % & * . ",
" = - ; > , ' ) ! ",
" ~ { ] ^ / ( _ : < [ } ",
" | 1 2 3 4 5 6 7 8 9 0 a b ",
" c d e f g h i j k l m n o p q r ",
" s t u v w / x y z A B C D E F G H ",
" s s I J K L M N O P Q R S T U V W X < ",
"s I Y Z ` ...+.@.#.$.s s s s s s s s s s s s ",
"s %.&.Y *.=.-.;.>.,.s '.).).).).).).).).).).!.s ",
"s %.%.%.&.~.{.].^./.s ).(.(.(.(.(.(.(.(.(.(._.s ",
"s %.%.%.%.%.&.~.:.<.s ).(.[.[.(.(.(.(.[.[.(._.s ",
" s s %.%.%.%.%.&.~.s ).(.[.[.[.(.(.[.[.[.(._.s ",
" s s %.%.%.%.%.s ).(.(.[.[.[.[.[.[.(.(._.s ",
" s s %.%.%.s ).(.(.(.[.[.[.[.(.(.(._.s ",
" }.s s |.s ).(.(.(.[.[.[.[.(.(.(._.s ",
" s s s ).(.(.[.[.[.[.[.[.(.(._.s ",
" s ).(.[.[.[.(.(.[.[.[.(._.s ",
" s ).(.[.[.(.(.(.(.[.[.(._.s ",
" s ).(.(.(.(.(.(.(.(.(.(._.s ",
" s !._._._._._._._._._._.1.s ",
" s s s s s s s s s s s s "};

View File

@ -0,0 +1,96 @@
/* XPM */
static char * stock_outbox_xpm[] = {
"24 24 69 1",
" c None",
". c #000000",
"+ c #E66040",
"@ c #EE937E",
"# c #E55E3F",
"$ c #E1431F",
"% c #EC8770",
"& c #F0A08E",
"* c #F3B7A9",
"= c #EF9985",
"- c #E76749",
"; c #ED8C75",
"> c #F5BEB1",
", c #F3B4A5",
"' c #F4B8AA",
") c #F1A593",
"! c #E55B3B",
"~ c #E45534",
"{ c #F4BDB0",
"] c #F4BAAC",
"^ c #EF9C89",
"/ c #E34E2B",
"( c #C0391A",
"_ c #8A2912",
": c #3E3E3C",
"< c #D4D3D2",
"[ c #DB411D",
"} c #F1A999",
"| c #D23E1C",
"1 c #812611",
"2 c #C7C7C5",
"3 c #ACABA8",
"4 c #6A6966",
"5 c #E9775D",
"6 c #CECDCC",
"7 c #A93217",
"8 c #9B9A97",
"9 c #494846",
"0 c #9A9996",
"a c #BBBBB9",
"b c #747370",
"c c #A5A4A1",
"d c #AAA9A6",
"e c #686765",
"f c #7D7C79",
"g c #686764",
"h c #9C9B98",
"i c #999895",
"j c #ABAAA7",
"k c #A9A8A5",
"l c #AF3417",
"m c #E55D3D",
"n c #C5C5C3",
"o c #8D8C89",
"p c #626260",
"q c #B2B1AE",
"r c #A7A6A3",
"s c #B4B4B2",
"t c #C3C3C1",
"u c #92918E",
"v c #D1D0CF",
"w c #373735",
"x c #CACAC8",
"y c #A8A7A4",
"z c #CCCCCA",
"A c #52514E",
"B c #C8C8C6",
"C c #B5B5B3",
"D c #7E7D7A",
" . ",
" .. ",
" .+. ",
" ....@#. ",
" .$%&*=@-. ",
" .;>,')@@@!. ",
" .~{]*^@@@@@-.",
" ...@>/((((((_. ",
" .:<.[}|((((((1. ",
" ..234.5+(_...(1. ",
" ..63444.@(7...._. ",
" ..6344448.@(.90a.. ",
".634444bcd.#$.eff.a.. ",
".gh34bijkk.lm.iffff0a. ",
".ggghniikdo..pddiffffq. ",
".ggggghniikdkkkdddiffr. ",
" ..ggggghniikdkkdddsta. ",
" ..ggggghnurdkksvvw. ",
" ..gggggxrdyzvA.. ",
" ...gggB3qCA.. ",
" ...gDv... ",
" ..... ",
" ",
" "};

178
etc/images/mail/preview.xpm Normal file
View File

@ -0,0 +1,178 @@
/* XPM */
static char * mail_preview_xpm[] = {
"24 24 151 2",
" c None",
". c #343434",
"+ c #2D2D2D",
"@ c #292929",
"# c #262626",
"$ c #2E2E2E",
"% c #303030",
"& c #737373",
"* c #A1A1A1",
"= c #B4B4B4",
"- c #B2B2B2",
"; c #9D9D9D",
"> c #676767",
", c #202020",
"' c #1C1C1C",
") c #272727",
"! c #616161",
"~ c #CACACA",
"{ c #CFCFCF",
"] c #D0D0D0",
"^ c #CECECE",
"/ c #C9C9C9",
"( c #C1C1C1",
"_ c #A7A7A7",
": c #4C4C4C",
"< c #131313",
"[ c #222222",
"} c #757575",
"| c #D3D3D3",
"1 c #DBDBDB",
"2 c #E7E7E7",
"3 c #EFEFEF",
"4 c #F3F3F3",
"5 c #F1F1F1",
"6 c #E5E5E5",
"7 c #D2D2D2",
"8 c #BCBCBC",
"9 c #5E5E5E",
"0 c #101010",
"a c #212121",
"b c #5B5B5B",
"c c #CCCCCC",
"d c #D7D7D7",
"e c #F5F5F5",
"f c #FAFAFA",
"g c #FBFBFB",
"h c #F8F8F8",
"i c #F0F0F0",
"j c #E1E1E1",
"k c #C2C2C2",
"l c #434343",
"m c #0F0F0F",
"n c #1F1F1F",
"o c #B9B9B9",
"p c #D4D4D4",
"q c #F7F7F7",
"r c #F9F9F9",
"s c #F6F6F6",
"t c #EAEAEA",
"u c #E2E2E2",
"v c #ABABAB",
"w c #0E0E0E",
"x c #000000",
"y c #111111",
"z c #686868",
"A c #9C9C9C",
"B c #808080",
"C c #8E8E8E",
"D c #919191",
"E c #929292",
"F c #949494",
"G c #939393",
"H c #8B8B8B",
"I c #838383",
"J c #A3A3A3",
"K c #555555",
"L c #080808",
"M c #535353",
"N c #333333",
"O c #AFAFAF",
"P c #E6E6E6",
"Q c #FDFDFD",
"R c #FEFEFE",
"S c #FCFCFC",
"T c #A8A8A8",
"U c #8D8D8D",
"V c #050505",
"W c #EEEEEE",
"X c #A6A6A6",
"Y c #C8C8C8",
"Z c #FFFFFF",
"` c #B6B6B6",
" . c #F4F4F4",
".. c #F2F2F2",
"+. c #A9A9A9",
"@. c #040404",
"#. c #2A2A2A",
"$. c #AAAAAA",
"%. c #ECECEC",
"&. c #A5A5A5",
"*. c #C7C7C7",
"=. c #D8D8D8",
"-. c #CDCDCD",
";. c #858585",
">. c #010101",
",. c #606060",
"'. c #646464",
"). c #C3C3C3",
"!. c #DADADA",
"~. c #494949",
"{. c #ADADAD",
"]. c #0A0A0A",
"^. c #BABABA",
"/. c #DCDCDC",
"(. c #989898",
"_. c #E9E9E9",
":. c #EBEBEB",
"<. c #A4A4A4",
"[. c #B7B7B7",
"}. c #D1D1D1",
"|. c #414141",
"1. c #3D3D3D",
"2. c #969696",
"3. c #A0A0A0",
"4. c #BEBEBE",
"5. c #D9D9D9",
"6. c #C5C5C5",
"7. c #515151",
"8. c #C0C0C0",
"9. c #959595",
"0. c #DDDDDD",
"a. c #484848",
"b. c #030303",
"c. c #454545",
"d. c #060606",
"e. c #B5B5B5",
"f. c #C6C6C6",
"g. c #C4C4C4",
"h. c #A2A2A2",
"i. c #828282",
"j. c #1E1E1E",
"k. c #191919",
"l. c #7C7C7C",
"m. c #E4E4E4",
"n. c #9E9E9E",
"o. c #525252",
"p. c #B0B0B0",
"q. c #6C6C6C",
"r. c #565656",
"s. c #797979",
"t. c #3A3A3A",
" ",
" ",
" . + @ # # # ",
" $ % & * = - ; > , ' ",
" ) ! = ~ { ] ^ / ( _ : < ",
" [ } ~ | 1 2 3 4 5 6 7 8 9 0 ",
" a b c d 6 e f g f h e i j k l m ",
" n o p 6 q r g g f r s i t u v w ",
" x y z A B C D E F F G G D C H I J K L ",
"x M N O P e r g Q R R Q S f h e i T U V ",
"x W y ~ t 5 q q g r S r f q e i X Y _ V ",
"x Z y ` t 3 4 e s q q q s ...+.~ ] J @. ",
"x Z #.$.v %.i .. .e e e 4 5 &.*.=.-.;.>. ",
"x Z ,.'.1 ; %.3 i 5 5 i i T ).=.!./ ~.x ",
"x Z {.].^./.(._.:.%.%.%.<.[.}.!.p &.>. ",
"x Z /.|.1.7 +.2.6 6 6 3.$.4.=.5.).% x ",
"x Z e 6.L 7.8.( 9.0.(.= Y J ).( a.b.x ",
"x Z g d c.d.. 3.( F e.8.~ f.U + b.].x x ",
"x Z e & ^.g.1.b.a.I h.&.i.l x j.[.k.x x x ",
"x Z l.p m.m.Y n.o.j.b.b.j.o.n.p.q.O j.n x x ",
"x & 8 8 8 8 8 8 &.&.&.&.&.&.&.8 8 r.x > N x x ",
" x x x x x x x x x x x x x x x x x x x s.t.x x ",
" x z n x ",
" x x "};

View File

@ -1,38 +1,176 @@
/* XPM */
static char * reply_all_xpm[] = {
/* columns rows colors chars-per-pixel */
"24 24 9 1",
" c None",
". c black",
"X c #673e666663d4",
"o c #eb46ea1de471",
"O c #a852a7bea3d2",
"+ c #ae51c17b9b26",
"@ c #8d4d97577838",
"# c #7c7c8b8b6e6e",
"$ c #5e0868be52d3",
/* pixels */
" ",
" ",
" .... ",
" .....XooO. ",
" .....XOooooooO. ",
" .XOooooooooooXOO. ",
" .oXXooooooooOXOo. ",
" .OoOXXooooooXOoo. ",
" .oooOOXOooXXXooO. ",
" ........XXOoOXOo. ",
" ..++++@.ooooooXO. ",
" ..+@@@.oooooooXO. ",
" ..+@@@#.oooooooO.. ",
" ..++@@@#$.ooooO... ",
" .++++@@#.$ .. ",
" .+@@@#.o .. .O .O ",
" .+@#$. .O. .O .O ",
" .#$. .O .o .O .O ",
" .$. . .O .O .O ",
" . ....O .O .O ",
" .O .O .O .O ",
" .O .O .O .O ",
" .O .O .O .O ",
" "};
static char * stock_mail_reply_to_all_xpm[] = {
"24 24 149 2",
" c None",
". c #000000",
"+ c #ADA99C",
"@ c #E6E1D0",
"# c #F0EAD9",
"$ c #A9A598",
"% c #141416",
"& c #161618",
"* c #080809",
"= c #DBD6C7",
"- c #1B1B1C",
"; c #050505",
"> c #5A5A5A",
", c #676767",
"' c #020202",
") c #807D76",
"! c #D49A3E",
"~ c #D2973B",
"{ c #040402",
"] c #6D6B6B",
"^ c #7A7979",
"/ c #030100",
"( c #040100",
"_ c #282724",
": c #DD9831",
"< c #DA962F",
"[ c #1A0E01",
"} c #BC6D1B",
"| c #BE6E13",
"1 c #BE6D13",
"2 c #BD6C13",
"3 c #3E3C36",
"4 c #D69029",
"5 c #D18D27",
"6 c #737067",
"7 c #110900",
"8 c #CF791C",
"9 c #CE791C",
"0 c #CD761A",
"a c #C47013",
"b c #4A4136",
"c c #A0731E",
"d c #96691A",
"e c #000100",
"f c #291703",
"g c #BA6613",
"h c #8C4E0D",
"i c #844A0D",
"j c #BF6D13",
"k c #1F2A0D",
"l c #306220",
"m c #4F7242",
"n c #448D44",
"o c #2E802E",
"p c #3A6F3A",
"q c #FFFFFF",
"r c #535353",
"s c #171009",
"t c #AC600C",
"u c #713F0A",
"v c #693A0A",
"w c #AA5F0A",
"x c #192B10",
"y c #275926",
"z c #68A769",
"A c #358A36",
"B c #2D812D",
"C c #FBFBFB",
"D c #F7F7F7",
"E c #FAFAFA",
"F c #F5F5F5",
"G c #4F4F4F",
"H c #AEAEAE",
"I c #141517",
"J c #6F767C",
"K c #534C46",
"L c #241609",
"M c #23180E",
"N c #484644",
"O c #354A4D",
"P c #050B07",
"Q c #4F7E4F",
"R c #399239",
"S c #2D852D",
"T c #297F29",
"U c #ACACAC",
"V c #C8C8C8",
"W c #151618",
"X c #6C7C8B",
"Y c #728EA9",
"Z c #5D6B78",
"` c #C8CBCD",
" . c #C3C7CD",
".. c #8090A2",
"+. c #5A728B",
"@. c #4E6479",
"#. c #111714",
"$. c #328732",
"%. c #2B7F2C",
"&. c #2B772C",
"*. c #434343",
"=. c #A0A0A0",
"-. c #D4D4D4",
";. c #25282A",
">. c #8A9EB4",
",. c #6A86A1",
"'. c #596A7C",
"). c #DDE1E4",
"!. c #DCE2E7",
"~. c #899CAC",
"{. c #687E96",
"]. c #546D87",
"^. c #10161D",
"/. c #8C8C8C",
"(. c #959595",
"_. c #E4E4E4",
":. c #23282D",
"<. c #8096AB",
"[. c #5D7996",
"}. c #53687D",
"|. c #CDD3D9",
"1. c #CBD2DC",
"2. c #899BAB",
"3. c #CCD4DC",
"4. c #5C748C",
"5. c #111820",
"6. c #4D4D4D",
"7. c #818181",
"8. c #C6C6C6",
"9. c #1F252B",
"0. c #6B8197",
"a. c #536D89",
"b. c #4A5D6F",
"c. c #81919F",
"d. c #8293A4",
"e. c #5A7087",
"f. c #496481",
"g. c #445D79",
"h. c #0E151B",
"i. c #6A6A6A",
"j. c #0E141A",
"k. c #0D1319",
"l. c #0E141B",
"m. c #0E131A",
"n. c #0F141A",
"o. c #636363",
"p. c #737373",
"q. c #7C7C7C",
"r. c #BCBCBC",
" ",
" . . ",
" + @ # $ . ",
" % & * = # # # . ",
" - ; > , ' ) ! ~ # . ",
" { ] ^ / ( _ : < # . ",
" [ } | 1 2 3 4 5 # 6 ",
" 7 8 9 0 a b c d # # . e . . . . . . ",
" f g h i j k l m n o p . q q q q q r . ",
" s t u v w x y z A o B . C D E F G H . ",
" I J K L M N O P Q R S T . F F F G U V . ",
" W X Y Z ` ...+.@.#.$.%.&.. F F *.=.-.V . ",
" ;.>.,.'.).!.~.{.].^.. . . /.F G (.-._.V . ",
" :.<.[.}.|.1.2.3.4.5.F F F F 6.7.8._._.V . ",
" 9.0.a.b.c.d.e.f.g.h.F F F G i.=._.F _.V . ",
" j.k.l.l.l.j.m.n.o.G F G (.8.p.8.F _.V . ",
" . q C F o.8.F _.-.G U 8._.F q._._.V . ",
" . q F p.-.F F F F _._.F F F F q._.V . ",
" . q q.-._._._._._._._._._._._._.q.V . ",
" . p.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.o.. ",
" . . . . . . . . . . . . . . . . . . ",
" ",
" ",
" "};

View File

@ -1,38 +1,94 @@
/* XPM */
static char * mail_reply_xpm[] = {
/* columns rows colors chars-per-pixel */
"24 24 9 1",
static char * stock_mail_reply_xpm[] = {
"24 24 67 1",
" c None",
". c black",
"X c #673e666663d4",
"o c #eb46ea1de471",
"O c #a852a7bea3d2",
"+ c #ae51c17b9b26",
"@ c #8d4d97577838",
"# c #7c7c8b8b6e6e",
"$ c #5e0868be52d3",
/* pixels */
". c #000000",
"+ c #535353",
"@ c #FFFFFF",
"# c #FEFEFE",
"$ c #FDFDFD",
"% c #FCFCFC",
"& c #FBFBFB",
"* c #F9F9F9",
"= c #F8F8F8",
"- c #F7F7F7",
"; c #F6F6F6",
"> c #F5F5F5",
", c #F4F4F4",
"' c #E3E3E3",
") c #EEEEEE",
"! c #4F4F4F",
"~ c #F3F3F3",
"{ c #F2F2F2",
"] c #F1F1F1",
"^ c #F0F0F0",
"/ c #EFEFEF",
"( c #EDEDED",
"_ c #AEAEAE",
": c #E4E4E4",
"< c #434343",
"[ c #ACACAC",
"} c #C8C8C8",
"| c #A0A0A0",
"1 c #D4D4D4",
"2 c #ECECEC",
"3 c #959595",
"4 c #3E3E3E",
"5 c #4D4D4D",
"6 c #818181",
"7 c #C6C6C6",
"8 c #3D1A13",
"9 c #6A6A6A",
"0 c #636363",
"a c #B9B9B9",
"b c #737373",
"c c #EAC0BA",
"d c #7C7C7C",
"e c #DF9E95",
"f c #E0A198",
"g c #E1A59D",
"h c #E2A79E",
"i c #E3ABA3",
"j c #E3AAA2",
"k c #CC6253",
"l c #DD978D",
"m c #DF9F97",
"n c #DE9A90",
"o c #DD968C",
"p c #DD948A",
"q c #B14334",
"r c #BCBCBC",
"s c #431913",
"t c #EAC2BC",
"u c #DF9C92",
"v c #DD998F",
"w c #B54535",
"x c #65261D",
"y c #983A2C",
"z c #7C2F24",
"A c #63251D",
"B c #6C291F",
" ",
" ",
" ",
" ",
" ",
" .... ",
" .....XooO. ",
" .....XOooooooO. ",
" .XOooooooooooXOO. ",
" .oXXooooooooOXOo. ",
" .OoOXXooooooXOoo. ",
" .oooOOXOooXXXooO. ",
" ........XXOoOXOo. ",
" ..++++@.ooooooXO. ",
" ..+@@@.oooooooXO. ",
" ..+@@@#.oooooooO.. ",
" ..++@@@#$.ooooO... ",
" .++++@@#.$.oO... ",
" .+@@@#.o.... ",
" .+@#$... ",
" .#$. ",
" .$. ",
" ................. ",
" .+@@@@#$%&*=-;>,'+. ",
" .)!@>,~{{]^^/)('!_. ",
" .@:<$~{{]^/))('![}. ",
" .@>:!&]^^/)(('<|1}. ",
" .@&>:<=^/)(2'!31:}. ",
" .@>>>:4>)(2'567::}. ",
" .@&8>:9<~2'!977>:}. ",
" .@..:0@a!^!37b7>:}. ",
" ..c.0@>:1![7::d::}. ",
" .ce.......:>>>:d:}. ",
" .cfghihjek.::::::d}. ",
" .clmenoonpq.rrrrrrr0. ",
"stnuvvlnnnnw.......... ",
" .xyyyyyyyyz. ",
" .xyyAAAAAB. ",
" .xy....... ",
" .x. ",
" .. ",
" . ",
" "};

View File

@ -0,0 +1,99 @@
/* XPM */
static char * stock_mail_handling_xpm[] = {
"24 24 72 1",
" c None",
". c #000000",
"+ c #BCBCBC",
"@ c #FFFFFF",
"# c #535353",
"$ c #EEEEEE",
"% c #4F4F4F",
"& c #F5F5F5",
"* c #FBFBFB",
"= c #F7F7F7",
"- c #FAFAFA",
"; c #AEAEAE",
"> c #E4E4E4",
", c #434343",
"' c #ACACAC",
") c #C8C8C8",
"! c #A0A0A0",
"~ c #D4D4D4",
"{ c #959595",
"] c #3E3E3E",
"^ c #4D4D4D",
"/ c #818181",
"( c #C6C6C6",
"_ c #6A6A6A",
": c #636363",
"< c #B9B9B9",
"[ c #737373",
"} c #010101",
"| c #AAAAAA",
"1 c #0B0B0B",
"2 c #0C0C0C",
"3 c #060606",
"4 c #E4E3E1",
"5 c #050505",
"6 c #B3B3B1",
"7 c #484641",
"8 c #9F9D96",
"9 c #888781",
"0 c #7C7C7C",
"a c #B0AFAD",
"b c #A8A7A1",
"c c #908E86",
"d c #97958E",
"e c #807D74",
"f c #969696",
"g c #090909",
"h c #595854",
"i c #605E57",
"j c #898883",
"k c #76746B",
"l c #43423F",
"m c #282724",
"n c #363430",
"o c #6D6B63",
"p c #E2E2E1",
"q c #B6B5AF",
"r c #21201E",
"s c #0A0908",
"t c #181816",
"u c #E6E6E4",
"v c #65635C",
"w c #161614",
"x c #8C8B89",
"y c #DFDEDC",
"z c #B0AFA9",
"A c #D5D4D1",
"B c #93918B",
"C c #D6D5D2",
"D c #ABA9A3",
"E c #5D5C55",
"F c #494943",
"G c #42413C",
" ",
" ................. ",
" .+@@@@@@@@@@@@@@@#. ",
" .$%&*&*=*&*&*=-&%;. ",
" .@>,&&&&&&&&&&&%'). ",
" .@&>%&&&&&&&&&,!~). ",
" .@*&>,&&&&&&&%{~>). ",
" .@&&&>]&&&&&^/(>>). ",
" .@*&&&_,&&&%_!>&>). ",
" .@&&&:<<%&%{([(}}}. ",
" .@*&:(&>~%'|12:345... ",
" .@&[~&&&&>>2>62787.9.. ",
" .@0~>>>>>>>1ab888cde7. ",
" .[+++++++++fg88hijek. ",
" ...........78ilmn8o7..",
" .pq8hrstuevi.",
" ..78jnwxyv7..",
" .zequABv. ",
" .CD8eekkE7. ",
" ..h.7k7.F.. ",
" .. .G. .. ",
" ... ",
" ",
" "};

291
etc/images/mail/save.xpm Normal file
View File

@ -0,0 +1,291 @@
/* XPM */
static char * mail_save_xpm[] = {
"24 24 264 2",
" c None",
". c #000000",
"+ c #141414",
"@ c #262626",
"# c #212121",
"$ c #1F1F1F",
"% c #1E1E1E",
"& c #1D1D1D",
"* c #202020",
"= c #232323",
"- c #292929",
"; c #171717",
"> c #121212",
", c #B8B8B8",
"' c #FFFFFF",
") c #A8A8A8",
"! c #0E0E0E",
"~ c #595959",
"{ c #444444",
"] c #4F4F4F",
"^ c #050505",
"/ c #222222",
"( c #3D3D3D",
"_ c #FEFEFE",
": c #FCFCFC",
"< c #FDFDFD",
"[ c #CACACA",
"} c #191919",
"| c #B3B1B0",
"1 c #EEECEB",
"2 c #F0DCAA",
"3 c #E5C470",
"4 c #DFB84F",
"5 c #8A681F",
"6 c #100E09",
"7 c #FBFBFB",
"8 c #515151",
"9 c #F0F0F0",
"0 c #D6D6D6",
"a c #EEECE9",
"b c #E6D498",
"c c #EED682",
"d c #EED680",
"e c #E3C15E",
"f c #D29815",
"g c #976E15",
"h c #7F5B0A",
"i c #1C190F",
"j c #D9D9D9",
"k c #424242",
"l c #F1F1F1",
"m c #F3F3F3",
"n c #EBE9E5",
"o c #CBB771",
"p c #735817",
"q c #C6A546",
"r c #E3C05D",
"s c #BC8710",
"t c #AD7C10",
"u c #6B6B6B",
"v c #A0A0A0",
"w c #535353",
"x c #505050",
"y c #AE9C5C",
"z c #292928",
"A c #CECDCA",
"B c #CAC9C7",
"C c #1A1917",
"D c #9C7E2B",
"E c #AB7C12",
"F c #242012",
"G c #555555",
"H c #DEDEDE",
"I c #E8E8E8",
"J c #3B3B3B",
"K c #D7D6D6",
"L c #656462",
"M c #DAD9D7",
"N c #E1E0DF",
"O c #1A1A19",
"P c #3D351F",
"Q c #A37819",
"R c #231F13",
"S c #282828",
"T c #898989",
"U c #EFEFEF",
"V c #FAFAFA",
"W c #E8E7E6",
"X c #8B8B8A",
"Y c #0B0B06",
"Z c #A97C1A",
"` c #1B1B1B",
" . c #C9C9C9",
".. c #DFDFDF",
"+. c #EBEBEB",
"@. c #ECECEC",
"#. c #E1E1E1",
"$. c #221E11",
"%. c #EAE8E3",
"&. c #C58F13",
"*. c #B68411",
"=. c #826321",
"-. c #302C19",
";. c #131313",
">. c #1A1A1A",
",. c #161616",
"'. c #151515",
"). c #181818",
"!. c #1B1B1A",
"~. c #141413",
"{. c #363220",
"]. c #916F25",
"^. c #322F1E",
"/. c #98B4C8",
"(. c #25313B",
"_. c #A9CCE0",
":. c #545A68",
"<. c #BC6A60",
"[. c #AD5A51",
"}. c #A4574D",
"|. c #2B2719",
"1. c #353120",
"2. c #5A4D51",
"3. c #6E8DA2",
"4. c #0C1820",
"5. c #BAE5FF",
"6. c #696E6F",
"7. c #F9F9F9",
"8. c #EBEBEA",
"9. c #937025",
"0. c #CDCAC1",
"a. c #73726E",
"b. c #7496AF",
"c. c #0A131A",
"d. c #BAE0FD",
"e. c #6A6E71",
"f. c #ECEDEC",
"g. c #DEDFDF",
"h. c #DBDDDD",
"i. c #D8DBDB",
"j. c #CDCFCF",
"k. c #312E1B",
"l. c #2F2C19",
"m. c #B2B3B0",
"n. c #C0C0BE",
"o. c #6F6D6B",
"p. c #7C9FBB",
"q. c #050F15",
"r. c #B7DDFC",
"s. c #54575A",
"t. c #F4F4F3",
"u. c #ECECEB",
"v. c #F3F3F2",
"w. c #7F7D7A",
"x. c #7EA0BB",
"y. c #020A10",
"z. c #B1D7F7",
"A. c #FDFCFB",
"B. c #EFEFEE",
"C. c #EDEDEC",
"D. c #EBECEB",
"E. c #EBECEC",
"F. c #F7F7F6",
"G. c #7D7977",
"H. c #7F9FB9",
"I. c #050B0E",
"J. c #B3DDF7",
"K. c #685050",
"L. c #847F7C",
"M. c #7E9DB7",
"N. c #0A0B0C",
"O. c #A9D3F0",
"P. c #7B99AB",
"Q. c #6B6E70",
"R. c #63696C",
"S. c #60666B",
"T. c #5E6569",
"U. c #555E67",
"V. c #5D6267",
"W. c #61676B",
"X. c #64696D",
"Y. c #62666A",
"Z. c #6B747E",
"`. c #7D9CB4",
" + c #000508",
".+ c #A8CBED",
"++ c #7498B7",
"@+ c #6F92B0",
"#+ c #3F5160",
"$+ c #4A5E70",
"%+ c #566E82",
"&+ c #4D6779",
"*+ c #52697C",
"=+ c #52697A",
"-+ c #54687A",
";+ c #455E70",
">+ c #7697B4",
",+ c #92A9BC",
"'+ c #000205",
")+ c #A8CEEB",
"!+ c #7196B3",
"~+ c #4D5152",
"{+ c #D7D2CB",
"]+ c #F1EEEA",
"^+ c #FAF8F5",
"/+ c #F9F8F5",
"(+ c #E8E4DF",
"_+ c #D8D4CD",
":+ c #9D968B",
"<+ c #425563",
"[+ c #446783",
"}+ c #A7C4DA",
"|+ c #000101",
"1+ c #A5CDEA",
"2+ c #7196B1",
"3+ c #57595C",
"4+ c #534F46",
"5+ c #2E281F",
"6+ c #CAC7C2",
"7+ c #C9C4BD",
"8+ c #C2BBB1",
"9+ c #E3E0DC",
"0+ c #314353",
"a+ c #40647C",
"b+ c #B6C9DA",
"c+ c #A3CDEB",
"d+ c #7695B1",
"e+ c #525455",
"f+ c #474239",
"g+ c #3B372D",
"h+ c #C0BCB5",
"i+ c #C7C2BA",
"j+ c #E2DFD9",
"k+ c #F8F6F3",
"l+ c #344652",
"m+ c #406479",
"n+ c #A6C3DA",
"o+ c #010000",
"p+ c #708798",
"q+ c #6A8DA7",
"r+ c #4F5052",
"s+ c #F7F2EC",
"t+ c #59534B",
"u+ c #57524A",
"v+ c #C1BCB4",
"w+ c #EBE9E4",
"x+ c #FFFFFD",
"y+ c #30414E",
"z+ c #415C6F",
"A+ c #A2C4DC",
"B+ c #020000",
"C+ c #030406",
"D+ c #141A1F",
"E+ c #151718",
"F+ c #35332F",
"G+ c #393634",
"H+ c #41403E",
"I+ c #3F3E3D",
"J+ c #454344",
"K+ c #434241",
"L+ c #312F2C",
"M+ c #02070A",
"N+ c #070E12",
"O+ c #465A69",
". + @ # $ % & & & % * = - ; . ",
"> , ' ' ' ' ' ' ' ' ' ' ' ) ! ",
"@ ' ~ ' ' ' ' ' ' ' ' ' { ] ^ . . . ",
"/ ' ' ( ' _ : < < ' [ } | 1 2 3 4 5 . 6 ",
"* ' ' 7 8 9 < 7 _ 0 @ a b c d d e f g h i ",
"$ ' ' ' j k l : m $ n o . . . p q r s t i ",
"* ' ' ' u v w ' x . y z A B C D d f E F ",
"/ ' ' G H 7 I J , K > L M N O P d f Q R ",
"S ' T U ' ' ' _ V ' < W X Y . . . d f Z . . . ",
"` ...U +.+.+.@.@.+.@.+.#.$.%.d d d f &.*.=.-.. ",
". ;.>.; ,.'.'.'.'.'.,.).!.~.{.%.d d f f ].^./.(.",
" . _.:.<.[.}.|.%.d f ].1.2.3.4.",
" . 5.6.' ' 7.8.-.%.9.^.0.a.b.c.",
" . d.e.f.g.h.i.j.k.l.m.n.o.p.q.",
" . r.s.' ' ' ' ' ' t.u.v.w.x.y.",
" . z.6.A.B.C.D.+.E.C.U F.G.H.I.",
" . J.K.' ' ' ' ' ' ' ' ' L.M.N.",
" . O.P.Q.R.S.T.U.V.W.X.Y.Z.`. +",
" . .+++@+#+$+%+&+*+=+-+;+>+,+'+",
" . )+!+~+{+]+^+/+(+_+:+<+[+}+|+",
" . 1+2+3+' 4+5+6+7+8+9+0+a+b+. ",
" . c+d+e+' f+g+h+i+j+k+l+m+n+o+",
" . p+q+r+s+t+u+v+w+x+]+y+z+A+B+",
" C+D+E+F+G+H+I+J+K+L+M+N+O+. "};

View File

@ -1,39 +1,85 @@
/* XPM */
static char *magick[] = {
/* columns rows colors chars-per-pixel */
"24 24 9 1",
" c Gray0",
". c #675e6580613e",
"X c #8c8c7c7c6969",
"o c #9b458d377822",
"O c #a941a6459f3e",
"+ c #c8c8b2b29898",
"@ c #dadac2c2a5a5",
"# c #eb4dea2fe4ad",
"$ c None",
/* pixels */
"$$$$$$$$$$$$$$$$$$$$$$$$",
"$$$$$$$$$$$$$$$$$$$$$$$$",
"$$$$$$$$$$$$$ $$$$$$$",
"$$$$$$$$ .@#+ $$$$$$",
"$$$ .+#####@O $$$$$$",
"$$ .+##########.+O $$$$$",
"$$ @..########O.+# $$$$$",
"$$ O@O..@#####.+## $$$$$",
"$$$ ###+O.O##...##O $$$$",
"$$$ @####@+..O#O.+# $$$$",
"$$$ O####.#######.O $$$$",
"$$$$ ###+O########.O $$$",
"$$$$ ###.########@O $$$",
"$$$$ +#+O#####@O $$$$$",
"$$$$$ #.###@O $$$$$$",
"$$$$$ .O@O $$ .. $$$$$",
"$$$$$ .. $$$$ .oo. $$$$",
"$$$$$$ $$$$$ oo $$$",
"$$$$$$$$$$$$$$$ Oo $$$$$",
"$$$$$$$$$$$$$$ oOOX $$$$",
"$$$$$$$$$$$$$$ ++++ $$$$",
"$$$$$$$$$$$$$ O@@@@O $$$",
"$$$$$$$$$$$$$ $$$",
"$$$$$$$$$$$$$$$$$$$$$$$$"
};
static char * stock_mail_send_xpm[] = {
"24 24 58 1",
" c None",
". c #4F3F0A",
"+ c #000000",
"@ c #F4E6B5",
"# c #F4E5B3",
"$ c #EDD684",
"% c #755F10",
"& c #EDD580",
"* c #EED685",
"= c #AF8D18",
"- c #EFD98C",
"; c #EED88B",
"> c #EDD582",
", c #EED889",
"' c #EFDA92",
") c #F0DB93",
"! c #735D10",
"~ c #535353",
"{ c #FFFFFF",
"] c #F0DC97",
"^ c #F6F6F6",
"/ c #F5F5F5",
"( c #F4F4F4",
"_ c #E3E3E3",
": c #EEEEEE",
"< c #4F4F4F",
"[ c #EDD37C",
"} c #EDEDED",
"| c #AEAEAE",
"1 c #E4E4E4",
"2 c #434343",
"3 c #FDFDFD",
"4 c #F3F3F3",
"5 c #E4BF3D",
"6 c #CBA41C",
"7 c #D1A81C",
"8 c #907413",
"9 c #7C6411",
"0 c #ACACAC",
"a c #C8C8C8",
"b c #FBFBFB",
"c c #A0A0A0",
"d c #D4D4D4",
"e c #F8F8F8",
"f c #F0F0F0",
"g c #EFEFEF",
"h c #ECECEC",
"i c #959595",
"j c #3E3E3E",
"k c #4D4D4D",
"l c #818181",
"m c #C6C6C6",
"n c #6A6A6A",
"o c #636363",
"p c #B9B9B9",
"q c #737373",
"r c #7C7C7C",
"s c #BCBCBC",
" ",
" . ",
" +@+ ",
" +#$%+ ",
" +#&*=%+ ",
" +#-;>==%+ ",
" +#,',>===%+ ",
" ++++++)$&=!++++++ ",
" +~{{{{+]$$=!+^/(_~+ ",
" +:<{/(+,[$=!+:}_<|+ ",
" +{1234+56789+}_<0a+ ",
" +{/1<b+++++++_2cda+ ",
" +{b/12efg:}h_<id1a+ ",
" +{///1j/:}h_klm11a+ ",
" +{b//1n24h_<nmm/1a+ ",
" +{//1o{p<f<imqm/1a+ ",
" +{b1o{/1d<0m11r11a+ ",
" +{1q{////11///1r1a+ ",
" +{r{111111111111ra+ ",
" +qssssssssssssssso+ ",
" ++++++++++++++++++ ",
" ",
" ",
" "};

217
etc/images/mail/spam.xpm Normal file
View File

@ -0,0 +1,217 @@
/* XPM */
static char * stock_spam_xpm[] = {
"24 24 190 2",
" c None",
". c #1D1E1E",
"+ c #333839",
"@ c #393F40",
"# c #171819",
"$ c #B2B8B9",
"% c #D5E3E7",
"& c #AABABD",
"* c #64696A",
"= c #0C0D0D",
"- c #929C9E",
"; c #E7F0F3",
"> c #EDF0F1",
", c #E5EDEF",
"' c #C5D9DD",
") c #2E3132",
"! c #3F4343",
"~ c #1F2121",
"{ c #DFEBEE",
"] c #B7C4C8",
"^ c #D2D9DA",
"/ c #E1EFF2",
"( c #B6CBCF",
"_ c #3C4547",
": c #1E2223",
"< c #191E1F",
"[ c #2D2E2F",
"} c #191A1A",
"| c #252829",
"1 c #7E8E92",
"2 c #B7C2C3",
"3 c #C3D9DD",
"4 c #9CACB0",
"5 c #C3CDCE",
"6 c #C7E1E7",
"7 c #668F97",
"8 c #90ACB2",
"9 c #CDDDE1",
"0 c #485559",
"a c #88A6AC",
"b c #1F2223",
"c c #3F4545",
"d c #242728",
"e c #313B3E",
"f c #A8C2C8",
"g c #B2BDC0",
"h c #CFE5E9",
"i c #C2D9DE",
"j c #81989C",
"k c #A2C0C5",
"l c #85A9B1",
"m c #E5ECEE",
"n c #E7F2F4",
"o c #9BAEB3",
"p c #C8E1E7",
"q c #3A3E3F",
"r c #0C0E0E",
"s c #000000",
"t c #333737",
"u c #B3C2C5",
"v c #DDEDF0",
"w c #D8E4E6",
"x c #DAECEF",
"y c #D5E9ED",
"z c #D2E7EC",
"A c #95ADB2",
"B c #DBE2E2",
"C c #EDEFF0",
"D c #A2B1B3",
"E c #8FA4A8",
"F c #D7E2E5",
"G c #798F94",
"H c #151819",
"I c #F3B5A7",
"J c #865E55",
"K c #AFB9BB",
"L c #F1F8F9",
"M c #F7FBFB",
"N c #D9EBEF",
"O c #ECF4F6",
"P c #F3F7F7",
"Q c #E9F2F4",
"R c #EEF2F3",
"S c #E9EDEE",
"T c #C5C8C9",
"U c #C2C6C8",
"V c #E0E7E7",
"W c #DDEAED",
"X c #7A9DA5",
"Y c #EB8169",
"Z c #B83618",
"` c #924E3C",
" . c #9FA5A6",
".. c #E3EEF0",
"+. c #ECF5F7",
"@. c #D6EAED",
"#. c #CBE4E9",
"$. c #D9E7E9",
"%. c #E1EBED",
"&. c #B8CBD0",
"*. c #BDCBCF",
"=. c #ABB3B5",
"-. c #E3E5E5",
";. c #DCEBEF",
">. c #6A979F",
",. c #131819",
"'. c #B43518",
"). c #E76A4D",
"!. c #B53F24",
"~. c #CB705A",
"{. c #C4D8DB",
"]. c #D2E6E9",
"^. c #CAE3E8",
"/. c #A9C8CF",
"(. c #7FA4AA",
"_. c #82B4BE",
":. c #E2EFF0",
"<. c #D3E7EA",
"[. c #AFD5DE",
"}. c #C7E2E7",
"|. c #E7F1F2",
"1. c #97C3CB",
"2. c #637F86",
"3. c #191311",
"4. c #EF9985",
"5. c #F1A897",
"6. c #E76547",
"7. c #C58B7D",
"8. c #A8ABAC",
"9. c #70A1AB",
"0. c #88B5BE",
"a. c #95C7D1",
"b. c #ADD4DC",
"c. c #DCEAEF",
"d. c #B5D8E0",
"e. c #CAE4E9",
"f. c #95BEC6",
"g. c #6696A0",
"h. c #585857",
"i. c #51190C",
"j. c #D9401D",
"k. c #EC8A74",
"l. c #E17055",
"m. c #DD8D7A",
"n. c #D8E7EA",
"o. c #D8E9ED",
"p. c #D6EAEE",
"q. c #D9EBEE",
"r. c #E4F0F3",
"s. c #CFE3E8",
"t. c #5B94A0",
"u. c #5C7E85",
"v. c #3D221D",
"w. c #782310",
"x. c #EA7A60",
"y. c #E5A293",
"z. c #EBD9D5",
"A. c #C6D3D6",
"B. c #799FA8",
"C. c #558C98",
"D. c #45686E",
"E. c #27201F",
"F. c #5D3228",
"G. c #B86F5D",
"H. c #F1A593",
"I. c #E58D78",
"J. c #C0C0C1",
"K. c #32464B",
"L. c #4A6E75",
"M. c #282121",
"N. c #4A2E27",
"O. c #C6968B",
"P. c #DDA89B",
"Q. c #5F1C0D",
"R. c #F2AFA0",
"S. c #A36F63",
"T. c #341C17",
"U. c #301A15",
"V. c #674C45",
"W. c #E4AEA1",
"X. c #8D2A13",
"Y. c #030505",
"Z. c #A2432E",
"`. c #E4A799",
" + c #D97C67",
".+ c #B66A59",
"++ c #B26C5C",
"@+ c #882812",
"#+ c #DB411D",
"$+ c #F4BAAC",
" ",
" ",
" ",
" ",
" . + @ ",
" # $ % & * . ",
" = - ; > , ' ) ! ",
" ~ { ] ^ / ( _ : < [ } ",
" | 1 2 3 4 5 6 7 8 9 0 a b ",
" c d e f g h i j k l m n o p q r ",
" s t u v w / x y z A B C D E F G H ",
" s s I J K L M N O P Q R S T U V W X < ",
"s I Y Z ` ...+.@.#.$.%.h &.*.=.-.;.>.,.s ",
"s '.).Y !.~.{.].^./.(._.:.<.[.}.|.1.2.3.4.s ",
"s '.'.'.).5.6.7.8.9.0.a.b.c.d.e.f.g.h.i.j.k.s ",
"s '.'.'.'.'.).5.l.m.n.o.p.q.r.s.t.u.v.w.j.x.s ",
" s s '.'.'.'.'.).5.6.y.z.A.B.C.D.E.F.G.H.4.s ",
" s s '.'.'.'.'.).5.I.J.K.L.M.N.O.P.Q.s ",
" s s '.'.'.'.'.R.S.T.U.V.W.X.s s ",
" Y.s s Z.'.'.`. +.+++@+s s ",
" s s s '.#+$+s s s ",
" s s s s s ",
" ",
" "};

119
etc/images/next-page.xpm Normal file
View File

@ -0,0 +1,119 @@
/* XPM */
static char * stock_next_page_xpm[] = {
"24 24 92 2",
" c None",
". c #000000",
"+ c #5B7289",
"@ c #FFFFFF",
"# c #F2F2F2",
"$ c #E5E5E5",
"% c #D8D8D8",
"& c #CCCCCC",
"* c #B0B0B0",
"= c #8B8B8B",
"- c #6A6A6A",
"; c #494949",
"> c #888888",
", c #C9C9C9",
"' c #E3E3E3",
") c #EEEEEE",
"! c #E6E6E6",
"~ c #DEDEDE",
"{ c #D6D6D6",
"] c #ADADAD",
"^ c #556D85",
"/ c #47617B",
"( c #BFBFBF",
"_ c #B2B2B2",
": c #ACACAC",
"< c #A6A6A6",
"[ c #F6F6F6",
"} c #384F66",
"| c #3A5067",
"1 c #DADADA",
"2 c #3A5168",
"3 c #D3D3D3",
"4 c #3B5269",
"5 c #47617C",
"6 c #3D526A",
"7 c #48627D",
"8 c #B6B6B6",
"9 c #959595",
"0 c #7C7C7C",
"a c #616161",
"b c #464646",
"c c #262626",
"d c #C5C5C5",
"e c #3E546A",
"f c #49637D",
"g c #3F556B",
"h c #4B647E",
"i c #40566C",
"j c #4C647F",
"k c #41576D",
"l c #4C657F",
"m c #42586E",
"n c #4E6780",
"o c #44586F",
"p c #4F6881",
"q c #B5B5B5",
"r c #45596F",
"s c #506982",
"t c #77838F",
"u c #9C9FA1",
"v c #91969C",
"w c #91979C",
"x c #92979C",
"y c #92979D",
"z c #A2A3A4",
"A c #9D9FA2",
"B c #8F9296",
"C c #8F9396",
"D c #8F9397",
"E c #909397",
"F c #868788",
"G c #465B70",
"H c #526A83",
"I c #3E5975",
"J c #3F5A76",
"K c #415B77",
"L c #425C78",
"M c #435E79",
"N c #445F7A",
"O c #46607B",
"P c #68727D",
"Q c #7D8185",
"R c #616A73",
"S c #3B4F63",
"T c #3C5064",
"U c #3C5065",
"V c #3E5166",
"W c #3F5266",
"X c #405367",
"Y c #405468",
"Z c #344353",
"` c #2F4050",
" ",
" ",
" . . . . . . . . . . . . . . . . ",
" . + @ # $ % & * = - ; > , ' ) ! ~ { ] ^ . ",
" . / @ # $ % & ( _ : < @ @ [ ) ! ~ { _ } . ",
" . / @ # $ % & ( _ : < @ ' [ ) ! ~ { _ | . ",
" . / @ # $ % & ( _ : < @ . 1 ) ! ~ { * 2 . ",
" . / @ # $ % & ( _ : < @ . . 3 ! ~ { * 4 . ",
" . 5 @ # $ % & ( _ : < @ . . . & ~ { * 6 . ",
" . 7 @ # $ 8 9 0 a b c . . . . . d { * e . ",
" . f @ # $ % & ( _ : < @ . . . & ~ { * g . ",
" . h @ # $ % & ( _ : < @ . . 3 ! ~ { * i . ",
" . j @ # $ % & ( _ : < @ . 1 ) ! ~ { * k . ",
" . l @ # $ % & ( _ : < @ ' [ ) ! ~ { * m . ",
" . n @ # $ % & ( _ : < @ @ [ ) ! ~ { * o . ",
" . p @ # $ % & ( _ : < @ @ [ ) ! ~ { q r . ",
" . s t u v w x y y z < A B C C D D E F G . ",
" . H I J K L M N O P Q R S T U V W X Y Z . ",
" . . . . . . . . . ` . . . . . . . . . . ",
" . . . ",
" ",
" ",
" ",
" "};

View File

@ -1,5 +1,5 @@
/* XPM */
static char * refresh_xpm[] = {
static char * stock_refresh_xpm[] = {
"24 24 86 1",
" c None",
". c #000000",

29
etc/images/separator.xpm Normal file
View File

@ -0,0 +1,29 @@
/* XPM */
static char * sep_xpm[] = {
"1 24 2 1",
" c None s backgroundToolBarColor",
". c #776758",
" ",
" ",
" ",
".",
".",
".",
".",
".",
".",
".",
".",
".",
".",
".",
".",
".",
".",
".",
".",
".",
".",
" ",
" ",
" "};

View File

@ -0,0 +1,33 @@
/* XPM */
static char * stock_sort_ascending_xpm[] = {
"23 23 7 1",
" c None",
". c #314E6C",
"+ c #000000",
"@ c #D1DECF",
"# c #7DA377",
"$ c #E4ECE3",
"% c #B3C9AF",
" ",
" .... ",
" .. .. ",
" .. .. ",
" ...... ",
" .. .. ",
" .. .. ",
" ",
" + ",
" ",
" + ",
" ",
" + + ",
" +@+ + ",
" +@##+ ++ ++++++ ",
" +###+$+ +++ ",
" +##%#+ +++ ",
" +%##+ +++ ",
" +$###+ +++ ",
" +++++++ ++++++ ",
" ",
" ",
" "};

View File

@ -0,0 +1,29 @@
/* XPM */
static char * stock_sort_column_ascending_xpm[] = {
"24 24 2 1",
" c None",
". c #000000",
" ",
" ",
" ... ",
" . .. ",
" .. ",
" .. ",
" .. ",
" .. ",
" .. ",
" ..... . ",
" ",
" . ",
" ",
" . ",
" .... ",
" .. .. ",
" .. .. ",
" .. .. ",
" ..... ",
" .. ",
" . ... ",
" ..... ",
" ",
" "};

View File

@ -0,0 +1,55 @@
/* XPM */
static char * stock_sort_criteria_xpm[] = {
"24 24 28 1",
" c None",
". c #000000",
"+ c #FFFFFF",
"@ c #D3D3D3",
"# c #F2ECE1",
"$ c #F4EFE5",
"% c #DFDAD2",
"& c #C9C4BD",
"* c #74716E",
"= c #FAFAFA",
"- c #EADFC9",
"; c #ECE2CF",
"> c #EEE5D4",
", c #4C4B48",
"' c #F5F5F5",
") c #C9C9C9",
"! c #E2D2B1",
"~ c #CFC4B1",
"{ c #BFBFBF",
"] c #C0C0C0",
"^ c #C7B99C",
"/ c #F0F0F0",
"( c #B7B7B7",
"_ c #9A8F78",
": c #877E69",
"< c #AFA389",
"[ c #A09889",
"} c #314E6C",
" ",
" ",
" ...... ",
" ... ",
" ... ",
" ... ",
" ......... ... ",
" .+@.#$%&*. ...... ",
" .=@.-;;;>, ",
" .').!!!!.~. ",
" .{].^^!.^.~. ",
" ./(.._.^.:.~. ",
" .....<.:...[. ",
" .:.. .. ",
" .. ",
" ",
" }}}} ",
" }} }} ",
" }} }} ",
" }}}}}} ",
" }} }} ",
" }} }} ",
" ",
" "};

View File

@ -0,0 +1,33 @@
/* XPM */
static char * stock_sort_descending_xpm[] = {
"24 23 7 1",
" c None",
". c #000000",
"+ c #D1DECF",
"@ c #7DA377",
"# c #314E6C",
"$ c #E4ECE3",
"% c #B3C9AF",
" ",
" ",
" ...... ",
" ... ",
" ... ",
" ... ",
" ... ",
" ...... ",
" . ",
" ",
" . ",
" ",
" . . ",
" .+. . ",
" .+@@. .. #### ",
" .@@@.$. ## ## ",
" .@@%@. ## ## ",
" .%@@. ###### ",
" .$@@@. ## ## ",
" ....... ## ## ",
" ",
" ",
" "};

View File

@ -0,0 +1,22 @@
/* XPM */
static char * stock_sort_row_ascending_xpm[] = {
"21 17 2 1",
" c None",
". c #000000",
" ",
" ",
" ",
" ",
" ... .... ",
" . .. .. .. ",
" .. .. .. ",
" .. .. .. ",
" .. ..... ",
" .. .. ",
" .. . .. ",
" ..... . . . ..... ",
" ",
" ",
" ",
" ",
" "};

View File

@ -1,4 +1,4 @@
% Reference Card for Org Mode 4.08
% Reference Card for Org Mode 4.09
%
%**start of header
\newcount\columnsperpage
@ -58,7 +58,7 @@
% Thanks to Paul Rubin, Bob Chassell, Len Tower, and Richard Mlynarik
% for their many good ideas.
\def\orgversionnumber{4.08}
\def\orgversionnumber{4.09}
\def\year{2006}
\def\shortcopyrightnotice{\vskip 1ex plus 2 fill

View File

@ -1,3 +1,133 @@
2006-03-13 Ryan Yeske <rcyeske@gmail.com>
* net/rcirc.el (rcirc) <defgroup>: Add link to manual.
(rcirc-print): Mark the start of text at the end of the prompt.
(rcirc-track-minor-mode): Add autoload cookie.
(rcirc-update-activity-string): Add space to front of mode-line
indicator.
2006-03-13 Miles Bader <miles@gnu.org>
* net/rcirc.el (rcirc-nick-abbrevs): Variable removed.
(rcirc-abbrev-nick): Function removed.
(rcirc-format-response-string): Don't call `rcirc-abbrev-nick'.
2006-03-13 David Ponce <david@dponce.com>
* tree-widget.el: Handle themes across all occurrences of the main
themes sub-directory found in tree-widget-themes-load-path.
(tree-widget-themes-directory, tree-widget-theme): Doc fix.
(tree-widget--locate-sub-directory): Return all occurrences.
(tree-widget-themes-path): New function. Replace
tree-widget-themes-directory, and return a list of directories.
(tree-widget-set-parent-theme)
(tree-widget-lookup-image): Use it.
2006-03-13 Carsten Dominik <dominik@science.uva.nl>
* textmodes/org.el: (org-link-search): Avoid self-matching of
links, allow target text to be distributed over several lines.
(org-search-not-link): New function.
(org-set-regexps-and-options, org-get-current-options): New
startup options.
(org-export-as-html): Take odd-level setting from local variable.
(org-fontify-emphasized-text): New option.
(org-set-font-lock-defaults): Include emphasized text.
(org-follow-mhe-link): Allow folder-only links, fix folder name.
(org-font-lock): Customize group renamed from `org-faces'.
2006-03-13 John Paul Wallington <jpw@pobox.com>
* ibuf-ext.el (ibuffer-never-show-predicates): Add `require'
keyword; require `ibuf-ext' feature. Thanks to Zhang Wei.
2006-03-12 Luc Teirlinck <teirllm@auburn.edu>
* cus-start.el (all): Delete :version keyword for members of the
fringe group, since the entire group is new in 22.1.
2006-03-13 Nick Roberts <nickrob@snap.net.nz>
* progmodes/gdb-ui.el (gdb-stack-list-locals-handler): Add local
map if value is hexadecimal (an address).
(gud-watch): Only search roots for existing watch expressions.
(gdb-speedbar-refresh): Bind speedbar-shown-directories to nil to
prevent caching problems with speedbar-update-directory-contents.
2006-03-12 Juri Linkov <juri@jurta.org>
* battery.el (battery-linux-proc-acpi): Check `capacity' for non-nil
before comparing with `low' and `warn'.
* info.el (Info-dir-remove-duplicates): Move point to the
beginning of the current line after deleting the entries from
redundant heading. Use marker for `limit' and compare it with
point before calling `re-search-forward'.
2006-03-11 Luc Teirlinck <teirllm@auburn.edu>
* simple.el (yank): Fix typo in docstring.
2006-03-11 Ryan Yeske <rcyeske@gmail.com>
* mail/rmailsum.el (rmail-summary-next-msg): Skip deleted
messages, where "D" is the 6th character.
2006-03-11 Eli Zaretskii <eliz@gnu.org>
* simple.el (yank): Fix last change.
2006-03-11 David Ponce <david@dponce.com>
* ispell.el (ispell-find-aspell-dictionaries): Add aliases before
merging elements from the standard ispell-dictionary-alist.
(ispell-aspell-add-aliases): Add aliases to the passed dictionary
alist, and return the new alist.
2006-03-11 Richard Stallman <rms@gnu.org>
* mail/rmail.el (rmail-ignored-headers): Discard DomainKey-Signature.
* eshell/eshell.el (eshell-prefer-to-shell): Variable deleted;
the way it is implemented is too unclean.
* simple.el (kill-region, yank): Doc fix.
* battery.el (battery-echo-area-format): Doc fix.
(battery-mode-line-format): Likewise.
(battery-linux-proc-apm, battery-linux-proc-acpi): Likewise.
(battery-linux-proc-acpi): Ignore batteries that say "charged".
2006-03-11 Kurt Hornik <Kurt.Hornik@wu-wien.ac.at>
* progmodes/octave-mod.el (octave-indent-for-comment): Behave
according to do string.
2006-03-11 Agustin Martin <agustin.martin@hispalinux.es>
* textmodes/ispell.el (ispell-menu-map-needed) [ispell-message]:
Be visible only if major mode is Mail Mode.
* textmodes/flyspell.el (flyspell-external-point-words)
(flyspell-process-localwords): Fix last changes.
2006-03-11 Eli Zaretskii <eliz@gnu.org>
* calendar/holidays.el (list-holidays): Doc fix.
* international/mule.el (auto-coding-alist): Add .odt
(OpenOffice's open document) files.
* files.el (auto-mode-alist): Add .odt (OpenOffice's open
document) files. Mention in the doc string the need to sync with
auto-coding-alist.
2006-03-10 Chong Yidong <cyd@stupidchicken.com>
* files.el (hack-local-variables-confirm): Don't prompt for ! if
enable-local-variables is set to always query, or there is no
savable variable.
2006-03-10 Bill Wohler <wohler@newt.com>
* image.el (image-load-path-for-library): Merge at least three

View File

@ -77,7 +77,18 @@ introduced by a `%' character in a control string."
Ordinary characters in the control string are printed as-is, while
conversion specifications introduced by a `%' character in the control
string are substituted as defined by the current value of the variable
`battery-status-function'."
`battery-status-function'. Here are the ones generally available:
%c Current capacity (mAh or mWh)
%r Current rate of charge or discharge
%B Battery status (verbose)
%b Battery status: empty means high, `-' means low,
`!' means critical, and `+' means charging
%d Temperature (in degrees Celsius)
%L AC line status (verbose)
%p Battery load percentage
%m Remaining time (to charge or discharge) in minutes
%h Remaining time (to charge or discharge) in hours
%t Remaining time (to charge or discharge) in the form `h:min'"
:type '(choice string (const nil))
:group 'battery)
@ -96,7 +107,18 @@ string are substituted as defined by the current value of the variable
Ordinary characters in the control string are printed as-is, while
conversion specifications introduced by a `%' character in the control
string are substituted as defined by the current value of the variable
`battery-status-function'."
`battery-status-function'. Here are the ones generally available:
%c Current capacity (mAh or mWh)
%r Current rate of charge or discharge
%B Battery status (verbose)
%b Battery status: empty means high, `-' means low,
`!' means critical, and `+' means charging
%d Temperature (in degrees Celsius)
%L AC line status (verbose)
%p Battery load percentage
%m Remaining time (to charge or discharge) in minutes
%h Remaining time (to charge or discharge) in hours
%t Remaining time (to charge or discharge) in the form `h:min'"
:type '(choice string (const nil))
:group 'battery)
@ -196,10 +218,10 @@ The following %-sequences are provided:
%b Battery status, empty means high, `-' means low,
`!' means critical, and `+' means charging
%p Battery load percentage
%s Remaining time in seconds
%m Remaining time in minutes
%h Remaining time in hours
%t Remaining time in the form `h:min'"
%s Remaining time (to charge or discharge) in seconds
%m Remaining time (to charge or discharge) in minutes
%h Remaining time (to charge or discharge) in hours
%t Remaining time (to charge or discharge) in the form `h:min'"
(let (driver-version bios-version bios-interface line-status
battery-status battery-status-symbol load-percentage
seconds minutes hours remaining-time tem)
@ -267,9 +289,9 @@ The following %-sequences are provided:
%d Temperature (in degrees Celsius)
%L AC line status (verbose)
%p Battery load percentage
%m Remaining time in minutes
%h Remaining time in hours
%t Remaining time in the form `h:min'"
%m Remaining time (to charge or discharge) in minutes
%h Remaining time (to charge or discharge) in hours
%t Remaining time (to charge or discharge) in the form `h:min'"
(let ((design-capacity 0)
(last-full-capacity 0)
full-capacity
@ -287,7 +309,7 @@ The following %-sequences are provided:
(ignore-errors (insert-file-contents (expand-file-name "state" dir)))
(when (re-search-forward "present: +yes$" nil t)
(and (re-search-forward "charging state: +\\(.*\\)$" nil t)
(member charging-state '("unknown" nil))
(member charging-state '("unknown" "charged" nil))
;; On most multi-battery systems, most of the time only one
;; battery is "charging"/"discharging", the others are
;; "unknown".
@ -369,8 +391,8 @@ The following %-sequences are provided:
rate-type)) "N/A"))
(cons ?B (or charging-state "N/A"))
(cons ?b (or (and (string= charging-state "charging") "+")
(and (< capacity low) "!")
(and (< capacity warn) "-")
(and capacity (< capacity low) "!")
(and capacity (< capacity warn) "-")
""))
(cons ?h (or (and hours (number-to-string hours)) "N/A"))
(cons ?m (or (and minutes (number-to-string minutes)) "N/A"))

View File

@ -120,6 +120,15 @@ This function is suitable for execution in a .emacs file."
"Display holidays for years Y1 to Y2 (inclusive).
The optional list of holidays L defaults to `calendar-holidays'.
If you want to control what holidays are displayed, use a
different list. For example,
(list-holidays 2006 2006
(append general-holidays local-holidays other-holidays))
will display holidays for the year 2006 defined in the 3
mentioned lists, and nothing else.
When called interactively, this command offers a choice of
holidays, based on the variables `solar-holidays' etc. See the
documentation of `calendar-holidays' for a list of the variables

View File

@ -52,7 +52,7 @@
(ctl-arrow display boolean)
(truncate-lines display boolean)
(selective-display-ellipses display boolean)
(indicate-empty-lines fringe boolean "21.1")
(indicate-empty-lines fringe boolean)
(indicate-buffer-boundaries
fringe
(choice
@ -91,8 +91,7 @@ Leaving \"Default\" unchecked is equivalent with specifying a default of
(const :tag "Do not show" (down . nil))
(const :tag "On the left" (down . left))
(const :tag "On the right" (down . right))))
(other :tag "On left, no arrows" t))
"22.1")
(other :tag "On left, no arrows" t)))
(scroll-up-aggressively windows
(choice (const :tag "off" nil) number)
"21.1")
@ -177,7 +176,7 @@ Leaving \"Default\" unchecked is equivalent with specifying a default of
(const :tag "always shown" t)
(other :tag "hidden by keypress" 1)))
;; fringe.c
(overflow-newline-into-fringe fringe boolean "22.1")
(overflow-newline-into-fringe fringe boolean)
;; indent.c
(indent-tabs-mode fill boolean)
;; keyboard.c

View File

@ -323,24 +323,6 @@ the tasks accomplished by such tools."
(= (file-modes eshell-directory-name)
eshell-private-directory-modes)))
(defcustom eshell-prefer-to-shell nil
"*If non-nil, \\[shell-command] will use Eshell instead of shell-mode."
:set (lambda (symbol value)
;; modifying the global keymap directly is odious, but how
;; else to achieve the takeover?
(if value
(progn
(define-key global-map [(meta ?!)] 'eshell-command)
;;; (define-key global-map [(meta ?|)] 'eshell-command-on-region)
)
(define-key global-map [(meta ?!)] 'shell-command)
;;; (define-key global-map [(meta ?|)] 'shell-command-on-region)
)
(set symbol value))
:type 'boolean
:require 'eshell
:group 'eshell)
;;;_* Running Eshell
;;
;; There are only three commands used to invoke Eshell. The first two

View File

@ -1872,7 +1872,7 @@ in that case, this function acts as if `enable-local-variables' were t."
;; `auto-coding-alist' with `no-conversion' coding system.
("\\.\\(arc\\|zip\\|lzh\\|zoo\\|[jew]ar\\|xpi\\)\\'" . archive-mode)
("\\.\\(ARC\\|ZIP\\|LZH\\|ZOO\\|[JEW]AR\\|XPI\\)\\'" . archive-mode)
("\\.sx[dmicw]\\'" . archive-mode) ; OpenOffice.org
("\\.\\(sx[dmicw]\\|odt\\)\\'" . archive-mode) ; OpenOffice.org
;; Mailer puts message to be edited in
;; /tmp/Re.... or Message
("\\`/tmp/Re" . text-mode)
@ -1955,6 +1955,9 @@ REGEXP and search the list again for another match.
If the file name matches `inhibit-first-line-modes-regexps',
then `auto-mode-alist' is not processed.
The extensions whose FUNCTION is `archive-mode' should also
appear in `auto-coding-alist' with `no-conversion' coding system.
See also `interpreter-mode-alist', which detects executable script modes
based on the interpreters they specify to run,
and `magic-mode-alist', which determines modes based on file contents.")
@ -2349,6 +2352,7 @@ asking you for confirmation."
(let ((name (if buffer-file-name
(file-name-nondirectory buffer-file-name)
(concat "buffer " (buffer-name))))
(offer-save (and (eq enable-local-variables t) unsafe-vars))
prompt char)
(save-window-excursion
(let ((buf (get-buffer-create "*Local Variables*")))
@ -2367,9 +2371,12 @@ asking you for confirmation."
(insert "A local variables list is specified in " name ".")))
(insert "\n\nDo you want to apply it? You can type
y -- to apply the local variables list.
n -- to ignore the local variables list.
n -- to ignore the local variables list.")
(if offer-save
(insert "
! -- to apply the local variables list, and mark these values (*) as
safe (in the future, they can be set automatically.)\n\n")
(insert "\n\n"))
(dolist (elt vars)
(cond ((member elt unsafe-vars)
(insert " * "))
@ -2381,12 +2388,17 @@ n -- to ignore the local variables list.
(insert " : ")
(princ (cdr elt) buf)
(insert "\n"))
(if (< (line-number-at-pos) (window-body-height))
(setq prompt "Please type y, n, or !: ")
(goto-char (point-min))
(setq prompt "Please type y, n, or !, or C-v to scroll: "))
(setq prompt
(format "Please type %s%s: "
(if offer-save "y, n, or !" "y or n")
(if (< (line-number-at-pos) (window-body-height))
""
", or C-v to scroll")))
(goto-char (point-min))
(let ((inhibit-quit t)
(cursor-in-echo-area t)
(exit-chars
(if offer-save '(?! ?y ?n ?\s ?\C-g) '(?y ?n ?\s ?\C-g)))
done)
(while (not done)
(message prompt)
@ -2396,21 +2408,21 @@ n -- to ignore the local variables list.
(condition-case nil
(scroll-up)
(error (goto-char (point-min))))
(setq done (memq (downcase char)
'(?! ?y ?n ?\s ?\C-g))))))
(setq done (memq (downcase char) exit-chars)))))
(if (= char ?\C-g)
(setq quit-flag nil)))
(setq char (downcase char))
(when (and (= char ?!) unsafe-vars)
(when (and offer-save (= char ?!) unsafe-vars)
(dolist (elt unsafe-vars)
(add-to-list 'safe-local-variable-values elt))
;; When this is called from desktop-restore-file-buffer,
;; coding-system-for-read may be non-nil. Reset it before
;; writing to .emacs.
(let ((coding-system-for-read nil))
(customize-save-variable
'safe-local-variable-values
safe-local-variable-values)))
(if (or custom-file user-init-file)
(let ((coding-system-for-read nil))
(customize-save-variable
'safe-local-variable-values
safe-local-variable-values))))
(kill-buffer buf)
(or (= char ?!)
(= char ?\s)

View File

@ -74,6 +74,7 @@ If a regexp, then it will be matched against the buffer's name.
If a function, it will be called with the buffer as an argument, and
should return non-nil if this buffer should not be shown."
:type '(repeat (choice regexp function))
:require 'ibuf-ext
:group 'ibuffer)
(defcustom ibuffer-always-show-predicates nil

View File

@ -77,7 +77,7 @@ value is used as a list of directories to search.")
(list (file-name-as-directory (expand-file-name "images" data-directory))
'data-directory 'load-path)))
(defun image-load-path-for-library (library image &optional path)
(defun image-load-path-for-library (library image &optional path no-error)
"Return a suitable search path for images relative to LIBRARY.
Images for LIBRARY are searched for in \"../../etc/images\" and
@ -85,8 +85,12 @@ Images for LIBRARY are searched for in \"../../etc/images\" and
well as in `image-load-path' and `load-path'.
This function returns the value of `load-path' augmented with the
path to IMAGE. If PATH is given, it is used instead of
`load-path'.
directory containing IMAGE. If PATH is given, it is used instead
of `load-path'. If PATH is t, just return the directory that
contains IMAGE.
If NO-ERROR is non-nil, return nil if a suitable path can't be
found rather than signaling an error.
Here is an example that uses a common idiom to provide
compatibility with versions of Emacs that lack the variable
@ -137,11 +141,19 @@ compatibility with versions of Emacs that lack the variable
(setq img (directory-file-name parent)
dir (expand-file-name "../" dir)))
(setq image-directory dir)))))
(no-error
;; In this case we will return nil.
(message "Could not find image %s for library %s" image library))
(t
(error "Could not find image %s for library %s" image library)))
;; Return augmented `image-load-path' or `load-path'.
(cond ((and path (symbolp path))
;; Return the directory, nil if no-error was non-nil and a
;; suitable path could not be found, or an augmented
;; `image-load-path' or `load-path'.
(cond ((or (null image-directory)
(eq path t))
image-directory)
((and path (symbolp path))
(nconc (list image-directory)
(delete image-directory
(if (boundp path)

View File

@ -1196,7 +1196,9 @@ a case-insensitive match is tried."
(point)
(if (re-search-forward "^[^* \n\t]" nil t)
(match-beginning 0)
(or limit (point-max)))) entries))))
(or limit (point-max))))
entries)
(forward-line 0))))
;; Insert the entries just found.
(while (= (line-beginning-position 0) (1- (point)))
(backward-char))
@ -1207,10 +1209,11 @@ a case-insensitive match is tried."
;; Now remove duplicate entries under the same heading.
(let ((seen nil)
(limit (point)))
(limit (point-marker)))
(goto-char start)
(while (re-search-forward "^* \\([^:\n]+:\\(:\\|[^.\n]+\\).\\)"
limit 'move)
(while (and (> limit (point))
(re-search-forward "^* \\([^:\n]+:\\(:\\|[^.\n]+\\).\\)"
limit 'move))
;; Fold case straight away; `member-ignore-case' here wasteful.
(let ((x (downcase (match-string 1))))
(if (member x seen)

View File

@ -1562,7 +1562,7 @@ text, and convert it in the temporary buffer. Otherwise, convert in-place."
(defcustom auto-coding-alist
'(("\\.\\(arc\\|zip\\|lzh\\|zoo\\|[jew]ar\\|xpi\\)\\'" . no-conversion)
("\\.\\(ARC\\|ZIP\\|LZH\\|ZOO\\|[JEW]AR\\|XPI\\)\\'" . no-conversion)
("\\.\\(sx[dmicw]\\|tar\\|tgz\\)\\'" . no-conversion)
("\\.\\(sx[dmicw]\\|odt\\|tar\\|tgz\\)\\'" . no-conversion)
("\\.\\(gz\\|Z\\|bz\\|bz2\\|gpg\\)\\'" . no-conversion)
("\\.\\(jpe?g\\|png\\|gif\\|tiff?\\|p[bpgn]m\\)\\'" . no-conversion)
("/#[^/]+#\\'" . emacs-mule))

View File

@ -268,7 +268,7 @@ It is useful to set this variable in the site customization file.")
"\\|^list-id:\\|^list-unsubscribe:\\|^list-archive:"
"\\|^content-length:\\|^nntp-posting-date:\\|^user-agent"
"\\|^importance:\\|^envelope-to:\\|^delivery-date\\|^openpgp:"
"\\|^mbox-line:\\|^cancel-lock:"
"\\|^mbox-line:\\|^cancel-lock:\\|^DomainKey-Signature:"
"\\|^resent-face:\\|^resent-x.*:\\|^resent-organization:\\|^resent-openpgp:"
"\\|^x-.*:")
@ -319,8 +319,14 @@ See also `rmail-highlight-face'."
:type 'regexp
:group 'rmail-headers)
(defface rmail-highlight
'((t :default highlight))
"Face to use for highlighting the most important header fields."
:group 'rmail-headers
:version "22.1")
;;;###autoload
(defcustom rmail-highlight-face nil "\
(defcustom rmail-highlight-face 'rmail-highlight "\
*Face used by Rmail for highlighting headers."
:type '(choice (const :tag "Default" nil)
face)

View File

@ -535,7 +535,7 @@ messages, or backward if NUMBER is negative."
(search (if (> number 0) 're-search-forward 're-search-backward))
(non-del-msg-found nil))
(while (and (> count 0) (setq non-del-msg-found
(or (funcall search "^....[^D]" nil t)
(or (funcall search "^.....[^D]" nil t)
non-del-msg-found)))
(setq count (1- count))))
(beginning-of-line)

View File

@ -1,5 +1,17 @@
2006-03-12 Bill Wohler <wohler@newt.com>
* mh-utils.el (mh-folder-list): Fix docstring (closes SF
#1448498).
2006-03-10 Bill Wohler <wohler@newt.com>
* mh-compat.el (mh-replace-regexp-in-string): Pass the literal
flag to replace-in-string. This was badly needed by
mh-quote-pick-expr in order to properly quote subjects when using
/ s on XEmacs (closes SF #1447598).
(mh-image-load-path-for-library): Merged changes from Reiner. Add
no-error argument. If path t, just return directory.
* mh-e.el (mh-profile-component): Drop `s' from mhparam
-components for Mailutils compatibility (closes SF #1446985).

View File

@ -116,7 +116,7 @@ introduced in Emacs 22."
`(face-background ,face ,frame ,inherit)))
(mh-defun-compat mh-image-load-path-for-library
image-load-path-for-library (library image &optional path)
image-load-path-for-library (library image &optional path no-error)
"Return a suitable search path for images relative to LIBRARY.
Images for LIBRARY are searched for in \"../../etc/images\" and
@ -124,8 +124,12 @@ Images for LIBRARY are searched for in \"../../etc/images\" and
well as in `image-load-path' and `load-path'.
This function returns the value of `load-path' augmented with the
path to IMAGE. If PATH is given, it is used instead of
`load-path'.
directory containing IMAGE. If PATH is given, it is used instead
of `load-path'. If PATH is t, just return the directory that
contains IMAGE.
If NO-ERROR is non-nil, return nil if a suitable path can't be
found rather than signaling an error.
Here is an example that uses a common idiom to provide
compatibility with versions of Emacs that lack the variable
@ -179,11 +183,19 @@ This function is used by Emacs versions that don't have
(setq img (directory-file-name parent)
dir (expand-file-name "../" dir)))
(setq image-directory dir)))))
(no-error
;; In this case we will return nil.
(message "Could not find image %s for library %s" image library))
(t
(error "Could not find image %s for library %s" image library)))
;; Return augmented `image-load-path' or `load-path'.
(cond ((and path (symbolp path))
;; Return the directory, nil if no-error was non-nil and a
;; suitable path could not be found, or an augmented
;; `image-load-path' or `load-path'.
(cond ((or (null image-directory)
(eq path t))
image-directory)
((and path (symbolp path))
(nconc (list image-directory)
(delete image-directory
(if (boundp path)
@ -232,8 +244,9 @@ The argument STRING is ignored."
"Replace REGEXP with REP everywhere in STRING and return result.
This function is used by XEmacs that lacks `replace-regexp-in-string'.
The function `replace-in-string' is used instead.
The arguments FIXEDCASE, LITERAL, SUBEXP, and START are ignored."
(replace-in-string string regexp rep))
The arguments FIXEDCASE, SUBEXP, and START, used by
`replace-in-string' are ignored."
(replace-in-string string regexp rep literal))
;; Copy of constant from url-util.el in Emacs 22; needed by Emacs 21.
(if (not (boundp 'url-unreserved-chars))

View File

@ -504,7 +504,7 @@ example, if your Mail directory only contains the folders +inbox,
(mh-folder-list nil)
=> (\"inbox\" \"lists\" \"lists/mh-e\" \"outbox\")
(mh-folder-list \"+lists\")
=> (\"lists/mh-e\")
=> (\"lists\" \"lists/mh-e\")
Respects the value of `mh-recursive-folders-flag'. If this flag
is nil, and the sub-folders have not been explicitly viewed, then

View File

@ -50,6 +50,7 @@
"Simple IRC client."
:version "22.1"
:prefix "rcirc-"
:link '(custom-manual "(rcirc)")
:group 'applications)
(defcustom rcirc-server "irc.freenode.net"
@ -195,12 +196,6 @@ Use /ignore to list them, use /ignore NICK to add or remove a nick."
:type '(repeat string)
:group 'rcirc)
(defcustom rcirc-nick-abbrevs nil
"List of short replacements for printing nicks."
:type '(alist :key-type (string :tag "Nick")
:value-type (string :tag "Abbrev"))
:group 'rcirc)
(defvar rcirc-ignore-list-automatic ()
"List of ignored nicks added to `rcirc-ignore-list' because of renaming.
When an ignored person renames, their nick is added to both lists.
@ -493,11 +488,6 @@ Function is called with PROCESS, COMMAND, SENDER, ARGS and LINE.")
(with-rcirc-process-buffer process
rcirc-nick))
(defun rcirc-abbrev-nick (nick)
"If NICK has an entry in `rcirc-nick-abbrevs', return its abbreviation,
otherwise return NICK."
(or (cdr (assoc nick rcirc-nick-abbrevs)) nick))
(defvar rcirc-max-message-length 450
"Messages longer than this value will be split.")
@ -883,7 +873,7 @@ Create the buffer if it doesn't exist."
(defun rcirc-multiline-edit-submit ()
"Send the text in buffer back to parent buffer."
(interactive)
(assert (and (eq major-mode 'rcirc-multiline-edit-mode)))
(assert (eq major-mode 'rcirc-multiline-edit-mode))
(assert rcirc-parent-buffer)
(untabify (point-min) (point-max))
(let ((text (buffer-substring (point-min) (point-max)))
@ -899,7 +889,7 @@ Create the buffer if it doesn't exist."
(defun rcirc-multiline-edit-cancel ()
"Cancel the multiline edit."
(interactive)
(assert (and (eq major-mode 'rcirc-multiline-edit-mode)))
(assert (eq major-mode 'rcirc-multiline-edit-mode))
(kill-buffer (current-buffer))
(set-window-configuration rcirc-window-configuration))
@ -975,7 +965,7 @@ is found by looking up RESPONSE in `rcirc-response-formats'."
process rcirc-server)
sender)
""
(rcirc-abbrev-nick sender))
sender)
(and target (concat "," target)))))
(rcirc-facify nick
(if (eq key ?n)
@ -1088,7 +1078,7 @@ record activity."
(set-marker text-start
(or (next-single-property-change fill-start
'rcirc-text)
(point-max)))
rcirc-prompt-end-marker))
;; squeeze spaces out of text before rcirc-text
(fill-region fill-start (1- text-start))
@ -1253,9 +1243,7 @@ if NICK is also on `rcirc-ignore-list-automatic'."
(define-key rcirc-track-minor-mode-map (kbd "C-c C-@") 'rcirc-next-active-buffer)
(define-key rcirc-track-minor-mode-map (kbd "C-c C-SPC") 'rcirc-next-active-buffer)
;;; FIXME: the code to insert `rcirc-activity-string' into
;;; `global-mode-string' isn't called when the mode is activated by
;;; customize. I don't know how to set that up.
;;;###autoload
(define-minor-mode rcirc-track-minor-mode
"Global minor mode for tracking activity in rcirc buffers."
:init-value nil
@ -1357,7 +1345,7 @@ activity. Only run if the buffer is not visible and
(setq rcirc-activity-string
(if (not rcirc-activity)
""
(concat " ["
(concat "-["
(mapconcat
(lambda (b)
(let ((s (rcirc-short-buffer-name b)))
@ -1366,7 +1354,7 @@ activity. Only run if the buffer is not visible and
s
(rcirc-facify s 'rcirc-mode-line-nick)))))
rcirc-activity ",")
"]"))))
"]-"))))
(defun rcirc-short-buffer-name (buffer)
"Return a short name for BUFFER to use in the modeline indicator."

View File

@ -301,12 +301,38 @@ Also display the main routine in the disassembly buffer if present."
:group 'gud
:version "22.1")
(defcustom gdb-many-windows nil
"Nil means just pop up the GUD buffer unless `gdb-show-main' is t.
In this case it starts with two windows: one displaying the GUD
buffer and the other with the source file with the main routine
of the inferior. Non-nil means display the layout shown for
`gdba'."
:type 'boolean
:group 'gud
:version "22.1")
(defcustom gdb-use-separate-io-buffer nil
"Non-nil means display output from the inferior in a separate buffer."
:type 'boolean
:group 'gud
:version "22.1")
(defun gdb-many-windows (arg)
"Toggle the number of windows in the basic arrangement.
With arg, display additional buffers iff arg is positive."
(interactive "P")
(setq gdb-many-windows
(if (null arg)
(not gdb-many-windows)
(> (prefix-numeric-value arg) 0)))
(message (format "Display of other windows %sabled"
(if gdb-many-windows "en" "dis")))
(if (and gud-comint-buffer
(buffer-name gud-comint-buffer))
(condition-case nil
(gdb-restore-windows)
(error nil))))
(defun gdb-use-separate-io-buffer (arg)
"Toggle separate IO for inferior.
With arg, use separate IO iff arg is positive."
@ -631,7 +657,8 @@ With arg, automatically raise speedbar iff arg is positive."
(let ((expr (tooltip-identifier-from-point (point))))
(catch 'already-watched
(dolist (var gdb-var-list)
(if (string-equal expr (car var)) (throw 'already-watched nil)))
(unless (string-match "\\." (nth 1 var))
(if (string-equal expr (car var)) (throw 'already-watched nil))))
(set-text-properties 0 (length expr) nil expr)
(gdb-enqueue-input
(list
@ -757,7 +784,8 @@ type=\"\\(.*?\\)\"")
(setq gdb-pending-triggers
(delq 'gdb-speedbar-refresh gdb-pending-triggers))
(with-current-buffer gud-comint-buffer
(let ((speedbar-verbosity-level 0))
(let ((speedbar-verbosity-level 0)
(speedbar-shown-directories nil))
(save-excursion
(speedbar-refresh)))))
@ -2671,32 +2699,6 @@ corresponding to the mode line clicked."
(gdb-set-window-buffer (gdb-breakpoints-buffer-name))
(other-window 1))
(defcustom gdb-many-windows nil
"Nil means just pop up the GUD buffer unless `gdb-show-main' is t.
In this case it starts with two windows: one displaying the GUD
buffer and the other with the source file with the main routine
of the inferior. Non-nil means display the layout shown for
`gdba'."
:type 'boolean
:group 'gud
:version "22.1")
(defun gdb-many-windows (arg)
"Toggle the number of windows in the basic arrangement.
With arg, display additional buffers iff arg is positive."
(interactive "P")
(setq gdb-many-windows
(if (null arg)
(not gdb-many-windows)
(> (prefix-numeric-value arg) 0)))
(message (format "Display of other windows %sabled"
(if gdb-many-windows "en" "dis")))
(if (and gud-comint-buffer
(buffer-name gud-comint-buffer))
(condition-case nil
(gdb-restore-windows)
(error nil))))
(defun gdb-restore-windows ()
"Restore the basic arrangement of windows used by gdba.
This arrangement depends on the value of `gdb-many-windows'."
@ -3309,7 +3311,7 @@ value=\\(\".*?\"\\),type=\"\\(.+?\\)\"}")
(dolist (local locals-list)
(setq name (car local))
(if (or (not (nth 2 local))
(string-match "\\*$" (nth 1 local)))
(string-match "\\0x" (nth 2 local)))
(add-text-properties 0 (length name)
`(mouse-face highlight
help-echo "mouse-2: create watch expression"

View File

@ -732,7 +732,10 @@ If there is no comment already on this line, create a code-level comment
comment (started by one comment character) otherwise.
Point is left after the start of the comment which is properly aligned."
(interactive)
(indent-for-comment)
(beginning-of-line)
(if (looking-at "^\\s-*$")
(insert octave-block-comment-start)
(indent-for-comment))
(indent-according-to-mode))
(defun octave-indent-line (&optional arg)

View File

@ -2506,8 +2506,8 @@ yanking point; just return the Nth kill forward."
(put 'text-read-only 'error-message "Text is read-only")
(defun kill-region (beg end &optional yank-handler)
"Kill between point and mark.
The text is deleted but saved in the kill ring.
"Kill (\"cut\") text between point and mark.
This deletes the text from the buffer and saves it in the kill ring.
The command \\[yank] can retrieve it from there.
\(If you want to kill and then yank immediately, use \\[kill-ring-save].)
@ -2690,7 +2690,7 @@ doc string for `insert-for-yank-1', which see."
nil)
(defun yank (&optional arg)
"Reinsert the last stretch of killed text.
"Reinsert (\"paste\") the last stretch of killed text.
More precisely, reinsert the stretch of killed text most recently
killed OR yanked. Put point at end, and set mark at beginning.
With just \\[universal-argument] as argument, same but put point at beginning (and mark at end).

View File

@ -1323,7 +1323,7 @@ The buffer to mark them in is `flyspell-large-region-buffer'."
(let (words-not-found
(ispell-otherchars (ispell-get-otherchars))
(buffer-scan-pos flyspell-large-region-beg)
(case-fold-search nil))
case-fold-search)
(with-current-buffer flyspell-external-ispell-buffer
(goto-char (point-min))
;; Loop over incorrect words, in the order they were reported,
@ -1409,8 +1409,7 @@ The buffer to mark them in is `flyspell-large-region-buffer'."
;;* declared correct. */
;;*---------------------------------------------------------------------*/
(defun flyspell-process-localwords (misspellings-buffer)
(let (localwords
(case-fold-search nil)
(let (localwords case-fold-search
(ispell-casechars (ispell-get-casechars)))
;; Get localwords from the original buffer
(save-excursion

View File

@ -899,14 +899,15 @@ and added as a submenu of the \"Edit\" menu.")
(found
(delq nil
(mapcar #'ispell-aspell-find-dictionary dictionaries))))
;; Ensure aspell's alias dictionary will override standard
;; definitions.
(setq found (ispell-aspell-add-aliases found))
;; Merge into FOUND any elements from the standard ispell-dictionary-alist
;; which have no element in FOUND at all.
(dolist (dict ispell-dictionary-alist)
(unless (assoc (car dict) found)
(setq found (nconc found (list dict)))))
(setq ispell-dictionary-alist found)
(ispell-aspell-add-aliases)
;; Add a default entry
(let* ((english-dict (assoc "en" ispell-dictionary-alist))
(default-dict
@ -973,8 +974,9 @@ Assumes that value contains no whitespace."
(file-error
nil))))
(defun ispell-aspell-add-aliases ()
"Find aspell's dictionary aliases and add them to `ispell-dictionary-alist'."
(defun ispell-aspell-add-aliases (alist)
"Find aspell's dictionary aliases and add them to dictionary ALIST.
Return the new dictionary alist."
(let ((aliases (file-expand-wildcards
(concat (or ispell-aspell-dict-dir
(setq ispell-aspell-dict-dir
@ -987,11 +989,12 @@ Assumes that value contains no whitespace."
(when (search-forward-regexp "^add \\([^.]+\\)\\.multi" nil t)
(let* ((aliasname (file-name-sans-extension
(file-name-nondirectory alias-file)))
(already-exists-p (assoc aliasname ispell-dictionary-alist))
(already-exists-p (assoc aliasname alist))
(realname (match-string 1))
(realdict (assoc realname ispell-dictionary-alist)))
(realdict (assoc realname alist)))
(when (and realdict (not already-exists-p))
(push (cons aliasname (cdr realdict)) ispell-dictionary-alist))))))))
(push (cons aliasname (cdr realdict)) alist))))))
alist))
(defun ispell-valid-dictionary-list ()
"Returns a list of valid dictionaries.
@ -1086,6 +1089,7 @@ The variable `ispell-library-directory' defines the library location."
:help "Spell-check text in marked region"))
(define-key ispell-menu-map [ispell-message]
'(menu-item "Spell-Check Message" ispell-message
:visible (eq major-mode 'mail-mode)
:help "Skip headers and included message text"))
(define-key ispell-menu-map [ispell-buffer]
'(menu-item "Spell-Check Buffer" ispell-buffer

View File

@ -5,7 +5,7 @@
;; Author: Carsten Dominik <dominik at science dot uva dot nl>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/
;; Version: 4.08
;; Version: 4.09
;;
;; This file is part of GNU Emacs.
;;
@ -81,8 +81,14 @@
;;
;; Changes since version 4.00:
;; ---------------------------
;; Version 4.08
;; Version 4.09
;; - Bug fixes.
;; - Small improvements to font-lock support.
;; - MHE support finalized.
;;
;; Version 4.08
;; - Bug fixes.
;; - Improved MHE support
;;
;; Version 4.07
;; - Bug fixes.
@ -139,7 +145,7 @@
;;; Customization variables
(defvar org-version "4.08"
(defvar org-version "4.09"
"The version number of the file org.el.")
(defun org-version ()
(interactive)
@ -796,31 +802,15 @@ as possible."
:group 'org-structure
:type 'hook)
(defcustom org-level-color-stars-only nil
"Non-nil means fontify only the stars in each headline.
When nil, the entire headline is fontified.
Changing it requires restart of `font-lock-mode' to become effective."
:group 'org-structure
:type 'boolean)
(defcustom org-hide-leading-stars nil
"Non-nil means, hide the first N-1 stars in a headline.
This works by using the face `org-hide' for these stars. This
face is white for a light background, and black for a dark
background. You may have to customize the face `org-hide' to
make this work.
Changing it requires restart of `font-lock-mode' to become effective."
:group 'org-structure
:type 'boolean)
(defcustom org-odd-levels-only nil
"Non-nil means, skip even levels and only use odd levels for the outline.
This has the effect that two stars are being added/taken away in
promotion/demotion commands. It also influences how levels are
handled by the exporters.
Changing it requires restart of `font-lock-mode' to become effective
for fontification."
for fontification also in regions already fontified."
:group 'org-structure
:group 'org-font-lock
:type 'boolean)
(defcustom org-adapt-indentation t
@ -1710,11 +1700,44 @@ This file is created with the command \\[org-export-icalendar-all-agenda-files].
:group 'org-export
:type 'string)
(defgroup org-faces nil
"Faces for highlighting in Org-mode."
:tag "Org Faces"
(defgroup org-font-lock nil
"Faces and settings for highlighting in Org-mode."
:tag "Org Font Lock"
:group 'org)
(defcustom org-level-color-stars-only nil
"Non-nil means fontify only the stars in each headline.
When nil, the entire headline is fontified.
Changing it requires restart of `font-lock-mode' to become effective
also in regions already fontified."
:group 'org-font-lock
:type 'boolean)
(defcustom org-hide-leading-stars nil
"Non-nil means, hide the first N-1 stars in a headline.
This works by using the face `org-hide' for these stars. This
face is white for a light background, and black for a dark
background. You may have to customize the face `org-hide' to
make this work.
Changing it requires restart of `font-lock-mode' to become effective
also in regions already fontified."
:group 'org-font-lock
:type 'boolean)
(defcustom org-fontify-done-headline nil
"Non-nil means, change the face of a headline if it is marked DONE.
Normally, only the TODO/DONE keyword indicates the state of a headline.
When this is non-nil, the headline after the keyword is set to the
`org-headline-done' as an additional indication."
:group 'org-font-lock
:type 'boolean)
(defcustom org-fontify-emphasized-text t
"Non-nil means fontify *bold*, /italic/ and _underlined_ text.
Changing this variable requires a restart of Emacs to take effect."
:group 'org-font-lock
:type 'boolean)
(defface org-hide
'((((type tty) (class color)) (:foreground "blue" :weight bold))
(((class color) (background light)) (:foreground "white"))
@ -1723,7 +1746,7 @@ This file is created with the command \\[org-export-icalendar-all-agenda-files].
; (((class color) (background dark)) (:foreground "grey10"))
(t (:inverse-video nil)))
"Face used for level 1 headlines."
:group 'org-faces)
:group 'org-font-lock)
(defface org-level-1 ;; font-lock-function-name-face
'((((type tty) (class color)) (:foreground "blue" :weight bold))
@ -1731,7 +1754,7 @@ This file is created with the command \\[org-export-icalendar-all-agenda-files].
(((class color) (background dark)) (:foreground "LightSkyBlue"))
(t (:inverse-video t :bold t)))
"Face used for level 1 headlines."
:group 'org-faces)
:group 'org-font-lock)
(defface org-level-2 ;; font-lock-variable-name-face
'((((type tty) (class color)) (:foreground "yellow" :weight light))
@ -1739,7 +1762,7 @@ This file is created with the command \\[org-export-icalendar-all-agenda-files].
(((class color) (background dark)) (:foreground "LightGoldenrod"))
(t (:bold t :italic t)))
"Face used for level 2 headlines."
:group 'org-faces)
:group 'org-font-lock)
(defface org-level-3 ;; font-lock-keyword-face
'((((type tty) (class color)) (:foreground "cyan" :weight bold))
@ -1747,7 +1770,7 @@ This file is created with the command \\[org-export-icalendar-all-agenda-files].
(((class color) (background dark)) (:foreground "Cyan"))
(t (:bold t)))
"Face used for level 3 headlines."
:group 'org-faces)
:group 'org-font-lock)
(defface org-level-4 ;; font-lock-comment-face
'((((type tty pc) (class color) (background light)) (:foreground "red"))
@ -1756,7 +1779,7 @@ This file is created with the command \\[org-export-icalendar-all-agenda-files].
(((class color) (background dark)) (:foreground "chocolate1"))
(t (:bold t :italic t)))
"Face used for level 4 headlines."
:group 'org-faces)
:group 'org-font-lock)
(defface org-level-5 ;; font-lock-type-face
'((((type tty) (class color)) (:foreground "green"))
@ -1764,7 +1787,7 @@ This file is created with the command \\[org-export-icalendar-all-agenda-files].
(((class color) (background dark)) (:foreground "PaleGreen"))
(t (:bold t :underline t)))
"Face used for level 5 headlines."
:group 'org-faces)
:group 'org-font-lock)
(defface org-level-6 ;; font-lock-constant-face
'((((type tty) (class color)) (:foreground "magenta"))
@ -1772,7 +1795,7 @@ This file is created with the command \\[org-export-icalendar-all-agenda-files].
(((class color) (background dark)) (:foreground "Aquamarine"))
(t (:bold t :underline t)))
"Face used for level 6 headlines."
:group 'org-faces)
:group 'org-font-lock)
(defface org-level-7 ;; font-lock-builtin-face
'((((type tty) (class color)) (:foreground "blue" :weight light))
@ -1780,7 +1803,7 @@ This file is created with the command \\[org-export-icalendar-all-agenda-files].
(((class color) (background dark)) (:foreground "LightSteelBlue"))
(t (:bold t)))
"Face used for level 7 headlines."
:group 'org-faces)
:group 'org-font-lock)
(defface org-level-8 ;; font-lock-string-face
'((((type tty) (class color)) (:foreground "green"))
@ -1788,7 +1811,7 @@ This file is created with the command \\[org-export-icalendar-all-agenda-files].
(((class color) (background dark)) (:foreground "LightSalmon"))
(t (:italic t)))
"Face used for level 8 headlines."
:group 'org-faces)
:group 'org-font-lock)
(defface org-special-keyword ;; font-lock-string-face
'((((type tty) (class color)) (:foreground "green"))
@ -1796,7 +1819,7 @@ This file is created with the command \\[org-export-icalendar-all-agenda-files].
(((class color) (background dark)) (:foreground "LightSalmon"))
(t (:italic t)))
"Face used for special keywords."
:group 'org-faces)
:group 'org-font-lock)
(defface org-warning ;; font-lock-warning-face
'((((type tty) (class color)) (:foreground "red"))
@ -1805,15 +1828,7 @@ This file is created with the command \\[org-export-icalendar-all-agenda-files].
; (((class color) (background dark)) (:foreground "Pink" :bold t))
(t (:inverse-video t :bold t)))
"Face for deadlines and TODO keywords."
:group 'org-faces)
(defcustom org-fontify-done-headline nil
"Non-nil means, change the face of a headline if it is marked DONE.
Normally, only the TODO/DONE keyword indicates the state of a headline.
When this is non-nil, the headline after the keyword is set to the
`org-headline-done' as an additional indication."
:group 'org-faces
:type 'boolean)
:group 'org-font-lock)
(defface org-headline-done ;; font-lock-string-face
'((((type tty) (class color)) (:foreground "green"))
@ -1822,7 +1837,7 @@ When this is non-nil, the headline after the keyword is set to the
(t (:italic t)))
"Face used to indicate that a headline is DONE. See also the variable
`org-fontify-done-headline'."
:group 'org-faces)
:group 'org-font-lock)
;; Inheritance does not yet work for xemacs. So we just copy...
@ -1832,7 +1847,7 @@ When this is non-nil, the headline after the keyword is set to the
(((class color) (background dark)) (:foreground "LightSkyBlue"))
(t (:inverse-video t :bold t)))
"Face for upcoming deadlines."
:group 'org-faces)
:group 'org-font-lock)
(defface org-scheduled-today
'((((type tty) (class color)) (:foreground "green"))
@ -1840,7 +1855,7 @@ When this is non-nil, the headline after the keyword is set to the
(((class color) (background dark)) (:foreground "PaleGreen"))
(t (:bold t :underline t)))
"Face for items scheduled for a certain day."
:group 'org-faces)
:group 'org-font-lock)
(defface org-scheduled-previously
'((((type tty pc) (class color) (background light)) (:foreground "red"))
@ -1849,7 +1864,7 @@ When this is non-nil, the headline after the keyword is set to the
(((class color) (background dark)) (:foreground "chocolate1"))
(t (:bold t :italic t)))
"Face for items scheduled previously, and not yet done."
:group 'org-faces)
:group 'org-font-lock)
(defface org-formula
'((((type tty pc) (class color) (background light)) (:foreground "red"))
@ -1858,7 +1873,7 @@ When this is non-nil, the headline after the keyword is set to the
(((class color) (background dark)) (:foreground "chocolate1"))
(t (:bold t :italic t)))
"Face for formulas."
:group 'org-faces)
:group 'org-font-lock)
(defface org-link
'((((type tty) (class color)) (:foreground "cyan" :weight bold))
@ -1866,15 +1881,15 @@ When this is non-nil, the headline after the keyword is set to the
(((class color) (background dark)) (:foreground "Cyan"))
(t (:bold t)))
"Face for links."
:group 'org-faces)
:group 'org-font-lock)
(defface org-tag
'((((type tty) (class color)) (:foreground "cyan" :weight bold))
(((class color) (background light)) (:foreground "Purple" :weight bold))
(((class color) (background dark)) (:foreground "Cyan" :weight bold))
(t (:bold t)))
"Face for links."
:group 'org-faces)
"Face for tags."
:group 'org-font-lock)
(defface org-done ;; font-lock-type-face
'((((type tty) (class color)) (:foreground "green"))
@ -1882,7 +1897,7 @@ When this is non-nil, the headline after the keyword is set to the
(((class color) (background dark)) (:foreground "PaleGreen" :bold t))
(t (:bold t :underline t)))
"Face used for DONE."
:group 'org-faces)
:group 'org-font-lock)
(defface org-table ;; font-lock-function-name-face
'((((type tty) (class color)) (:foreground "blue" :weight bold))
@ -1890,7 +1905,7 @@ When this is non-nil, the headline after the keyword is set to the
(((class color) (background dark)) (:foreground "LightSkyBlue"))
(t (:inverse-video t :bold t)))
"Face used for tables."
:group 'org-faces)
:group 'org-font-lock)
(defface org-time-grid ;; font-lock-variable-name-face
'((((type tty) (class color)) (:foreground "yellow" :weight light))
@ -1898,7 +1913,7 @@ When this is non-nil, the headline after the keyword is set to the
(((class color) (background dark)) (:foreground "LightGoldenrod"))
(t (:bold t :italic t)))
"Face used for time grids."
:group 'org-faces)
:group 'org-font-lock)
(defvar org-level-faces
'(org-level-1 org-level-2 org-level-3 org-level-4
@ -1939,6 +1954,10 @@ When this is non-nil, the headline after the keyword is set to the
(set '(("fold" org-startup-folded t)
("nofold" org-startup-folded nil)
("content" org-startup-folded content)
("hidestars" org-hide-leading-stars t)
("showstars" org-hide-leading-stars nil)
("odd" org-odd-levels-only t)
("oddeven" org-odd-levels-only nil)
("dlcheck" org-startup-with-deadline-check t)
("nodlcheck" org-startup-with-deadline-check nil)))
l var val)
@ -2307,44 +2326,45 @@ between words."
(defvar org-font-lock-keywords nil)
(defun org-set-font-lock-defaults ()
(let ((org-font-lock-extra-keywords
(list
'("^\\(\\**\\)\\(\\*\\)\\(.*\\)" (1 (org-get-level-face 1))
(2 (org-get-level-face 2)) (3 (org-get-level-face 3)))
'(org-activate-links (0 'org-link t))
'(org-activate-links2 (0 'org-link t))
'(org-activate-target-links (0 'org-link t))
'(org-activate-dates (0 'org-link t))
'(org-activate-camels (0 'org-link t))
'(org-activate-tags (1 'org-tag t))
(list (concat "^\\*+[ \t]*" org-not-done-regexp)
'(1 'org-warning t))
(list (concat "\\[#[A-Z]\\]") '(0 'org-special-keyword t))
(list (concat "\\<" org-deadline-string) '(0 'org-special-keyword t))
(list (concat "\\<" org-scheduled-string) '(0 'org-special-keyword t))
(list (concat "\\<" org-closed-string) '(0 'org-special-keyword t))
;; '("\\(\\s-\\|^\\)\\(\\*\\([a-zA-Z]+\\)\\*\\)\\([^a-zA-Z*]\\|$\\)"
;; (3 'bold))
;; '("\\(\\s-\\|^\\)\\(/\\([a-zA-Z]+\\)/\\)\\([^a-zA-Z*]\\|$\\)"
;; (3 'italic))
;; '("\\(\\s-\\|^\\)\\(_\\([a-zA-Z]+\\)_\\)\\([^a-zA-Z*]\\|$\\)"
;; (3 'underline))
(list (concat "^\\*+[ \t]*\\<\\(" org-comment-string
"\\|" org-quote-string "\\)\\>")
'(1 'org-special-keyword t))
'("^#.*" (0 'font-lock-comment-face t))
(if org-fontify-done-headline
(list (concat "^[*]+ +\\<\\(" org-done-string "\\)\\(.*\\)\\>")
'(1 'org-done t) '(2 'org-headline-done t))
(list (concat "^[*]+ +\\<\\(" org-done-string "\\)\\>")
'(1 'org-done t)))
'("^[ \t]*\\(\\(|\\|\\+-[-+]\\).*\\S-\\)"
(1 'org-table t))
'("^[ \t]*\\(:.*\\)" (1 'org-table t))
'("| *\\(:?=[^|\n]*\\)" (1 'org-formula t))
'("^[ \t]*| *\\([#!$*_^]\\) *|" (1 'org-formula t))
)))
(let* ((em org-fontify-emphasized-text)
(org-font-lock-extra-keywords
(list
'("^\\(\\**\\)\\(\\*\\)\\(.*\\)" (1 (org-get-level-face 1))
(2 (org-get-level-face 2)) (3 (org-get-level-face 3)))
'(org-activate-links (0 'org-link t))
'(org-activate-links2 (0 'org-link t))
'(org-activate-target-links (0 'org-link t))
'(org-activate-dates (0 'org-link t))
'(org-activate-camels (0 'org-link t))
'(org-activate-tags (1 'org-tag t))
(list (concat "^\\*+[ \t]*" org-not-done-regexp)
'(1 'org-warning t))
(list (concat "\\[#[A-Z]\\]") '(0 'org-special-keyword t))
(list (concat "\\<" org-deadline-string) '(0 'org-special-keyword t))
(list (concat "\\<" org-scheduled-string) '(0 'org-special-keyword t))
(list (concat "\\<" org-closed-string) '(0 'org-special-keyword t))
; (if em '("\\(\\s-\\|^\\)\\(\\*\\([a-zA-Z]+\\)\\*\\)\\([^a-zA-Z*]\\|$\\)" (3 'bold)))
; (if em '("\\(\\s-\\|^\\)\\(/\\([a-zA-Z]+\\)/\\)\\([^a-zA-Z*]\\|$\\)" (3 'italic)))
; (if em '("\\(\\s-\\|^\\)\\(_\\([a-zA-Z]+\\)_\\)\\([^a-zA-Z*]\\|$\\)" (3 'underline)))
(if em '("\\*[a-zA-Z]+\\*" 0 'bold))
(if em '("/*[a-zA-Z]+/" 0 'italic))
(if em '("_[a-zA-Z]+_" 0 'underline))
(list (concat "^\\*+[ \t]*\\<\\(" org-comment-string
"\\|" org-quote-string "\\)\\>")
'(1 'org-special-keyword t))
'("^#.*" (0 'font-lock-comment-face t))
(if org-fontify-done-headline
(list (concat "^[*]+ +\\<\\(" org-done-string "\\)\\(.*\\)\\>")
'(1 'org-done t) '(2 'org-headline-done t))
(list (concat "^[*]+ +\\<\\(" org-done-string "\\)\\>")
'(1 'org-done t)))
'("^[ \t]*\\(\\(|\\|\\+-[-+]\\).*\\S-\\)"
(1 'org-table t))
'("^[ \t]*\\(:.*\\)" (1 'org-table t))
'("| *\\(:?=[^|\n]*\\)" (1 'org-formula t))
'("^[ \t]*| *\\([#!$*_^]\\) *|" (1 'org-formula t))
)))
(setq org-font-lock-extra-keywords (delq nil org-font-lock-extra-keywords))
;; Now set the full font-lock-keywords
(set (make-local-variable 'org-font-lock-keywords)
org-font-lock-extra-keywords)
@ -6960,7 +6980,7 @@ in all files."
(s0 (mapconcat 'identity (org-split-string s "[ \t\r\n]+") " "))
(pos (point))
(pre "") (post "")
words re0 re1 re2 re3 re4 re5 reall camel)
words re0 re1 re2 re3 re4 re5 re2a reall camel)
(cond ((save-excursion
(goto-char (point-min))
(and
@ -6995,11 +7015,13 @@ in all files."
(org-split-string s "[ \n\r\t]+"))
re0 (concat "<<" (regexp-quote s0) ">>")
re2 (concat "\\<" (mapconcat 'downcase words "[ \t]+") "\\>")
re2a (concat "\\<" (mapconcat 'downcase words "[ \t\r\n]+") "\\>")
re4 (concat "\\<" (mapconcat 'downcase words "[^a-zA-Z_\r\n]+") "\\>")
re1 (concat pre re2 post)
re3 (concat pre re4 post)
re5 (concat pre ".*" re4)
re2 (concat pre re2)
re2a (concat pre re2a)
re4 (concat pre re4)
reall (concat "\\(" re0 "\\)\\|\\(" re1 "\\)\\|\\(" re2
"\\)\\|\\(" re3 "\\)\\|\\(" re4 "\\)\\|\\("
@ -7009,12 +7031,14 @@ in all files."
((eq type 'org-occur) (org-occur reall))
((eq type 'occur) (org-do-occur (downcase reall) 'cleanup))
(t (goto-char (point-min))
(if (or (re-search-forward re0 nil t)
(re-search-forward re1 nil t)
(re-search-forward re2 nil t)
(re-search-forward re3 nil t)
(re-search-forward re4 nil t)
(re-search-forward re5 nil t))
(if (or (org-search-not-link re0 nil t)
(org-search-not-link re1 nil t)
(org-search-not-link re2 nil t)
(org-search-not-link re2a nil t) ;; FIXME: Right place???
(org-search-not-link re3 nil t)
(org-search-not-link re4 nil t)
(org-search-not-link re5 nil t)
)
(goto-char (match-beginning 0))
(goto-char pos)
(error "No match")))))
@ -7026,6 +7050,21 @@ in all files."
(error "No match"))))
(and (eq major-mode 'org-mode) (org-show-hierarchy-above))))
(defun org-search-not-link (&rest args)
"Execute `re-search-forward', but only accept matches that are not a link."
(catch 'exit
(let ((pos (point)) p1)
(while (apply 're-search-forward args)
(setq p1 (point))
(if (not (save-match-data
(and (re-search-backward "\\[\\[" nil t)
(looking-at org-bracket-link-regexp)
(<= (match-beginning 0) p1)
(>= (match-end 0) p1))))
(progn (goto-char (match-end 0))
(throw 'exit (point)))
(goto-char (match-end 0)))))))
(defun org-do-occur (regexp &optional cleanup)
"Call the Emacs command `occur'.
If CLEANUP is non-nil, remove the printout of the regular expression
@ -7284,24 +7323,32 @@ idea..."
header-field)))
(defun org-follow-mhe-link (folder article)
"Follow an MHE link to FOLDER and ARTICLE."
(setq article (org-add-angle-brackets article))
"Follow an MHE link to FOLDER and ARTICLE.
If ARTICLE is nil FOLDER is shown. If the configuration variable
`org-mhe-search-all-folders' is t and `mh-searcher' is pick,
ARTICLE is searched in all folders. Indexed searches (swish++,
namazu, and others supported by MH-E) will always search in all
folders."
(require 'mh-e)
(require 'mh-search)
(require 'mh-utils)
(mh-find-path)
(mh-search-choose)
(if (equal mh-searcher 'pick)
(progn
(mh-search folder (list "--message-id" article))
(when (and org-mhe-search-all-folders
(not (org-mhe-get-message-real-folder)))
(kill-this-buffer)
(mh-search "+" (list "--message-id" article))))
(mh-search "+" article))
(if (org-mhe-get-message-real-folder)
(mh-show-msg 1)
(kill-this-buffer)
(error "Message not found")))
(if (not article)
(mh-visit-folder (mh-normalize-folder-name folder))
(setq article (org-add-angle-brackets article))
(mh-search-choose)
(if (equal mh-searcher 'pick)
(progn
(mh-search folder (list "--message-id" article))
(when (and org-mhe-search-all-folders
(not (org-mhe-get-message-real-folder)))
(kill-this-buffer)
(mh-search "+" (list "--message-id" article))))
(mh-search "+" article))
(if (org-mhe-get-message-real-folder)
(mh-show-msg 1)
(kill-this-buffer)
(error "Message not found"))))
(defun org-open-file (path &optional in-emacs line search)
"Open the file at PATH.
@ -10563,7 +10610,7 @@ translations. There is currently no way for users to extend this.")
This will leave level 1 alone, convert level 2 to level 3, level 3 to
level 5 etc."
(interactive)
(when (yes-or-no-p "Are you sure you want to globally change levels? ")
(when (yes-or-no-p "Are you sure you want to globally change levels to odd? ")
(let ((org-odd-levels-only nil) n)
(save-excursion
(goto-char (point-min))
@ -10573,6 +10620,28 @@ level 5 etc."
(org-demote))
(end-of-line 1))))))
(defun org-convert-to-oddeven-levels ()
"Convert an org-mode file with only odd levels to one with odd and even levels.
This promotes level 3 to level 2, level 5 to level 3 etc. If the file contains a
section with an even level, conversion would destroy the structure of the file. An error
is signaled in this case."
(interactive)
(goto-char (point-min))
;; First check if there are no even levels
(when (re-search-forward "^\\(\\*\\*\\)+[^*]" nil t)
(org-show-hierarchy-above)
(error "Not all levels are odd in this file. Conversion not possible."))
(when (yes-or-no-p "Are you sure you want to globally change levels to odd-even? ")
(let ((org-odd-levels-only nil) n)
(save-excursion
(goto-char (point-min))
(while (re-search-forward "^\\*\\*+" nil t)
(setq n (/ (length (match-string 0)) 2))
(while (>= (setq n (1- n)) 0)
(org-promote))
(end-of-line 1))))))
(defun org-tr-level (n)
"Make N odd if required."
(if org-odd-levels-only (1+ (/ n 2)) n))
@ -10817,7 +10886,7 @@ Does include HTML export options as well as TODO and CATEGORY stuff."
#+CATEGORY: %s
#+SEQ_TODO: %s
#+TYP_TODO: %s
#+STARTUP: %s %s
#+STARTUP: %s %s %s %s
#+ARCHIVE: %s
"
(buffer-name) (user-full-name) user-mail-address org-export-default-language
@ -10841,6 +10910,8 @@ Does include HTML export options as well as TODO and CATEGORY stuff."
(cdr (assoc org-startup-folded
'((nil . "nofold")(t . "fold")(content . "content"))))
(if org-startup-with-deadline-check "dlcheck" "nodlcheck")
(if org-odd-levels-only "odd" "oddeven")
(if org-hide-leading-stars "hidestars" "showstars")
org-archive-location
))
@ -10924,6 +10995,7 @@ headlines. The default is 3. Lower levels will become bulleted lists."
(setq-default org-deadline-line-regexp org-deadline-line-regexp)
(setq-default org-done-string org-done-string)
(let* ((style org-export-html-style)
(odd org-odd-levels-only)
(region-p (org-region-active-p))
(region
(buffer-substring
@ -10987,7 +11059,8 @@ headlines. The default is 3. Lower levels will become bulleted lists."
(switch-to-buffer-other-window buffer))
(erase-buffer)
(fundamental-mode)
(let ((case-fold-search nil))
(let ((case-fold-search nil)
(org-odd-levels-only odd))
(if options (org-parse-export-options options))
(setq umax (if arg (prefix-numeric-value arg)
org-export-headline-levels))
@ -12372,7 +12445,8 @@ See the individual commands for more information."
"--"
["Archive Subtree" org-archive-subtree t]
"--"
["Convert file to odd levels" org-convert-to-odd-levels t])
["Convert to odd levels" org-convert-to-odd-levels t]
["Convert to odd/even levels" org-convert-to-oddeven-levels t])
"--"
("TODO Lists"
["TODO/DONE/-" org-todo t]
@ -12851,3 +12925,4 @@ Show the heading too, if it is currently invisible."
;; arch-tag: e77da1a7-acc7-4336-b19e-efa25af3f9fd
;;; org.el ends here

View File

@ -154,8 +154,9 @@ XEmacs.")
(defcustom tree-widget-themes-directory "tree-widget"
"*Name of the directory where to look up for image themes.
When nil use the directory where the tree-widget library is located.
When a relative name is specified, try to locate that sub directory in
the locations specified in `tree-widget-themes-load-path'.
When a relative name is specified, search in all occurrences of that
sub directory found in the locations specified in
`tree-widget-themes-load-path'.
The default is to use the \"tree-widget\" relative name."
:type '(choice (const :tag "Default" "tree-widget")
(const :tag "With the library" nil)
@ -164,9 +165,9 @@ The default is to use the \"tree-widget\" relative name."
(defcustom tree-widget-theme nil
"*Name of the theme where to look up for images.
It must be a sub directory of the directory specified in variable
It must be a sub directory in the directories specified in variable
`tree-widget-themes-directory'. The default theme is \"default\".
When an image is not found in a theme, it is searched in the default
When an image is not found in a theme, it is searched in the parent
theme.
A complete theme must at least contain images with these file names
@ -275,10 +276,15 @@ The default parent theme is the \"default\" theme."
(unless (member name (aref tree-widget--theme 0))
(aset tree-widget--theme 0
(append (aref tree-widget--theme 0) (list name)))
;; Load the theme setup
(let ((default-directory (tree-widget-themes-directory)))
(when default-directory
(load (expand-file-name "tree-widget-theme-setup" name) t)))))
;; Load the theme setup from the first directory where the theme
;; is found.
(catch 'found
(dolist (dir (tree-widget-themes-path))
(setq dir (expand-file-name name dir))
(when (file-accessible-directory-p dir)
(throw 'found
(load (expand-file-name
"tree-widget-theme-setup" dir) t)))))))
(defun tree-widget-set-theme (&optional name)
"In the current buffer, set the theme to use for images.
@ -304,54 +310,62 @@ Typically it should contain something like this:
(tree-widget-set-parent-theme name)
(tree-widget-set-parent-theme "default")))
(defun tree-widget--locate-sub-directory (name path)
"Locate the sub-directory NAME in PATH.
Return the absolute name of the directory found, or nil if not found."
(let (dir elt)
(while (and (not dir) (consp path))
(setq elt (condition-case nil (eval (car path)) (error nil))
path (cdr path))
(cond
((stringp elt)
(setq dir (expand-file-name name elt))
(or (file-accessible-directory-p dir)
(setq dir nil)))
((and elt (not (equal elt (car path))))
(setq dir (tree-widget--locate-sub-directory name elt)))))
dir))
(defun tree-widget--locate-sub-directory (name path &optional found)
"Locate all occurrences of the sub-directory NAME in PATH.
Return a list of absolute directory names in reverse order, or nil if
not found."
(condition-case err
(dolist (elt path)
(setq elt (eval elt))
(cond
((stringp elt)
(and (file-accessible-directory-p
(setq elt (expand-file-name name elt)))
(push elt found)))
(elt
(setq found (tree-widget--locate-sub-directory
name (if (atom elt) (list elt) elt) found)))))
(error
(message "In tree-widget--locate-sub-directory: %s"
(error-message-string err))))
found)
(defun tree-widget-themes-directory ()
"Locate the directory where to search for a theme.
It is defined in variable `tree-widget-themes-directory'.
Return the absolute name of the directory found, or nil if the
specified directory is not accessible."
(let ((found (aref tree-widget--theme 1)))
(defun tree-widget-themes-path ()
"Return the path where to search for a theme.
It is specified in variable `tree-widget-themes-directory'.
Return a list of absolute directory names, or nil when no directory
has been found accessible."
(let ((path (aref tree-widget--theme 1)))
(cond
;; The directory was not found.
((eq found 'void)
(setq found nil))
;; The directory is available in the cache.
(found)
;; No directory was found.
((eq path 'void) nil)
;; The list of directories is available in the cache.
(path)
;; Use the directory where this library is located.
((null tree-widget-themes-directory)
(setq found (locate-library "tree-widget"))
(when found
(setq found (file-name-directory found))
(or (file-accessible-directory-p found)
(setq found nil))))
(when (setq path (locate-library "tree-widget"))
(setq path (file-name-directory path))
(setq path (and (file-accessible-directory-p path)
(list path)))
;; Store the result in the cache for later use.
(aset tree-widget--theme 1 (or path 'void))
path))
;; Check accessibility of absolute directory name.
((file-name-absolute-p tree-widget-themes-directory)
(setq found (expand-file-name tree-widget-themes-directory))
(or (file-accessible-directory-p found)
(setq found nil)))
(setq path (expand-file-name tree-widget-themes-directory))
(setq path (and (file-accessible-directory-p path)
(list path)))
;; Store the result in the cache for later use.
(aset tree-widget--theme 1 (or path 'void))
path)
;; Locate a sub-directory in `tree-widget-themes-load-path'.
(t
(setq found (tree-widget--locate-sub-directory
tree-widget-themes-directory
tree-widget-themes-load-path))))
;; Store the result in the cache for later use.
(aset tree-widget--theme 1 (or found 'void))
found))
(setq path (nreverse (tree-widget--locate-sub-directory
tree-widget-themes-directory
tree-widget-themes-load-path)))
;; Store the result in the cache for later use.
(aset tree-widget--theme 1 (or path 'void))
path))))
(defconst tree-widget--cursors
;; Pointer shapes when the mouse pointer is over inactive
@ -391,20 +405,19 @@ Search first in current theme, then in parent themes (see also the
function `tree-widget-set-parent-theme').
Return the first image found having a supported format, or nil if not
found."
(let ((default-directory (tree-widget-themes-directory)) file)
(when default-directory
(catch 'found
(dolist (dir (aref tree-widget--theme 0))
(dolist (fmt (tree-widget-image-formats))
(dolist (ext (cdr fmt))
(setq file (expand-file-name (concat name ext) dir))
(and (file-readable-p file)
(file-regular-p file)
(throw 'found
(tree-widget-create-image
(car fmt) file
(tree-widget-image-properties name)))))))
nil))))
(catch 'found
(dolist (default-directory (tree-widget-themes-path))
(dolist (dir (aref tree-widget--theme 0))
(dolist (fmt (tree-widget-image-formats))
(dolist (ext (cdr fmt))
(setq file (expand-file-name (concat name ext) dir))
(and (file-readable-p file)
(file-regular-p file)
(throw 'found
(tree-widget-create-image
(car fmt) file
(tree-widget-image-properties name))))))))
nil))
(defun tree-widget-find-image (name)
"Find the image with NAME in current theme.

View File

@ -1,3 +1,16 @@
2006-03-11 Bill Wohler <wohler@newt.com>
* display.texi (Defining Images): Add image-load-path-for-library.
2006-03-11 Luc Teirlinck <teirllm@auburn.edu>
* text.texi (Adaptive Fill): Fix Texinfo usage.
* strings.texi (Creating Strings): Fix Texinfo usage.
* searching.texi (Regexp Special): Use @samp for regular
expressions that are not in Lisp syntax.
2006-03-08 Luc Teirlinck <teirllm@auburn.edu>
* searching.texi (Regexp Special): Put remark between parentheses

View File

@ -4125,6 +4125,36 @@ should specify the image as follows:
@end example
@end defvar
@defun image-load-path-for-library library image &optional path no-error
@tindex image-load-path-for-library
Return a suitable search path for images relative to @var{library}.
Images for @var{library} are searched for in @file{../../etc/images}
and @file{../etc/images} relative to the files in
@file{lisp/@var{library}} as well as in @code{image-load-path} and
@var{load-path}.
This function returns the value of @code{load-path} augmented with the
directory containing @var{image}. If @var{path} is given, it is used
instead of @code{load-path}. If @code{path} is @code{t}, just return
the directory that contains @var{image}.
If @var{no-error} is non-nil, this function returns @code{nil} if a
suitable path can't be found rather than signaling an error.
Here is an example that uses a common idiom to provide compatibility
with versions of Emacs that lack the variable @code{image-load-path}:
@example
(let ((load-path
(image-load-path-for-library "mh-e" "mh-logo.xpm"))
(image-load-path
(image-load-path-for-library "mh-e" "mh-logo.xpm"
'image-load-path)))
(mh-tool-bar-folder-buttons-init))
@end example
@end defun
@node Showing Images
@subsection Showing Images

View File

@ -476,7 +476,7 @@ never remove the special meaning of @samp{-} or @samp{]}. So you
should not quote these characters when they have no special meaning
either. This would not clarify anything, since backslashes can
legitimately precede these characters where they @emph{have} special
meaning, as in @code{[^\]} (@code{"[^\\]"} for Lisp string syntax),
meaning, as in @samp{[^\]} (@code{"[^\\]"} for Lisp string syntax),
which matches any single character except a backslash.
In practice, most @samp{]} that occur in regular expressions close a
@ -485,8 +485,8 @@ regular expression may try to match a complex pattern of literal
@samp{[} and @samp{]}. In such situations, it sometimes may be
necessary to carefully parse the regexp from the start to determine
which square brackets enclose a character alternative. For example,
@code{[^][]]} consists of the complemented character alternative
@code{[^][]} (which matches any single character that is not a square
@samp{[^][]]} consists of the complemented character alternative
@samp{[^][]} (which matches any single character that is not a square
bracket), followed by a literal @samp{]}.
The exact rules are that at the beginning of a regexp, @samp{[} is

View File

@ -293,7 +293,7 @@ null strings are always omitted from the result. Thus:
@result{} ("two" "words")
@end example
The result is not @samp{("" "two" "words" "")}, which would rarely be
The result is not @code{("" "two" "words" "")}, which would rarely be
useful. If you need such a result, use an explicit value for
@var{separators}:
@ -355,7 +355,7 @@ practice:
@defvar split-string-default-separators
The default value of @var{separators} for @code{split-string}. Its
usual value is @w{@samp{"[ \f\t\n\r\v]+"}}.
usual value is @w{@code{"[ \f\t\n\r\v]+"}}.
@end defvar
@node Modifying Strings

View File

@ -1716,7 +1716,7 @@ Adaptive Fill mode matches this regular expression against the text
starting after the left margin whitespace (if any) on a line; the
characters it matches are that line's candidate for the fill prefix.
@w{@samp{"[ \t]*\\([-|#;>*]+[ \t]*\\|(?[0-9]+[.)][ \t]*\\)*"}} is the
@w{@code{"[ \t]*\\([-|#;>*]+[ \t]*\\|(?[0-9]+[.)][ \t]*\\)*"}} is the
default value. This matches a number enclosed in parentheses or
followed by a period, or certain punctuation characters, or any
sequence of these intermingled with whitespace. In particular, it
@ -1731,7 +1731,7 @@ prefix: the candidate must match this regular expression, or match
replaces the candidate with a string of spaces ``of the same width''
as it.
The default value of this variable is @w{@samp{"\\`[ \t]*\\'"}}, which
The default value of this variable is @w{@code{"\\`[ \t]*\\'"}}, which
matches only a string of whitespace. The effect of this default is to
force the fill prefixes found in one-line paragraphs always to be pure
whitespace.

View File

@ -1,3 +1,25 @@
2006-03-13 Carsten Dominik <dominik@science.uva.nl>
* org.texi (Clean view): Document new startup options.
2006-03-11 Bill Wohler <wohler@newt.com>
* mh-e.texi (Preface, More About MH-E, Options, HTML, Folders)
(Composing, Scan Line Formats): Fix @refs.
(Getting Started): Define MH profile and MH profile components.
(Incorporating Mail, Reading Mail, Viewing, Printing)
(Sending Mail, Forwarding, Editing Drafts, Inserting Letter)
(Signature, Aliases, Scan Line Formats): Use @code instead of @samp
for string constants.
(Tool Bar): Remove spurious quote.
(Junk): Use ``...'' instead of "...".
(Scan Line Formats): Replace @samp with @kbd.
2006-03-11 Luc Teirlinck <teirllm@auburn.edu>
* search.texi (Regexps): Use @samp for regexp that is not in Lisp
syntax.
2006-03-10 Katsumi Yamaoka <yamaoka@jpl.org>
* gnus.texi (NoCeM): Mention gnus-use-nocem can also be a number.
@ -85,7 +107,7 @@
(Electric Keys): Add a justification for electric indentation.
(Hungry WS Deletion): Clear up the names and complications of the
BACKSPACE and DELETE keys.
2006-02-23 Juri Linkov <juri@jurta.org>
* faq.texi (Common requests): Move `Turning on auto-fill by
@ -130,7 +152,7 @@
* emacs.texi: Use @smallbook.
(Top): Update ref to Emacs paper, delete ref to Cookbook.
Update subnode menu.
* building.texi (Lisp Interaction): Minor addition.
2006-02-18 Nick Roberts <nickrob@snap.net.nz>

View File

@ -24,7 +24,7 @@ particular date; @kbd{Mouse-3} brings up a menu of commonly used
calendar features that are independent of any particular date. To exit
the calendar, type @kbd{q}.
The basic features of the Calendar/Diary are described here.
This chapter describes the basic calendar features.
@inforef{Advanced Calendar/Diary Usage,, emacs-xtra}, for information
about more specialized features.
@ -49,13 +49,13 @@ about more specialized features.
@section Movement in the Calendar
@cindex moving inside the calendar
Calendar mode lets you move through the calendar in logical units of
time such as days, weeks, months, and years. If you move outside the
three months originally displayed, the calendar display ``scrolls''
automatically through time to make the selected date visible. Moving to
a date lets you view its holidays or diary entries, or convert it to other
calendars; moving longer time periods is also useful simply to scroll the
calendar.
Calendar mode provides commands to move through the calendar in
logical units of time such as days, weeks, months, and years. If you
move outside the three months originally displayed, the calendar
display ``scrolls'' automatically through time to make the selected
date visible. Moving to a date lets you view its holidays or diary
entries, or convert it to other calendars; moving by long time periods
is also useful simply to scroll the calendar.
@menu
* Calendar Unit Motion:: Moving by days, weeks, months, and years.
@ -117,16 +117,16 @@ moves to the same day in the previous week.
@findex calendar-forward-year
The commands for motion by months and years work like those for
weeks, but move a larger distance. The month commands @kbd{M-@}} and
@kbd{M-@{} move forward or backward by an entire month's time. The
year commands @kbd{C-x ]} and @w{@kbd{C-x [}} move forward or backward a
@kbd{M-@{} move forward or backward by an entire month. The year
commands @kbd{C-x ]} and @w{@kbd{C-x [}} move forward or backward a
whole year.
The easiest way to remember these commands is to consider months and
years analogous to paragraphs and pages of text, respectively. But the
commands themselves are not quite analogous. The ordinary Emacs paragraph
commands move to the beginning or end of a paragraph, whereas these month
and year commands move by an entire month or an entire year, which usually
involves skipping across the end of a month or year.
years analogous to paragraphs and pages of text, respectively. But
the commands themselves are not quite analogous. The ordinary Emacs
paragraph commands move to the beginning or end of a paragraph,
whereas these month and year commands move by an entire month or an
entire year, keeping the same date within the month or year.
All these commands accept a numeric argument as a repeat count.
For convenience, the digit keys and the minus sign specify numeric
@ -313,8 +313,8 @@ Exit from calendar (@code{exit-calendar}).
To display the number of days elapsed since the start of the year, or
the number of days remaining in the year, type the @kbd{p d} command
(@code{calendar-print-day-of-year}). This displays both of those
numbers in the echo area. The number of days elapsed includes the
selected date. The number of days remaining does not include that
numbers in the echo area. The count of days elapsed includes the
selected date. The count of days remaining does not include that
date.
@kindex C-c C-l @r{(Calendar mode)}
@ -432,8 +432,7 @@ date in the calendar window and use the @kbd{h} command. Alternatively,
click on that date with @kbd{Mouse-2} and then choose @kbd{Holidays}
from the menu that appears. Either way, this displays the holidays for
that date, in the echo area if they fit there, otherwise in a separate
window. If the variable @code{view-calendar-holidays-initially} is
non-@code{nil}, creating the calendar displays holidays in this way.
window.
@kindex x @r{(Calendar mode)}
@findex mark-calendar-holidays
@ -462,9 +461,11 @@ calendar window to scroll that list up and down, respectively.
@findex holidays
The command @kbd{M-x holidays} displays the list of holidays for the
current month and the preceding and succeeding months; this works even
if you don't have a calendar window. If you want the list of holidays
centered around a different month, use @kbd{C-u M-x holidays}, which
prompts for the month and year.
if you don't have a calendar window. If the variable
@code{view-calendar-holidays-initially} is non-@code{nil}, creating
the calendar displays holidays in this way. If you want the list of
holidays centered around a different month, use @kbd{C-u M-x
holidays}, which prompts for the month and year.
The holidays known to Emacs include United States holidays and the
major Christian, Jewish, and Islamic holidays; also the solstices and
@ -1017,7 +1018,7 @@ following day.
@kbd{Mouse-2} on the date, and then choose @kbd{Diary entries} from
the menu that appears. If the variable
@code{view-diary-entries-initially} is non-@code{nil}, creating the
calendar also lists diary entries for the current date (provided the
calendar lists the diary entries for the current date (provided the
current date is visible).
@kindex m @r{(Calendar mode)}
@ -1371,10 +1372,10 @@ begins with a recognizable time of day, Emacs can warn you several
minutes beforehand that that appointment is pending. Emacs alerts you
to the appointment by displaying a message in your chosen format, as
specified by the variable @code{appt-display-format}. If the value of
@code{appt-audible} is non-@code{nil}, an audible reminder is also
given. In addition, if @code{appt-display-mode-line} is non-@code{nil},
Emacs displays the number of minutes to the appointment on the mode
line.
@code{appt-audible} is non-@code{nil}, the warning includes an audible
reminder. In addition, if @code{appt-display-mode-line} is
non-@code{nil}, Emacs displays the number of minutes to the
appointment on the mode line.
@vindex appt-display-duration
@vindex appt-disp-window-function
@ -1387,12 +1388,12 @@ give the names of functions used to create and destroy the window,
respectively.
@findex appt-activate
To enable appointment notification, call the function
@code{appt-activate} with a positive argument. This sets up an
appointment list for today from the diary file, giving all diary entries
found with recognizable times of day, and reminds you just before each
of them. Calling @code{appt-activate} with a negative argument disables
the appointment package. With no argument, it toggles.
To enable appointment notification, use the command @kbd{M-x
appt-activate}. With a positive argument, it enables notification;
with a negative argument, it disables notification; with no argument,
it toggles. Enabling notification also sets up an appointment list
for today from the diary file, giving all diary entries found with
recognizable times of day, and reminds you just before each of them.
For example, suppose the diary file contains these lines:
@ -1404,10 +1405,10 @@ Monday
@vindex appt-message-warning-time
@noindent
Then on Mondays, you will be reminded at around 9:20am about your coffee
break and at around 11:50am about lunch. How many minutes in advance you
are first warned is determined by the value of
@code{appt-message-warning-time}.
Then on Mondays, you will be reminded at around 9:20am about your
coffee break and at around 11:50am about lunch. The variable
@code{appt-message-warning-time} specifies how many minutes in advance
to warn you; its default value is 12 (12 minutes).
You can write times in am/pm style (with @samp{12:00am} standing
for midnight and @samp{12:00pm} standing for noon), or 24-hour
@ -1416,12 +1417,12 @@ can have a mixture of the two styles. Times must be at the beginning
of lines if they are to be recognized.
@vindex appt-display-diary
Emacs updates the appointments list from the diary file automatically
just after midnight. An update can be forced at any time by
re-activating the appointment package. Both these actions also display
the day's diary buffer, unless you set @code{appt-display-diary} to
@code{nil}. The appointments list is also updated whenever the
diary file is saved.
Emacs updates the appointments list from the diary file
automatically just after midnight. You can force an update at any
time by re-enabling appointment notification. Both these actions also
display the day's diary buffer, unless you set
@code{appt-display-diary} to @code{nil}. The appointments list is
also updated whenever the diary file is saved.
@findex appt-add
@findex appt-delete
@ -1450,11 +1451,11 @@ diary file and iCalendar files, which are defined in ``RFC
2445---Internet Calendaring and Scheduling Core Object Specification
(iCalendar)'' (as well as the earlier vCalendar format).
Importing works for ``ordinary'' (i.e. non-recurring) events, but (at
present) may not work correctly (if at all) for recurring events.
Exporting of diary files into iCalendar files should work correctly for
most diary entries. Please note that @file{icalendar.el} is work in
progress, so usage may evolve in future.
Importing works for ``ordinary'' (i.e. non-recurring) events, but
(at present) may not work correctly (if at all) for recurring events.
Exporting of diary files into iCalendar files should work correctly
for most diary entries. This feature is a work in progress, so the
commands may evolve in future.
@findex icalendar-import-buffer
The command @code{icalendar-import-buffer} extracts
@ -1476,7 +1477,7 @@ and adds the results to an Emacs diary file. For example:
@noindent
You can use an @code{#include} directive to add the import file contents
to the main diary file, if these are distinct. @inforef{Fancy Diary
to the main diary file, if these are different files. @inforef{Fancy Diary
Display,, emacs-xtra}.
@findex icalendar-export-file, icalendar-export-region
@ -1485,7 +1486,6 @@ Emacs diary file to iCalendar format. To export only a part of a diary
file, mark the relevant area, and call @code{icalendar-export-region}.
In both cases the result is appended to the target file.
@node Daylight Savings
@section Daylight Savings Time
@cindex daylight savings time
@ -1560,7 +1560,8 @@ values are 120.
@cindex timeclock
The timeclock feature adds up time intervals, so you can (for
instance) keep track of how much time you spend working.
instance) keep track of how much time you spend working on particular
projects.
@findex timeclock-in
@findex timeclock-out
@ -1586,11 +1587,11 @@ workday in the mode line, either customize the
@code{t}, or invoke the @kbd{M-x timeclock-modeline-display} command.
@vindex timeclock-ask-before-exiting
Terminating the current Emacs session might or might not mean that you
have stopped working on the project and, by default, Emacs queries this.
You can, however, set the value of the variable
Terminating the current Emacs session might or might not mean that
you have stopped working on the project and, by default, Emacs asks
you. You can, however, set the value of the variable
@code{timeclock-ask-before-exiting} to @code{nil} (via @kbd{M-x
customize}) to avoid this behavior; then, only an explicit @kbd{M-x
customize}) to avoid the question; then, only an explicit @kbd{M-x
timeclock-out} or @kbd{M-x timeclock-change} will tell Emacs that the
current interval is over.

View File

@ -8,11 +8,11 @@
@c %**end of header
@c Version of the software and manual.
@set VERSION 7.93
@set VERSION 7.93+cvs
@c EDITION of the manual. It is either empty for the first edition or
@c has the form ", nth Edition" (without the quotes).
@set EDITION
@set UPDATED 2006-03-05
@set UPDATED 2006-03-11
@set UPDATE-MONTH March, 2006
@c Other variables.
@ -218,8 +218,8 @@ in GNU Emacs 21, as well as XEmacs 21 (except for versions
21.5.9-21.5.16). It is compatible with MH versions 6.8.4 and higher,
all versions of nmh, and GNU mailutils 0.4 and higher.}, so you
shouldn't have to do anything special to use it. This manual covers
MH-E version @value{VERSION}. @ref{Getting Started} will help you
decide which version you have.
MH-E version @value{VERSION}. To help you decide which version you
have, see @ref{Getting Started}.
If you don't already use GNU Emacs but want to learn more, you can
read an online tutorial by starting GNU Emacs and typing @kbd{C-h t}
@ -554,6 +554,17 @@ environment@footnote{See the section
If you don't, you'll be greeted with the error message: @samp{Install
MH and run install-mh before running MH-E}.
@cindex @samp{Path:} MH profile component
@cindex MH profile
@cindex MH profile component
@cindex MH profile component, @samp{Path:}
Your MH environment includes your @dfn{MH profile} which is found in
the file @file{~/.mh_profile}. This file contains a number of @dfn{MH
profile components}. For example, the @samp{Path:} MH profile
component contains the path to your mail directory, which is
@file{~/Mail} by default.
@cindex @samp{Draft-Folder:} MH profile component
@cindex @samp{Path:} MH profile component
@cindex @samp{Previous-Sequence:} MH profile component
@ -886,57 +897,58 @@ to find out how you can:
@itemize @bullet
@item
Print your messages (@ref{Printing}).
Print your messages (@pxref{Printing}).
@c -------------------------
@item
Edit messages and include your signature (@ref{Editing Drafts}).
Edit messages and include your signature (@pxref{Editing Drafts}).
@c -------------------------
@item
Forward messages (@ref{Forwarding}).
Forward messages (@pxref{Forwarding}).
@c -------------------------
@item
Read digests (@ref{Digests}).
Read digests (@pxref{Digests}).
@c -------------------------
@item
Edit bounced messages (@ref{Editing Again}).
Edit bounced messages (@pxref{Editing Again}).
@c -------------------------
@item
Send multimedia messages (@ref{Adding Attachments}).
Send multimedia messages (@pxref{Adding Attachments}).
@c -------------------------
@item
Read HTML messages (@ref{HTML}).
Read HTML messages (@pxref{HTML}).
@c -------------------------
@item
Use @ref{Aliases} and @ref{Identities}.
Use aliases and identities (see @ref{Aliases}, @pxref{Identities}).
@c -------------------------
@item
Create different views of your mail (@ref{Threading} and @ref{Limits}).
Create different views of your mail (see @ref{Threading}, @pxref{Limits}).
@c -------------------------
@item
Deal with junk mail (@ref{Junk}).
Deal with junk mail (@pxref{Junk}).
@c -------------------------
@item
Handle signed and encrypted messages (@ref{Reading PGP} and
@ref{Sending PGP}).
Handle signed and encrypted messages (see @ref{Reading PGP},
@pxref{Sending PGP}).
@c -------------------------
@item
Process mail that was sent with @command{shar} or @command{uuencode}
(@ref{Files and Pipes}).
(@pxref{Files and Pipes}).
@c -------------------------
@item
Use sequences conveniently (@ref{Sequences}).
Use sequences conveniently (@pxref{Sequences}).
@c -------------------------
@item
Use the @ref{Speedbar}, @ref{Tool Bar}, and @ref{Menu Bar}.
Use the speedbar, tool bar, and menu bar (see @ref{Speedbar}, see @ref{Tool
Bar}, @pxref{Menu Bar}).
@c -------------------------
@item
Show header fields in different fonts (@ref{Reading Mail}).
Show header fields in different fonts (@pxref{Reading Mail}).
@c -------------------------
@item
Find previously refiled messages (@ref{Searching}).
Find previously refiled messages (@pxref{Searching}).
@c -------------------------
@item
Place messages in a file (@ref{Files and Pipes}).
Place messages in a file (@pxref{Files and Pipes}).
@end itemize
Remember that you can also use MH commands when you're not running
@ -1065,7 +1077,8 @@ mh-lpr-command-format @key{RET}}. In the buffer that appears, modify
the string to the right of the variable. For example, you may change
the @command{lpr} command with @samp{nenscript -G -r -2 -i'%s'}. Then
use the @samp{State} combo box and select @samp{Save for Future
Sessions}. @ref{Printing} talks more about this option.
Sessions}. To read more about @code{mh-lpr-command-format}, see
@ref{Printing}.
@vindex mh-bury-show-buffer-flag, example
@ -1084,9 +1097,9 @@ stack.
The text usually says to turn on an option by setting it to a
@emph{non-@code{nil}} value, because sometimes values other than
@samp{on} are meaningful (for example, see @code{mh-mhl-format-file},
described in @ref{Viewing}). Other options, such as hooks, involve a
little more Emacs Lisp programming expertise.
@samp{on} are meaningful. An example of this is the variable
@code{mh-mhl-format-file} (@pxref{Viewing}). Other options, such as
hooks, involve a little more Emacs Lisp programming expertise.
@cindex @samp{mh} customization group
@cindex customization group, @samp{mh}
@ -1262,7 +1275,7 @@ used.
@vtable @code
@item mh-inc-prog
Program to incorporate mail (default: @samp{"inc"}).
Program to incorporate mail (default: @code{"inc"}).
@c -------------------------
@item mh-inc-spool-list
Alternate spool files (default: @code{nil}).
@ -1306,7 +1319,7 @@ mode line besides, add the following to @file{~/.emacs}:
@vindex mh-progs
The name of the program that incorporates new mail is stored in
@code{mh-inc-prog}; it is @samp{"inc"} by default. This program
@code{mh-inc-prog}; it is @code{"inc"} by default. This program
generates a one-line summary for each of the new messages. Unless it
is an absolute pathname, the file is assumed to be in the
@code{mh-progs} directory (@pxref{Getting Started}). You may also link
@ -1714,7 +1727,7 @@ On means non-reversible commands do not prompt for confirmation
@c -------------------------
@item mh-fetch-x-image-url
Control fetching of @samp{X-Image-URL:} header field image (default:
@code{Never Fetch}).
@samp{Never Fetch}).
@c -------------------------
@item mh-graphical-smileys-flag
On means graphical smileys are displayed (default: @samp{on}).
@ -1733,14 +1746,14 @@ here).
Additional header fields to hide (default: @code{nil}).
@c -------------------------
@item mh-lpr-command-format
Command used to print (default: @samp{"lpr -J '%s'"}).
Command used to print (default: @code{"lpr -J '%s'"}).
@c -------------------------
@item mh-max-inline-image-height
Maximum inline image height if \"Content-Disposition:\" is not
Maximum inline image height if @samp{Content-Disposition:} is not
present (default: 0).
@c -------------------------
@item mh-max-inline-image-width
Maximum inline image width if \"Content-Disposition:\" is not
Maximum inline image width if @samp{Content-Disposition:} is not
present(default: 0).
@c -------------------------
@item mh-mhl-format-file
@ -1754,12 +1767,16 @@ Default directory to use for @kbd{K a}.
On means messages should be printed in the background (default:
@samp{off}).
@c -------------------------
@item mh-show-buffer-mode-line-buffer-id
Format string to produce @code{mode-line-buffer-identification} for
show buffers (default: @code{" @{show-%s@} %d"}).
@c -------------------------
@item mh-show-maximum-size
Maximum size of message (in bytes) to display automatically (default:
0).
@c -------------------------
@item mh-show-use-xface-flag
On means display face images in MH-Show buffers (default: @code{on}).
On means display face images in MH-Show buffers (default: @samp{on}).
@c -------------------------
@item mh-store-default-directory
Default directory for @kbd{X s} (default: @samp{Current}).
@ -2074,7 +2091,7 @@ list. Both of these options are disabled if the option
MH-E normally renders signatures and vCards in italics so that the
body of the message stands out more. MH-E depends on the presence of
the @dfn{signature separator} (@samp{"-- "}) to do this. You can also
the @dfn{signature separator} (@code{"-- "}) to do this. You can also
customize the face @code{mh-show-signature} so the appearance of the
signature block is more to your liking.
@ -2098,7 +2115,7 @@ For those who like to modify their mode lines, use
the MH-Show buffers. Place the two escape strings @samp{%s} and
@samp{%d}, which will display the folder name and the message number,
respectively, somewhere in the string in that order. The default value
of @samp{"@{show-%s@} %d"} yields a mode line of
of @code{"@{show-%s@} %d"} yields a mode line of
@smallexample
-----@{show-+inbox@} 4 (MH-Show)--Bot--------------------------------
@ -2344,8 +2361,8 @@ then you'll see a button like this:
[1. text/html; foo.html]...
@end example
See @ref{Viewing Attachments} to see how to read the contents of this
body part.
To see how to read the contents of this body part, see @ref{Viewing
Attachments}.
The browser that MH-E uses is determined by the option
@code{mm-text-html-renderer}. The default setting is set automatically
@ -2685,7 +2702,7 @@ The command @kbd{P l} uses two options. The option
performs the actual printing. The string can contain one escape,
@samp{%s}, which is replaced by the name of the folder and the message
number and is useful for print job names. The default setting is
@samp{"lpr -J '%s'"}. I use @samp{"mpage -h'%s' -b Letter -H1of -mlrtb
@code{"lpr -J '%s'"}. I use @code{"mpage -h'%s' -b Letter -H1of -mlrtb
-P"} which produces a nice header and adds a bit of margin so the text
fits within my printer's margins. Normally messages are printed in the
foreground. If this is slow on your system, you may elect to turn on
@ -3270,8 +3287,8 @@ after a message is marked to be refiled.
If you are refiling several messages into the same folder, you can use
the command @kbd{!} (@code{mh-refile-or-write-again}) to repeat the
last refile or write (see the description of @kbd{>}
(@code{mh-write-msg-to-file} in @ref{Files and Pipes}). You can use a
last refile or write (for the description of @kbd{>}
(@code{mh-write-msg-to-file}), @pxref{Files and Pipes}). You can use a
range in either case (for example, @kbd{C-u o 1 3 5-7 last:5 frombob
@key{RET}}, @pxref{Ranges}).
@ -3616,7 +3633,7 @@ On means prompt for header fields when composing a new draft (default:
@samp{off}).
@c -------------------------
@item mh-forward-subject-format
Format string for forwarded message subject (default: @samp{"%s:
Format string for forwarded message subject (default: @code{"%s:
%s"}).
@c -------------------------
@item mh-insert-x-mailer-flag
@ -3692,17 +3709,16 @@ following key bindings to @file{~/.emacs} useful:
From within a MH-Folder buffer, you can simply use the command @kbd{m}
(@code{mh-send}). However you invoke @code{mh-send}, your letter
appears in an Emacs buffer whose mode is MH-Letter (see the Figure in
@ref{Sending Mail Tour} to see what the buffer looks like). MH-Letter
mode allows you to edit your message, to check the validity of the
recipients, to insert attachments and other messages into your
message, and to send the message. We'll go more into depth about
editing a @dfn{draft}@footnote{I highly recommend that you use a
@dfn{draft folder} so that you can edit several drafts in parallel. To
do so, create a folder named @samp{+drafts} for example, and add the
profile component @samp{Draft-Folder: drafts} (see
@code{mh-profile}(5)).} (a message you're composing) in just a moment
(@pxref{Editing Drafts}).
appears in an Emacs buffer whose mode is MH-Letter (to see what the
buffer looks like, @pxref{Sending Mail Tour}). MH-Letter mode allows
you to edit your message, to check the validity of the recipients, to
insert attachments and other messages into your message, and to send
the message. We'll go more into depth about editing a
@dfn{draft}@footnote{I highly recommend that you use a @dfn{draft
folder} so that you can edit several drafts in parallel. To do so,
create a folder named @samp{+drafts} for example, and add the profile
component @samp{Draft-Folder: drafts} (see @code{mh-profile}(5)).} (a
message you're composing) in just a moment (@pxref{Editing Drafts}).
@vindex mh-compose-prompt-flag
@ -3912,7 +3928,7 @@ is controlled by the option @code{mh-forward-subject-format}. This
option is a string which includes two escapes (@samp{%s}). The first
@samp{%s} is replaced with the sender of the original message, and the
second one is replaced with the original @samp{Subject:}. The default
value of @samp{"%s: %s"} takes a message with the header:
value of @code{"%s: %s"} takes a message with the header:
@smallexample
@group
@ -4310,11 +4326,11 @@ On means delete any window displaying the message (default: @samp{off}).
@c -------------------------
@item mh-extract-from-attribution-verb
Verb to use for attribution when a message is yanked by @kbd{C-c C-y}
(default: @samp{"wrote:"}).
(default: @code{"wrote:"}).
@c -------------------------
@item mh-ins-buf-prefix
String to put before each line of a yanked or inserted message
(default: @samp{"> "}).
(default: @code{"> "}).
@c -------------------------
@item mh-letter-complete-function
Function to call when completing outside of address or folder fields
@ -4328,7 +4344,7 @@ Default method to use in security tags (default: @samp{PGP (MIME)} if
support for it is available; otherwise @samp{None}).
@c -------------------------
@item mh-signature-file-name
Source of user's signature (default: @samp{"~/.signature"}).
Source of user's signature (default: @code{"~/.signature"}).
@c -------------------------
@item mh-signature-separator-flag
On means a signature separator should be inserted (default:
@ -4336,7 +4352,7 @@ On means a signature separator should be inserted (default:
@c -------------------------
@item mh-x-face-file
File containing X-Face or Face header field to insert in outgoing mail.
(default: @samp{"~/.face"}).
(default: @code{"~/.face"}).
@c -------------------------
@item mh-yank-behavior
Controls which part of a message is yanked by @kbd{C-c C-y} (default:
@ -4594,7 +4610,7 @@ the @samp{Custom String} menu item to enter your own verb.
@vindex mh-ins-buf-prefix
The prefix @samp{"> "} is the default setting for the option
The prefix @code{"> "} is the default setting for the option
@code{mh-ins-buf-prefix}. I suggest that you not modify this option
since it is used by many mailers and news readers: messages are far
easier to read if several included messages have all been indented by
@ -4727,7 +4743,7 @@ if the buffer contains a separator, may be useful as well.
@cindex signature separator
@vindex mh-signature-separator-flag
A signature separator (@samp{"-- "}) will be added if the signature
A signature separator (@code{"-- "}) will be added if the signature
block does not contain one and @code{mh-signature-separator-flag} is
on. It is not recommended that you change this option since various
mail user agents, including MH-E, use the separator to present the
@ -5350,7 +5366,7 @@ If @samp{on}, local users are added to alias completion (default:
@c -------------------------
@item mh-alias-local-users-prefix
String prefixed to the real names of users from the password file
(default: @samp{"local."}.
(default: @code{"local."}.
@c -------------------------
@item mh-alias-passwd-gecos-comma-separator-flag
On means the GECOS field in the password file uses a comma separator
@ -5991,7 +6007,7 @@ frame. You can choose from one of @samp{Same As Default Tool Bar},
@samp{Top}, @samp{Bottom}, @samp{Left}, or @samp{Right}. If this
variable is set to anything other than @samp{Same As Default Tool Bar}
and the default tool bar is in a different location, then two tool
bars will be displayed: the MH-E tool bar and the default tool bar."
bars will be displayed: the MH-E tool bar and the default tool bar.
@node Searching, Threading, Tool Bar, Top
@chapter Searching Through Messages
@ -7059,7 +7075,7 @@ works best for you.
First, run @samp{spamassassin -t} on every mail message in your
archive and use @command{gnumeric} to verify that the average plus the
standard deviation of good mail is under 5, the SpamAssassin default
for "spam".
for ``spam''.
Using @command{gnumeric}, sort the messages by score and view the
messages with the highest score. Determine the score which encompasses
@ -7370,7 +7386,7 @@ Specifies the format file to pass to the scan program (default:
@samp{Use MH-E scan Format}).
@c -------------------------
@item mh-scan-prog
Program used to scan messages (default: @samp{"scan"}).
Program used to scan messages (default: @code{"scan"}).
@end vtable
@findex mh-set-cmd-note
@ -7459,7 +7475,7 @@ the @samp{Bcc:} field matches, and @samp{n} if a non-empty
@vindex mh-scan-prog
The name of the program that generates a listing of one line per
message is held in @code{mh-scan-prog} (default: @samp{"scan"}).
message is held in @code{mh-scan-prog} (default: @code{"scan"}).
Unless this variable contains an absolute pathname, it is assumed to
be in the @code{mh-progs} directory (@pxref{Getting Started}). You may
link another program to @command{scan} (see @samp{mh-profile}(5)) to
@ -7471,22 +7487,21 @@ pick Ranges Sequences} in the MH book.}.
If you change the format of the scan lines you'll need to tell MH-E
how to parse the new format. As you will see, quite a lot of variables
are involved to do that. Use @samp{M-x apropos @key{RET} mh-scan.*regexp'}
to obtain a list of these variables. You will also have to call
@code{mh-set-cmd-note} if your notations are not in column 4 (columns
in Emacs start with 0). Note that unlike most of the user options
described in this manual, these are variables and must be set with
@code{setq} instead of in a customization buffer. For help with
regular expressions, see
are involved to do that. Use @kbd{M-x apropos @key{RET}
mh-scan.*regexp @key{RET}} to obtain a list of these variables. You
will also have to call @code{mh-set-cmd-note} if your notations are
not in column 4 (columns in Emacs start with 0). Note that unlike most
of the user options described in this manual, these are variables and
must be set with @code{setq} instead of in a customization buffer. For
help with regular expressions, see
@ifnothtml
@ref{Regexps, , Syntax of Regular Expressions, emacs, The
GNU Emacs Manual}
GNU Emacs Manual}.
@end ifnothtml
@ifhtml
the section
section
@uref{http://www.gnu.org/software/emacs/manual/html_node/Regexps.html,
Syntax of Regular Expressions} in
@cite{The GNU Emacs Manual}).
Syntax of Regular Expressions} in @cite{The GNU Emacs Manual}.
@end ifhtml
The first variable has to do with pruning out garbage.
@ -7501,7 +7516,7 @@ This regular expression describes a valid scan line. This is used to
eliminate error messages that are occasionally produced by
@command{inc}@footnote{See the section
@uref{@value{MH-BOOK-HOME}/reapre.htm, Reading Mail: inc show next
prev} in the MH book.} or @command{scan} (default: @samp{"^ *[0-9]"}).
prev} in the MH book.} or @command{scan} (default: @code{"^ *[0-9]"}).
@end vtable
Next, many variables control how the scan lines are parsed.
@ -7516,7 +7531,7 @@ This regular expression matches the message body fragment. Note that
the default setting of @code{mh-folder-font-lock-keywords} expects
this expression to contain at least one parenthesized expression which
matches the body text as in the default of
@samp{"\\(<<\\([^\n]+\\)?\\)"}. If this regular expression is not
@code{"\\(<<\\([^\n]+\\)?\\)"}. If this regular expression is not
correct, the body fragment will not be highlighted with the face
@code{mh-folder-body}.
@c -------------------------
@ -7528,7 +7543,7 @@ This regular expression matches the current message. It must match
from the beginning of the line. Note that the default setting of
@code{mh-folder-font-lock-keywords} expects this expression to contain
at least one parenthesized expression which matches the message number
as in the default of @w{@samp{"^\\( *[0-9]+\\+\\).*"}}. This
as in the default of @w{@code{"^\\( *[0-9]+\\+\\).*"}}. This
expression includes the leading space and current message marker
@samp{+} within the parenthesis since it looks better to highlight
these items as well. The highlighting is done with the face
@ -7545,7 +7560,7 @@ anchored to the beginning or the end of the line. Note that the
default setting of @code{mh-folder-font-lock-keywords} expects this
expression to contain only one parenthesized expression which matches
the date field as in the default of
@samp{"\\([0-9][0-9]/[0-9][0-9]\\)"}. If this regular expression is
@code{"\\([0-9][0-9]/[0-9][0-9]\\)"}. If this regular expression is
not correct, the date will not be highlighted with the face
@code{mh-folder-date}.
@c -------------------------
@ -7557,7 +7572,7 @@ This regular expression matches deleted messages. It must match from
the beginning of the line. Note that the default setting of
@code{mh-folder-font-lock-keywords} expects this expression to contain
at least one parenthesized expression which matches the message number
as in the default of @samp{"^\\( *[0-9]+\\)D"}. This expression
as in the default of @code{"^\\( *[0-9]+\\)D"}. This expression
includes the leading space within the parenthesis since it looks
better to highlight it as well. The highlighting is done with the face
@code{mh-folder-deleted}. This regular expression should be correct as
@ -7571,7 +7586,7 @@ This regular expression matches ``good'' messages. It must match from
the beginning of the line. Note that the default setting of
@code{mh-folder-font-lock-keywords} expects this expression to contain
at least one parenthesized expression which matches the message number
as in the default of @w{@samp{"^\\( *[0-9]+\\)[^D^0-9]"}}. This
as in the default of @w{@code{"^\\( *[0-9]+\\)[^D^0-9]"}}. This
expression includes the leading space within the parenthesis since it
looks better to highlight it as well. The highlighting is done with
the face @code{mh-folder-msg-number}. This regular expression should
@ -7581,7 +7596,7 @@ be correct as it is needed by non-fontification functions.
@item mh-scan-msg-format-regexp
This regular expression finds the message number width in a scan
format. Note that the message number must be placed in a parenthesized
expression as in the default of @samp{"%\\([0-9]*\\)(msg)"}. This
expression as in the default of @code{"%\\([0-9]*\\)(msg)"}. This
variable is only consulted if @code{mh-scan-format-file} is set to
@samp{Use MH-E scan Format}.
@c -------------------------
@ -7590,22 +7605,22 @@ variable is only consulted if @code{mh-scan-format-file} is set to
This is a format string for the width of the message number in a scan
format. Use @samp{0%d} for zero-filled message numbers. This variable
is only consulted if @code{mh-scan-format-file} is set to @samp{Use
MH-E scan Format} (default: @samp{"%d"}).
MH-E scan Format} (default: @code{"%d"}).
@c -------------------------
@item mh-scan-msg-number-regexp
This regular expression extracts the message number. It must match
from the beginning of the line. Note that the message number must be
placed in a parenthesized expression as in the default of @w{@samp{"^
placed in a parenthesized expression as in the default of @w{@code{"^
*\\([0-9]+\\)"}}.
@c -------------------------
@item mh-scan-msg-overflow-regexp
This regular expression matches overflowed message numbers (default:
@samp{"^[?0-9][0-9]"}).
@code{"^[?0-9][0-9]"}).
@c -------------------------
@item mh-scan-msg-search-regexp
This regular expression matches a particular message. It is a format
string; use @samp{%d} to represent the location of the message number
within the expression as in the default of @samp{"^[^0-9]*%d[^0-9]"}.
within the expression as in the default of @code{"^[^0-9]*%d[^0-9]"}.
@c -------------------------
@vindex mh-folder-address
@vindex mh-folder-font-lock-keywords
@ -7616,7 +7631,7 @@ Note that the default setting of @code{mh-folder-font-lock-keywords}
expects this expression to contain two parenthesized expressions. The
first is expected to match the @samp{To:} that the default scan format
file generates. The second is expected to match the recipient's name
as in the default of @samp{"\\(To:\\)\\(..............\\)"}. If this
as in the default of @code{"\\(To:\\)\\(..............\\)"}. If this
regular expression is not correct, the @samp{To:} string will not be
highlighted with the face @code{mh-folder-to} and the recipient will not be
highlighted with the face @code{mh-folder-address}.
@ -7629,7 +7644,7 @@ This regular expression matches refiled messages. It must match from
the beginning of the line. Note that the default setting of
@code{mh-folder-font-lock-keywords} expects this expression to contain
at least one parenthesized expression which matches the message number
as in the default of @w{@samp{"^\\( *[0-9]+\\)\\^"}}. This expression
as in the default of @w{@code{"^\\( *[0-9]+\\)\\^"}}. This expression
includes the leading space within the parenthesis since it looks
better to highlight it as well. The highlighting is done with the face
@code{mh-folder-refiled}. This regular expression should be correct as
@ -7647,7 +7662,7 @@ expression to contain at least two parenthesized expressions. The
first should match the fontification hint (see
@code{mh-scan-format-nmh}) and the second should match the user name
as in the default of
@w{@samp{"^ *[0-9]+.\\([bct]\\).....[ ]*\\(..................\\)"}}.
@w{@code{"^ *[0-9]+.\\([bct]\\).....[ ]*\\(..................\\)"}}.
If this regular expression is not correct, the notation hints will not
be highlighted with the face @code{mh-mh-folder-sent-to-me-hint} and
the sender will not be highlighted with the face
@ -7667,8 +7682,8 @@ number after @samp{Re:}, such as in @samp{Re[2]:} (and is thus a
sub-expression of the first expression). The third is expected to
match the subject line itself which is highlighted with the face
@code{mh-folder-subject}. For example, the default is
@w{@samp{"^ *[0-9]+........[ ]*...................}}@*
@w{@samp{\\([Rr][Ee]\\(\\[[0-9]+\\]\\)?:\\s-*\\)*\\([^<\n]*\\)"}}.
@w{@code{"^ *[0-9]+........[ ]*...................}}@*
@w{@code{\\([Rr][Ee]\\(\\[[0-9]+\\]\\)?:\\s-*\\)*\\([^<\n]*\\)"}}.
This regular expression should be correct as it is needed by
non-fontification functions. Note that this example is broken up on
two lines for readability, but is actually a single string.
@ -7687,39 +7702,39 @@ Emacs start with 0.
@c -------------------------
@item mh-note-copied
Messages that have been copied are marked by this character (default:
@samp{?C}).
@code{?C}).
@c -------------------------
@item mh-note-cur
The current message (in MH, not in MH-E) is marked by this character
(default: @samp{?+}). See also @code{mh-scan-cur-msg-number-regexp}.
(default: @code{?+}). See also @code{mh-scan-cur-msg-number-regexp}.
@c -------------------------
@item mh-note-deleted
Messages that have been deleted are marked by this character (default:
@samp{?D}). See also @code{mh-scan-deleted-msg-regexp}.
@code{?D}). See also @code{mh-scan-deleted-msg-regexp}.
@c -------------------------
@item mh-note-dist
Messages that have been redistributed are marked by this character
(default: @samp{?R}).
(default: @code{?R}).
@c -------------------------
@item mh-note-forw
Messages that have been forwarded are marked by this character
(default: @samp{?F}).
(default: @code{?F}).
@c -------------------------
@item mh-note-printed
Messages that have been printed are marked by this character (default:
@samp{?P}).
@code{?P}).
@c -------------------------
@item mh-note-refiled
Messages that have been refiled are marked by this character (default:
@samp{?^}). See also @code{mh-scan-refiled-msg-regexp}.
@code{?^}). See also @code{mh-scan-refiled-msg-regexp}.
@c -------------------------
@item mh-note-repl
Messages that have been replied to are marked by this character
(default: @samp{?-}).
(default: @code{?-}).
@c -------------------------
@item mh-note-seq
Messages in a user-defined sequence are marked by this character
(default: @samp{?%}). Messages in the @samp{search} sequence are
(default: @code{?%}). Messages in the @samp{search} sequence are
marked by this character as well.
@end vtable

View File

@ -4,7 +4,7 @@
@setfilename ../info/org
@settitle Org Mode Manual
@set VERSION 4.08
@set VERSION 4.09
@set DATE March 2006
@dircategory Emacs
@ -22,6 +22,7 @@
@c Macro definitions
@c FIXME: does not look good in html
@c Subheadings inside a table. Need a difference between info and the rest.
@macro tsubheading{text}
@ifinfo
@ -3063,8 +3064,18 @@ to read. To do this, customize the variable
@end lisp
@noindent
and restart emacs (this is necessary to make this change effective).
The tree then becomes
or change this on a per-file basis with one of the lines (anywhere in
the buffer)
@example
#+STARTUP: showstars
#+STARTUP: hidestars
@end example
@noindent
Press @kbd{C-c C-c} with the cursor in a @samp{STARTUP} line to activate
the modifications.
With stars hidden, the tree becomes:
@example
* Top level headline
@ -3101,17 +3112,28 @@ outline level to the next:
@noindent
In order to make the structure editing and export commands handle this
convention correctly, use (again a restart of emacs will be needed)
convention correctly, use
@lisp
(setq org-odd-levels-only t)
@end lisp
@noindent
or set this on a per-file basis with one of the following lines (don't
forget to press @kbd{C-c C-c} with the cursor in the startup line to
activate changes immediately).
@example
#+STARTUP: odd
#+STARTUP: oddeven
@end example
You can convert an Org-mode file from single-star-per-level to
double-star-per-level convention with @kbd{M-x org-convert-to-odd-levels
RET} in that file. It is not possible to use this setting on a
file-local basis, so you need to decide which format to use.
RET} in that file. There is no command for the back conversion because
such a command might merge levels and in this way destroy the
structure of the tree.
@c FIXME: Maybe we should have such a command...
@node TTY keys, FAQ, Clean view, Miscellaneous
@section Using org-mode on a tty
@ -3130,7 +3152,6 @@ work-around can be better. For example changing a time stamp is
really only fun with @kbd{S-@key{cursor}} keys. On a tty you would
rather use @kbd{C-c .} to re-insert the timestamp.
@page
@multitable @columnfractions 0.15 0.2 0.2
@item @b{Default} @tab @b{Alternative 1} @tab @b{Alternative 2}
@item @kbd{S-@key{TAB}} @tab @kbd{C-u @key{TAB}} @tab
@ -3339,7 +3360,7 @@ to have other replacement keys, look at the variable
@code{org-disputed-keys}.
@item @file{remember.el} by John Wiegley
Org mode cooperates with remember, see @ref{Remember}.
@file{remember.el} is not part of Emacs, find it on the web.
@file{Remember.el} is not part of Emacs, find it on the web.
@cindex @file{planner.el}
@item @file{planner.el} by John Wiegley
Planner is another tool to plan work and keep track of tasks. Planner
@ -3388,7 +3409,7 @@ However, from Org-mode's timeline and agenda buffers (created with
@kbd{C-c C-r} and @kbd{C-c a}), things do work correctly.
@item
You can only make a single word boldface or italic. To emphasize
several words in a row, each much have the emphasize markers, like in
several words in a row, each must have the emphasize markers, like in
@samp{*three* *bold* *words*}.
@item
The exporters work well, but could be made more efficient.
@ -3452,6 +3473,8 @@ Linking to VM/BBDB/GNUS was inspired by Tom Shannon's
Juergen Vollmer contributed code generating the table of contents
in HTML output, and other export improvements.
@item
Chris Wallace provided a patch implementing the @samp{QUOTE} keyword.
@item
David Wainberg suggested the archiving mechanism and shaped the
internal link system with many suggestions and ideas.
@item

View File

@ -689,7 +689,7 @@ never remove the special meaning of @samp{-} or @samp{]}. So you
should not quote these characters when they have no special meaning
either. This would not clarify anything, since backslashes can
legitimately precede these characters where they @emph{have} special
meaning, as in @code{[^\]} (@code{"[^\\]"} for Lisp string syntax),
meaning, as in @samp{[^\]} (@code{"[^\\]"} for Lisp string syntax),
which matches any single character except a backslash.
@node Regexp Backslash

View File

@ -1,3 +1,16 @@
2006-03-12 Jason Rumney <jasonr@gnu.org>
* addpm.c (add_registry): Don't change the registry unless keys
already exist from a previous version.
* makefile.w32-in (install): Use -q when invoking addpm.
* addpm.c (main): Accept -q as alternative for /q.
2006-03-11 Jason Rumney <jasonr@gnu.org>
* runemacs.c (WinMain): Set screen buffer to 80x25.
2005-12-24 Eli Zaretskii <eliz@gnu.org>
* gmake.defs (TEMACS_EXTRA_LINK): Remove redundant -g.

View File

@ -71,19 +71,23 @@ add_registry (path)
char *path;
{
HKEY hrootkey = NULL;
DWORD dwDisp;
int i;
BOOL ok = TRUE;
/* Previous versions relied on registry settings, but we do not need
them any more. If registry settings are installed from a previous
version, replace them to ensure they are the current settings.
Otherwise, do nothing. */
/* Check both the current user and the local machine to see if we
have any resources. */
if (RegCreateKeyEx (HKEY_LOCAL_MACHINE, REG_ROOT,
0, "", REG_OPTION_NON_VOLATILE,
KEY_WRITE, NULL, &hrootkey, &dwDisp) != ERROR_SUCCESS
&& RegCreateKeyEx (HKEY_CURRENT_USER, REG_ROOT,
0, "", REG_OPTION_NON_VOLATILE,
KEY_WRITE, NULL, &hrootkey, &dwDisp) != ERROR_SUCCESS)
if (RegOpenKeyEx (HKEY_LOCAL_MACHINE, REG_ROOT,
REG_OPTION_NON_VOLATILE,
KEY_WRITE, &hrootkey) != ERROR_SUCCESS
&& RegOpenKeyEx (HKEY_CURRENT_USER, REG_ROOT,
REG_OPTION_NON_VOLATILE,
KEY_WRITE, &hrootkey) != ERROR_SUCCESS)
{
return FALSE;
}
@ -122,12 +126,14 @@ main (argc, argv)
#if 0
if (argc < 2 || argc > 3)
{
fprintf (stderr, "usage: addpm [/q] [emacs_path [icon_path]]\n");
fprintf (stderr, "usage: addpm [-q] [emacs_path [icon_path]]\n");
exit (1);
}
#endif
if (argc > 1 && argv[1][0] == '/' && argv[1][1] == 'q')
if (argc > 1
&& (argv[1][0] == '/' || argv[1][0] == '-')
&& argv[1][1] == 'q')
{
quiet = 1;
--argc;

View File

@ -180,7 +180,7 @@ install: all $(INSTALL_DIR)/bin install-other-dirs-$(MAKETYPE)
- $(CP) $(BLD)/ddeclient.exe $(INSTALL_DIR)/bin
- $(CP) $(BLD)/cmdproxy.exe $(INSTALL_DIR)/bin
- $(CP) $(BLD)/runemacs.exe $(INSTALL_DIR)/bin
- "$(INSTALL_DIR)/bin/addpm" /q
- "$(INSTALL_DIR)/bin/addpm" -q
- $(DEL) ../same-dir.tst
- $(DEL) $(INSTALL_DIR)/same-dir.tst
echo SameDirTest > "$(INSTALL_DIR)/same-dir.tst"

View File

@ -138,8 +138,12 @@ WinMain (HINSTANCE hSelf, HINSTANCE hPrev, LPSTR cmdline, int nShow)
memset (&start, 0, sizeof (start));
start.cb = sizeof (start);
start.dwFlags = STARTF_USESHOWWINDOW;
start.dwFlags = STARTF_USESHOWWINDOW | STARTF_USECOUNTCHARS;
start.wShowWindow = SW_HIDE;
/* Ensure that we don't waste memory if the user has specified a huge
default screen buffer for command windows. */
start.dwXCountChars = 80;
start.dwYCountChars = 25;
sec_attrs.nLength = sizeof (sec_attrs);
sec_attrs.lpSecurityDescriptor = NULL;

View File

@ -1,3 +1,129 @@
2006-03-12 Jason Rumney <jasonr@gnu.org>
* w32fns.c (Fx_create_frame): Remove call to
Qface_set_after_frame_default. (from xfns.c 2003-05-26)
* w32menu.c (Fx_popup_menu): Call w32_free_menu_strings when
finished with the menu.
* w32term.c: Sync 2005-10-24 xterm.c changes.
(last_mouse_glyph_frame): New var.
(note_mouse_movement): Say mouse moved if current frame differs
from last_mouse_glyph_frame, and update last_mouse_glyph_frame.
(w32_mouse_position): Set last_mouse_glyph_frame.
Remove OLD_REDISPLAY_CODE block.
2006-03-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
* macgui.h [USE_ATSUI && MAC_OSX]: Define USE_CG_TEXT_DRAWING to 1.
* macterm.h (struct mac_output) [USE_CG_DRAWING]: New member cg_context.
(mac_prepare_for_quickdraw) [USE_CG_DRAWING]: Add prototype.
* mac.c (sys_select) [USE_CG_DRAWING]: Call mac_prepare_for_quickdraw.
* macfns.c (x_create_tip_frame): Apply 2006-03-11 change for xfns.c.
* macterm.c (mac_draw_rectangle, x_draw_glyph_string_foreground)
(x_draw_composite_glyph_string_foreground)
(x_draw_image_foreground): Undo previous changes.
(x_draw_hollow_cursor): Likewise. Subtract 1 from the last
argument of mac_draw_rectangle.
(CG_SET_FILL_COLOR, CG_SET_STROKE_COLOR): New macros.
(mac_draw_string_common, mac_draw_image_string_cg): Use them.
(FRAME_CG_CONTEXT) [USE_CG_DRAWING]: New macro.
(mac_begin_cg_clip, mac_end_cg_clip, mac_prepare_for_quickdraw)
[USE_CG_DRAWING]: New functions.
(mac_draw_line, mac_erase_rectangle, mac_clear_window)
(mac_fill_rectangle, mac_draw_rectangle, mac_draw_string_common)
(mac_draw_image_string_cg) [USE_CG_DRAWING]: Add Quartz 2D drawing part.
(mac_draw_bitmap, mac_invert_rectangle, mac_draw_string_common)
(mac_copy_area, mac_scroll_area, x_scroll_bar_create)
(x_scroll_bar_remove, XTset_vertical_scroll_bar, x_set_window_size)
(XTread_socket) [USE_CG_DRAWING]: Call mac_prepare_for_quickdraw.
2006-03-12 L$,1 q(Brentey K,Aa(Broly <lorentey@elte.hu>
* xfns.c (x_icon): Disable redundant call to `x_wm_set_window_state'.
2006-03-11 Jason Rumney <jasonr@gnu.org>
* w32fns.c (signal_user_input): New function.
(post_character_message): Use it for keyboard input.
(w32_msg_pump): Use it for mouse input.
2006-03-11 Luc Teirlinck <teirllm@auburn.edu>
* window.c: Rename preserve_y to window_scroll_pixel_based_preserve_y.
(window_scroll_pixel_based, syms_of_window): Adapt to above change.
2006-03-11 Eli Zaretskii <eliz@gnu.org>
* w32fns.c (w32_wnd_proc): Ignore middle and extra button events
if a menu is already active (the menubar_active flag is on).
2006-03-11 David Ponce <david@dponce.com>
* xfns.c (x_create_tip_frame): Preserve received parms by copying
them.
2006-03-11 Eli Zaretskii <eliz@gnu.org>
* w32term.c: Add x_fully_uncatch_errors and x_catching_errors to
the list of unused display error handling functions.
* eval.c (unwind_to_catch): Call x_fully_uncatch_errors only if
HAVE_X_WINDOWS.
(internal_condition_case, internal_condition_case_1)
(internal_condition_case_2): Call x_catching_errors only if
HAVE_X_WINDOWS.
* vm-limit.c [HAVE_GETRLIMIT]: Don't define unconditionally.
Don't include sys/resource.h unless defined.
2006-03-11 Richard Stallman <rms@gnu.org>
* keymap.c (describe_map): Shorten string to indicate shadowed binding.
* vm-limit.c (get_lim_data, lim_data, data_space_start):
Moved from mem-limits.h.
(enum warnlevel): New data type.
(check_memory_limits): Rewrite the logic about warnings.
Use standard `struct rlimit'. Check return values for nonsense.
(memory_warnings): Always clear lim_data.
* mem-limits.h (get_lim_data, lim_data, data_space_start):
Moved to vm-limit.c.
* xterm.c (x_fully_uncatch_errors, x_catching_errors): New functions.
* eval.c (unwind_to_catch): Call x_fully_uncatch_errors.
(internal_condition_case_1, internal_condition_case_2):
Abort if within unclosed x_catch_errors.
2006-03-11 Romain Francoise <romain@orebokech.com>
* process.c (Vprocess_adaptive_read_buffering): Doc fix.
2006-03-11 Giorgos Keramidas <keramida@ceid.upatras.gr> (tiny change)
* lisp.h: Remove duplicate prototypes. Make the prototype of
getloadavg be conditioned on HAVE_GETLOADAVG being undefined.
2006-03-11 Eli Zaretskii <eliz@gnu.org>
* xterm.c (x_draw_hollow_cursor): Subtract 1 from the last
argument of XDrawRectangle.
* xdisp.c (get_phys_cursor_geometry): Don't decrease height by 1.
* macterm.c (mac_draw_rectangle): Don't add 1 to width and height.
(x_draw_glyph_string_foreground)
(x_draw_composite_glyph_string_foreground)
(x_draw_image_foreground): Don't subtract 1 from width and height
arguments to mac_draw_rectangle.
(x_draw_hollow_cursor): Add 1 to w->phys_cursor_width.
2006-03-10 Kim F. Storm <storm@cua.dk>
* alloc.c (USE_POSIX_MEMALIGN): Fix last change.
@ -23,7 +149,7 @@
* image.c [MAC_OS] (XPutPixel): Set alpha channel bits if pixmap
depth is 32.
[MAC_OS] (XGetPixel): Strip off alpha channel bits if pixmap
[MAC_OS] (XGetPixel): Strip off alpha channel bits if pixmap
depth is 32.
2006-03-06 Chong Yidong <cyd@stupidchicken.com>

View File

@ -1259,6 +1259,12 @@ unwind_to_catch (catch, value)
}
while (! last_time);
#if HAVE_X_WINDOWS
/* If x_catch_errors was done, turn it off now.
(First we give unbind_to a chance to do that.) */
x_fully_uncatch_errors ();
#endif
byte_stack_list = catch->byte_stack;
gcprolist = catch->gcpro;
#ifdef DEBUG_GCPRO
@ -1435,8 +1441,10 @@ internal_condition_case (bfun, handlers, hfun)
struct catchtag c;
struct handler h;
#if 0 /* We now handle interrupt_input_blocked properly.
What we still do not handle is exiting a signal handler. */
/* Since Fsignal will close off all calls to x_catch_errors,
we will get the wrong results if some are not closed now. */
#if HAVE_X_WINDOWS
if (x_catching_errors ())
abort ();
#endif
@ -1481,6 +1489,13 @@ internal_condition_case_1 (bfun, arg, handlers, hfun)
struct catchtag c;
struct handler h;
/* Since Fsignal will close off all calls to x_catch_errors,
we will get the wrong results if some are not closed now. */
#if HAVE_X_WINDOWS
if (x_catching_errors ())
abort ();
#endif
c.tag = Qnil;
c.val = Qnil;
c.backlist = backtrace_list;
@ -1525,6 +1540,13 @@ internal_condition_case_2 (bfun, nargs, args, handlers, hfun)
struct catchtag c;
struct handler h;
/* Since Fsignal will close off all calls to x_catch_errors,
we will get the wrong results if some are not closed now. */
#if HAVE_X_WINDOWS
if (x_catching_errors ())
abort ();
#endif
c.tag = Qnil;
c.val = Qnil;
c.backlist = backtrace_list;

View File

@ -3390,7 +3390,7 @@ describe_map (map, prefix, elt_describer, partial, shadow,
if (vect[i].shadowed)
{
SET_PT (PT - 1);
insert_string (" (binding currently shadowed)");
insert_string (" (shadowed)");
SET_PT (PT + 1);
}
}

View File

@ -2767,7 +2767,6 @@ EXFUN (Fbobp, 0);
EXFUN (Fformat, MANY);
EXFUN (Fmessage, MANY);
extern Lisp_Object format2 P_ ((char *, Lisp_Object, Lisp_Object));
extern Lisp_Object make_buffer_string P_ ((int, int, int));
EXFUN (Fbuffer_substring, 2);
EXFUN (Fbuffer_string, 0);
extern Lisp_Object save_excursion_save P_ ((void));
@ -2786,7 +2785,6 @@ extern Lisp_Object make_buffer_string P_ ((int, int, int));
extern Lisp_Object make_buffer_string_both P_ ((int, int, int, int, int));
extern void init_editfns P_ ((void));
extern void syms_of_editfns P_ ((void));
EXFUN (Fcurrent_message, 0);
extern Lisp_Object Vinhibit_field_text_motion;
EXFUN (Fconstrain_to_field, 5);
EXFUN (Ffield_string, 1);
@ -2885,7 +2883,6 @@ extern Lisp_Object close_file_unwind P_ ((Lisp_Object));
extern void report_file_error P_ ((const char *, Lisp_Object));
extern int internal_delete_file P_ ((Lisp_Object));
extern void syms_of_fileio P_ ((void));
EXFUN (Fmake_temp_name, 1);
extern void init_fileio_once P_ ((void));
extern Lisp_Object make_temp_name P_ ((Lisp_Object, int));
EXFUN (Fmake_symbolic_link, 3);
@ -3176,7 +3173,6 @@ extern void sys_subshell P_ ((void));
extern void sys_suspend P_ ((void));
extern void discard_tty_input P_ ((void));
extern void init_sys_modes P_ ((void));
extern void reset_sys_modes P_ ((void));
extern void get_frame_size P_ ((int *, int *));
extern void wait_for_termination P_ ((int));
extern void flush_pending_output P_ ((int));
@ -3231,8 +3227,10 @@ EXFUN (Fnew_fontset, 2);
/* Defined in xfaces.c */
extern void syms_of_xfaces P_ ((void));
#ifndef HAVE_GETLOADAVG
/* Defined in getloadavg.c */
extern int getloadavg P_ ((double *, int));
#endif
#ifdef HAVE_X_WINDOWS
/* Defined in xfns.c */
@ -3253,9 +3251,6 @@ extern void syms_of_xselect P_ ((void));
/* Defined in xterm.c */
extern void syms_of_xterm P_ ((void));
/* Defined in getloadavg.c */
extern int getloadavg P_ ((double [], int));
#ifdef MSDOS
/* Defined in msdos.c */
EXFUN (Fmsdos_downcase_filename, 1);

View File

@ -4829,6 +4829,9 @@ sys_select (n, rfds, wfds, efds, timeout)
return 0;
}
#if USE_CG_DRAWING
mac_prepare_for_quickdraw (NULL);
#endif
/* Avoid initial overhead of RunLoop setup for the case that
some input is already available. */
EMACS_SET_SECS_USECS (select_timeout, 0, 0);

View File

@ -3591,6 +3591,7 @@ x_create_tip_frame (dpyinfo, parms, text)
check_mac ();
parms = Fcopy_alist (parms);
#ifdef MULTI_KBOARD
kb = dpyinfo->kboard;

View File

@ -79,6 +79,18 @@ typedef unsigned long Time;
#include <Gestalt.h>
#endif /* not HAVE_CARBON */
#ifndef USE_CG_TEXT_DRAWING
#if USE_ATSUI && MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
#define USE_CG_TEXT_DRAWING 1
#endif
#endif
#ifndef USE_CG_DRAWING
#if USE_ATSUI && defined (MAC_OSX)
#define USE_CG_DRAWING 1
#endif
#endif
typedef WindowPtr Window;
typedef GWorldPtr Pixmap;
@ -92,12 +104,6 @@ typedef GWorldPtr Pixmap;
#endif
#ifndef USE_CG_TEXT_DRAWING
#if USE_ATSUI && MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
#define USE_CG_TEXT_DRAWING 1
#endif
#endif
/* Emulate XCharStruct. */
typedef struct _XCharStruct
{

View File

@ -270,6 +270,72 @@ extern void menubar_selection_callback (FRAME_PTR, int);
#define GC_BACK_COLOR(gc) (&(gc)->back_color)
#define GC_FONT(gc) ((gc)->xgcv.font)
#define FRAME_NORMAL_GC(f) ((f)->output_data.mac->normal_gc)
#define CG_SET_FILL_COLOR(context, color) \
CGContextSetRGBFillColor (context, \
RED_FROM_ULONG (color) / 255.0f, \
GREEN_FROM_ULONG (color) / 255.0f, \
BLUE_FROM_ULONG (color) / 255.0f, 1.0f)
#define CG_SET_STROKE_COLOR(context, color) \
CGContextSetRGBStrokeColor (context, \
RED_FROM_ULONG (color) / 255.0f, \
GREEN_FROM_ULONG (color) / 255.0f, \
BLUE_FROM_ULONG (color) / 255.0f, 1.0f)
#if USE_CG_DRAWING
#define FRAME_CG_CONTEXT(f) ((f)->output_data.mac->cg_context)
static CGContextRef
mac_begin_cg_clip (f, gc)
struct frame *f;
GC gc;
{
CGContextRef context = FRAME_CG_CONTEXT (f);
if (!context)
{
QDBeginCGContext (GetWindowPort (FRAME_MAC_WINDOW (f)), &context);
FRAME_CG_CONTEXT (f) = context;
}
CGContextSaveGState (context);
CGContextTranslateCTM (context, 0, FRAME_PIXEL_HEIGHT (f));
CGContextScaleCTM (context, 1, -1);
if (gc && gc->n_clip_rects)
CGContextClipToRects (context, gc->clip_rects, gc->n_clip_rects);
return context;
}
static void
mac_end_cg_clip (f)
struct frame *f;
{
CGContextRestoreGState (FRAME_CG_CONTEXT (f));
}
void
mac_prepare_for_quickdraw (f)
struct frame *f;
{
if (f == NULL)
{
Lisp_Object rest, frame;
FOR_EACH_FRAME (rest, frame)
if (FRAME_MAC_P (XFRAME (frame)))
mac_prepare_for_quickdraw (XFRAME (frame));
}
else
{
CGContextRef context = FRAME_CG_CONTEXT (f);
if (context)
{
CGContextSynchronize (context);
QDEndCGContext (GetWindowPort (FRAME_MAC_WINDOW (f)),
&FRAME_CG_CONTEXT (f));
}
}
}
#endif
static RgnHandle saved_port_clip_region = NULL;
@ -320,6 +386,18 @@ mac_draw_line (f, gc, x1, y1, x2, y2)
GC gc;
int x1, y1, x2, y2;
{
#if USE_CG_DRAWING
CGContextRef context;
context = mac_begin_cg_clip (f, gc);
CG_SET_STROKE_COLOR (context, gc->xgcv.foreground);
CGContextBeginPath (context);
CGContextMoveToPoint (context, x1 + 0.5f, y1 + 0.5f);
CGContextAddLineToPoint (context, x2 + 0.5f, y2 + 0.5f);
CGContextClosePath (context);
CGContextStrokePath (context);
mac_end_cg_clip (f);
#else
SetPortWindowPort (FRAME_MAC_WINDOW (f));
RGBForeColor (GC_FORE_COLOR (gc));
@ -328,6 +406,7 @@ mac_draw_line (f, gc, x1, y1, x2, y2)
MoveTo (x1, y1);
LineTo (x2, y2);
mac_end_clip (gc);
#endif
}
void
@ -361,6 +440,14 @@ mac_erase_rectangle (f, gc, x, y, width, height)
int x, y;
unsigned int width, height;
{
#if USE_CG_DRAWING
CGContextRef context;
context = mac_begin_cg_clip (f, gc);
CG_SET_FILL_COLOR (context, gc->xgcv.background);
CGContextFillRect (context, CGRectMake (x, y, width, height));
mac_end_cg_clip (f);
#else
Rect r;
SetPortWindowPort (FRAME_MAC_WINDOW (f));
@ -373,6 +460,7 @@ mac_erase_rectangle (f, gc, x, y, width, height)
mac_end_clip (gc);
RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
#endif
}
@ -393,6 +481,16 @@ static void
mac_clear_window (f)
struct frame *f;
{
#if USE_CG_DRAWING
CGContextRef context;
GC gc = FRAME_NORMAL_GC (f);
context = mac_begin_cg_clip (f, NULL);
CG_SET_FILL_COLOR (context, gc->xgcv.background);
CGContextFillRect (context, CGRectMake (0, 0, FRAME_PIXEL_WIDTH (f),
FRAME_PIXEL_HEIGHT (f)));
mac_end_cg_clip (f);
#else
SetPortWindowPort (FRAME_MAC_WINDOW (f));
RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
@ -407,6 +505,7 @@ mac_clear_window (f)
#else /* not TARGET_API_MAC_CARBON */
EraseRect (&(FRAME_MAC_WINDOW (f)->portRect));
#endif /* not TARGET_API_MAC_CARBON */
#endif
}
@ -427,6 +526,9 @@ mac_draw_bitmap (f, gc, x, y, width, height, bits, overlay_p)
bitmap.baseAddr = (char *)bits;
SetRect (&(bitmap.bounds), 0, 0, width, height);
#if USE_CG_DRAWING
mac_prepare_for_quickdraw (f);
#endif
SetPortWindowPort (FRAME_MAC_WINDOW (f));
RGBForeColor (GC_FORE_COLOR (gc));
@ -573,6 +675,14 @@ mac_fill_rectangle (f, gc, x, y, width, height)
int x, y;
unsigned int width, height;
{
#if USE_CG_DRAWING
CGContextRef context;
context = mac_begin_cg_clip (f, gc);
CG_SET_FILL_COLOR (context, gc->xgcv.foreground);
CGContextFillRect (context, CGRectMake (x, y, width, height));
mac_end_cg_clip (f);
#else
Rect r;
SetPortWindowPort (FRAME_MAC_WINDOW (f));
@ -583,6 +693,7 @@ mac_fill_rectangle (f, gc, x, y, width, height)
mac_begin_clip (gc);
PaintRect (&r); /* using foreground color of gc */
mac_end_clip (gc);
#endif
}
@ -595,6 +706,15 @@ mac_draw_rectangle (f, gc, x, y, width, height)
int x, y;
unsigned int width, height;
{
#if USE_CG_DRAWING
CGContextRef context;
context = mac_begin_cg_clip (f, gc);
CG_SET_STROKE_COLOR (context, gc->xgcv.foreground);
CGContextStrokeRect (context,
CGRectMake (x + 0.5f, y + 0.5f, width, height));
mac_end_cg_clip (f);
#else
Rect r;
SetPortWindowPort (FRAME_MAC_WINDOW (f));
@ -605,6 +725,7 @@ mac_draw_rectangle (f, gc, x, y, width, height)
mac_begin_clip (gc);
FrameRect (&r); /* using foreground color of gc */
mac_end_clip (gc);
#endif
}
@ -674,6 +795,9 @@ mac_invert_rectangle (f, x, y, width, height)
{
Rect r;
#if USE_CG_DRAWING
mac_prepare_for_quickdraw (f);
#endif
SetPortWindowPort (FRAME_MAC_WINDOW (f));
SetRect (&r, x, y, x + width, y + height);
@ -718,6 +842,9 @@ mac_draw_string_common (f, gc, x, y, buf, nchars, bg_width, bytes_per_char)
#ifdef MAC_OSX
if (!mac_use_core_graphics)
{
#endif
#if USE_CG_DRAWING
mac_prepare_for_quickdraw (f);
#endif
mac_begin_clip (gc);
RGBForeColor (GC_FORE_COLOR (gc));
@ -747,6 +874,9 @@ mac_draw_string_common (f, gc, x, y, buf, nchars, bg_width, bytes_per_char)
ByteCount sizes[] = {sizeof (CGContextRef)};
ATSUAttributeValuePtr values[] = {&context};
#if USE_CG_DRAWING
context = mac_begin_cg_clip (f, gc);
#else
GetPort (&port);
QDBeginCGContext (port, &context);
if (gc->n_clip_rects || bg_width)
@ -756,14 +886,10 @@ mac_draw_string_common (f, gc, x, y, buf, nchars, bg_width, bytes_per_char)
if (gc->n_clip_rects)
CGContextClipToRects (context, gc->clip_rects,
gc->n_clip_rects);
#endif
if (bg_width)
{
CGContextSetRGBFillColor
(context,
RED_FROM_ULONG (gc->xgcv.background) / 255.0f,
GREEN_FROM_ULONG (gc->xgcv.background) / 255.0f,
BLUE_FROM_ULONG (gc->xgcv.background) / 255.0f,
1.0);
CG_SET_FILL_COLOR (context, gc->xgcv.background);
CGContextFillRect
(context,
CGRectMake (x, y - FONT_BASE (GC_FONT (gc)),
@ -771,13 +897,10 @@ mac_draw_string_common (f, gc, x, y, buf, nchars, bg_width, bytes_per_char)
}
CGContextScaleCTM (context, 1, -1);
CGContextTranslateCTM (context, 0, -port_height);
#if !USE_CG_DRAWING
}
CGContextSetRGBFillColor
(context,
RED_FROM_ULONG (gc->xgcv.foreground) / 255.0f,
GREEN_FROM_ULONG (gc->xgcv.foreground) / 255.0f,
BLUE_FROM_ULONG (gc->xgcv.foreground) / 255.0f,
1.0);
#endif
CG_SET_FILL_COLOR (context, gc->xgcv.foreground);
err = ATSUSetLayoutControls (text_layout,
sizeof (tags) / sizeof (tags[0]),
tags, sizes, values);
@ -785,8 +908,13 @@ mac_draw_string_common (f, gc, x, y, buf, nchars, bg_width, bytes_per_char)
ATSUDrawText (text_layout,
kATSUFromTextBeginning, kATSUToTextEnd,
Long2Fix (x), Long2Fix (port_height - y));
#if USE_CG_DRAWING
mac_end_cg_clip (f);
context = NULL;
#else
CGContextSynchronize (context);
QDEndCGContext (port, &context);
#endif
#if 0
/* This doesn't work on Mac OS X 10.1. */
ATSUClearLayoutControls (text_layout,
@ -807,6 +935,9 @@ mac_draw_string_common (f, gc, x, y, buf, nchars, bg_width, bytes_per_char)
if (mac_use_core_graphics)
savedFlags = SwapQDTextFlags (kQDUseCGTextRendering);
#endif
#if USE_CG_DRAWING
mac_prepare_for_quickdraw (f);
#endif
mac_begin_clip (gc);
RGBForeColor (GC_FORE_COLOR (gc));
@ -1115,6 +1246,9 @@ mac_draw_image_string_cg (f, gc, x, y, buf, nchars, bg_width)
buf++;
}
#if USE_CG_DRAWING
context = mac_begin_cg_clip (f, gc);
#else
QDBeginCGContext (port, &context);
if (gc->n_clip_rects || bg_width)
{
@ -1122,14 +1256,10 @@ mac_draw_image_string_cg (f, gc, x, y, buf, nchars, bg_width)
CGContextScaleCTM (context, 1, -1);
if (gc->n_clip_rects)
CGContextClipToRects (context, gc->clip_rects, gc->n_clip_rects);
#endif
if (bg_width)
{
CGContextSetRGBFillColor
(context,
RED_FROM_ULONG (gc->xgcv.background) / 255.0f,
GREEN_FROM_ULONG (gc->xgcv.background) / 255.0f,
BLUE_FROM_ULONG (gc->xgcv.background) / 255.0f,
1.0);
CG_SET_FILL_COLOR (context, gc->xgcv.background);
CGContextFillRect
(context,
CGRectMake (gx, y - FONT_BASE (GC_FONT (gc)),
@ -1137,12 +1267,10 @@ mac_draw_image_string_cg (f, gc, x, y, buf, nchars, bg_width)
}
CGContextScaleCTM (context, 1, -1);
CGContextTranslateCTM (context, 0, -port_height);
#if !USE_CG_DRAWING
}
CGContextSetRGBFillColor (context,
RED_FROM_ULONG (gc->xgcv.foreground) / 255.0f,
GREEN_FROM_ULONG (gc->xgcv.foreground) / 255.0f,
BLUE_FROM_ULONG (gc->xgcv.foreground) / 255.0f,
1.0);
#endif
CG_SET_FILL_COLOR (context, gc->xgcv.foreground);
CGContextSetFont (context, GC_FONT (gc)->cg_font);
CGContextSetFontSize (context, GC_FONT (gc)->mac_fontsize);
if (GC_FONT (gc)->mac_fontsize <= cg_text_anti_aliasing_threshold)
@ -1157,8 +1285,12 @@ mac_draw_image_string_cg (f, gc, x, y, buf, nchars, bg_width)
gx += advances[i].width;
}
#endif
#if USE_CG_DRAWING
mac_end_cg_clip (f);
#else
CGContextSynchronize (context);
QDEndCGContext (port, &context);
#endif
return 1;
}
@ -1178,6 +1310,9 @@ mac_copy_area (src, f, gc, src_x, src_y, width, height, dest_x, dest_y)
{
Rect src_r, dest_r;
#if USE_CG_DRAWING
mac_prepare_for_quickdraw (f);
#endif
SetPortWindowPort (FRAME_MAC_WINDOW (f));
SetRect (&src_r, src_x, src_y, src_x + width, src_y + height);
@ -1222,6 +1357,9 @@ mac_copy_area_with_mask (src, mask, f, gc, src_x, src_y,
{
Rect src_r, dest_r;
#if USE_CG_DRAWING
mac_prepare_for_quickdraw (f);
#endif
SetPortWindowPort (FRAME_MAC_WINDOW (f));
SetRect (&src_r, src_x, src_y, src_x + width, src_y + height);
@ -1271,6 +1409,9 @@ mac_scroll_area (f, gc, src_x, src_y, width, height, dest_x, dest_y)
RgnHandle dummy = NewRgn (); /* For avoiding update events. */
SetRect (&src_r, src_x, src_y, src_x + width, src_y + height);
#if USE_CG_DRAWING
mac_prepare_for_quickdraw (f);
#endif
ScrollWindowRect (FRAME_MAC_WINDOW (f),
&src_r, dest_x - src_x, dest_y - src_y,
kScrollWindowNoOptions, dummy);
@ -1529,6 +1670,9 @@ x_flush (f)
{
#if TARGET_API_MAC_CARBON
BLOCK_INPUT;
#if USE_CG_DRAWING
mac_prepare_for_quickdraw (f);
#endif
if (f)
QDFlushPortBuffer (GetWindowPort (FRAME_MAC_WINDOW (f)), NULL);
else
@ -4595,6 +4739,9 @@ x_scroll_bar_create (w, top, left, width, height, disp_top, disp_height)
r.right = left + width;
r.bottom = disp_top + disp_height;
#if USE_CG_DRAWING
mac_prepare_for_quickdraw (f);
#endif
#if TARGET_API_MAC_CARBON
ch = NewControl (FRAME_MAC_WINDOW (f), &r, "\p",
#if USE_TOOLKIT_SCROLL_BARS
@ -4721,6 +4868,9 @@ x_scroll_bar_remove (bar)
BLOCK_INPUT;
#if USE_CG_DRAWING
mac_prepare_for_quickdraw (f);
#endif
/* Destroy the Mac scroll bar control */
DisposeControl (SCROLL_BAR_CONTROL_HANDLE (bar));
@ -4817,6 +4967,9 @@ XTset_vertical_scroll_bar (w, portion, whole, position)
for them on the frame, we have to clear "under" them. */
mac_clear_area (f, left, top, width, height);
#if USE_CG_DRAWING
mac_prepare_for_quickdraw (f);
#endif
HideControl (ch);
MoveControl (ch, sb_left + VERTICAL_SCROLL_BAR_WIDTH_TRIM, disp_top);
SizeControl (ch, sb_width - VERTICAL_SCROLL_BAR_WIDTH_TRIM * 2,
@ -5261,7 +5414,7 @@ x_draw_hollow_cursor (w, row)
/* Set clipping, draw the rectangle, and reset clipping again. */
x_clip_to_row (w, row, TEXT_AREA, gc);
mac_draw_rectangle (f, gc, x, y, wd, h);
mac_draw_rectangle (f, gc, x, y, wd, h - 1);
mac_reset_clip_rectangles (dpy, gc);
}
@ -5805,8 +5958,13 @@ x_set_window_size (f, change_gravity, cols, rows)
SizeWindow (FRAME_MAC_WINDOW (f), pixelwidth, pixelheight, 0);
#if TARGET_API_MAC_CARBON
if (f->output_data.mac->hourglass_control)
MoveControl (f->output_data.mac->hourglass_control,
pixelwidth - HOURGLASS_WIDTH, 0);
{
#if USE_CG_DRAWING
mac_prepare_for_quickdraw (f);
#endif
MoveControl (f->output_data.mac->hourglass_control,
pixelwidth - HOURGLASS_WIDTH, 0);
}
#endif
/* Now, strictly speaking, we can't be sure that this is accurate,
@ -9693,7 +9851,11 @@ XTread_socket (sd, expected, hold_quit)
#if USE_CARBON_EVENTS
toolbox_dispatcher = GetEventDispatcherTarget ();
while (!ReceiveNextEvent (0, NULL, kEventDurationNoWait,
while (
#if USE_CG_DRAWING
mac_prepare_for_quickdraw (NULL),
#endif
!ReceiveNextEvent (0, NULL, kEventDurationNoWait,
kEventRemoveFromQueue, &eventRef))
#else /* !USE_CARBON_EVENTS */
while (mac_wait_next_event (&er, 0, true))

View File

@ -334,6 +334,11 @@ struct mac_output {
/* Hints for the size and the position of a window. */
XSizeHints *size_hints;
#if USE_CG_DRAWING
/* Quartz 2D graphics context. */
CGContextRef cg_context;
#endif
};
typedef struct mac_output mac_output;
@ -566,6 +571,9 @@ extern void mac_unload_font P_ ((struct mac_display_info *, XFontStruct *));
extern OSErr install_window_handler P_ ((WindowPtr));
extern void remove_window_handler P_ ((WindowPtr));
extern Lisp_Object mac_make_lispy_event_code P_ ((int));
#if USE_CG_DRAWING
extern void mac_prepare_for_quickdraw P_ ((struct frame *));
#endif
#define FONT_TYPE_FOR_UNIBYTE(font, ch) 0
#define FONT_TYPE_FOR_MULTIBYTE(font, ch) 0

View File

@ -112,91 +112,5 @@ extern char etext;
#endif /* not _LIBC */
/* start of data space; can be changed by calling malloc_init */
static POINTER data_space_start;
/* Number of bytes of writable memory we can expect to be able to get */
static unsigned long lim_data;
#ifdef NO_LIM_DATA
static void
get_lim_data ()
{
lim_data = -1;
}
#else /* not NO_LIM_DATA */
#ifdef USG
static void
get_lim_data ()
{
extern long ulimit ();
lim_data = -1;
/* Use the ulimit call, if we seem to have it. */
#if !defined (ULIMIT_BREAK_VALUE) || defined (GNU_LINUX)
lim_data = ulimit (3, 0);
#endif
/* If that didn't work, just use the macro's value. */
#ifdef ULIMIT_BREAK_VALUE
if (lim_data == -1)
lim_data = ULIMIT_BREAK_VALUE;
#endif
lim_data -= (long) data_space_start;
}
#else /* not USG */
#ifdef WINDOWSNT
static void
get_lim_data ()
{
extern unsigned long reserved_heap_size;
lim_data = reserved_heap_size;
}
#else
#if !defined (BSD4_2) && !defined (__osf__)
#ifdef MSDOS
void
get_lim_data ()
{
_go32_dpmi_meminfo info;
_go32_dpmi_get_free_memory_information (&info);
lim_data = info.available_memory;
}
#else /* not MSDOS */
static void
get_lim_data ()
{
lim_data = vlimit (LIM_DATA, -1);
}
#endif /* not MSDOS */
#else /* BSD4_2 */
static void
get_lim_data ()
{
struct rlimit XXrlimit;
getrlimit (RLIMIT_DATA, &XXrlimit);
#ifdef RLIM_INFINITY
lim_data = XXrlimit.rlim_cur & RLIM_INFINITY; /* soft limit */
#else
lim_data = XXrlimit.rlim_cur; /* soft limit */
#endif
}
#endif /* BSD4_2 */
#endif /* not WINDOWSNT */
#endif /* not USG */
#endif /* not NO_LIM_DATA */
/* arch-tag: fe39244e-e54f-4208-b7aa-02556f7841c5
(do not change this comment) */

View File

@ -6979,7 +6979,7 @@ On some systems, when Emacs reads the output from a subprocess, the output data
is read in very small blocks, potentially resulting in very poor performance.
This behavior can be remedied to some extent by setting this variable to a
non-nil value, as it will automatically delay reading from such processes, to
allowing them to produce more output before Emacs tries to read it.
allow them to produce more output before Emacs tries to read it.
If the value is t, the delay is reset after each write to the process; any other
non-nil value means that the delay is not reset on write.
The variable takes effect when `start-process' is called. */);

View File

@ -44,13 +44,102 @@ typedef void *POINTER;
2 -- 85% warning already issued.
3 -- 95% warning issued; keep warning frequently.
*/
static int warnlevel;
enum warnlevel { not_warned, warned_75, warned_85, warned_95 };
static enum warnlevel warnlevel;
/* Function to call to issue a warning;
0 means don't issue them. */
static void (*warn_function) ();
/* Get more memory space, complaining if we're near the end. */
/* Start of data space; can be changed by calling malloc_init. */
static POINTER data_space_start;
/* Number of bytes of writable memory we can expect to be able to get. */
static unsigned long lim_data;
#ifdef NO_LIM_DATA
static void
get_lim_data ()
{
lim_data = -1;
}
#else /* not NO_LIM_DATA */
#ifdef USG
static void
get_lim_data ()
{
extern long ulimit ();
lim_data = -1;
/* Use the ulimit call, if we seem to have it. */
#if !defined (ULIMIT_BREAK_VALUE) || defined (GNU_LINUX)
lim_data = ulimit (3, 0);
#endif
/* If that didn't work, just use the macro's value. */
#ifdef ULIMIT_BREAK_VALUE
if (lim_data == -1)
lim_data = ULIMIT_BREAK_VALUE;
#endif
lim_data -= (long) data_space_start;
}
#else /* not USG */
#ifdef WINDOWSNT
static void
get_lim_data ()
{
extern unsigned long reserved_heap_size;
lim_data = reserved_heap_size;
}
#else
#if !defined (BSD4_2) && !defined (__osf__)
#ifdef MSDOS
void
get_lim_data ()
{
_go32_dpmi_meminfo info;
_go32_dpmi_get_free_memory_information (&info);
lim_data = info.available_memory;
}
#else /* not MSDOS */
static void
get_lim_data ()
{
lim_data = vlimit (LIM_DATA, -1);
}
#endif /* not MSDOS */
#else /* BSD4_2 */
static void
get_lim_data ()
{
struct rlimit XXrlimit;
getrlimit (RLIMIT_DATA, &XXrlimit);
#ifdef RLIM_INFINITY
lim_data = XXrlimit.rlim_cur & RLIM_INFINITY; /* soft limit */
#else
lim_data = XXrlimit.rlim_cur; /* soft limit */
#endif
}
#endif /* BSD4_2 */
#endif /* not WINDOWSNT */
#endif /* not USG */
#endif /* not NO_LIM_DATA */
/* Verify amount of memory available, complaining if we're near the end. */
static void
check_memory_limits ()
@ -64,14 +153,19 @@ check_memory_limits ()
register POINTER cp;
unsigned long five_percent;
unsigned long data_size;
enum warnlevel new_warnlevel;
#ifdef HAVE_GETRLIMIT
struct rlimit {
rlim_t rlim_cur;
rlim_t rlim_max;
} rlimit;
struct rlimit rlimit;
getrlimit (RLIMIT_DATA, &rlimit);
getrlimit (RLIMIT_AS, &rlimit);
if (RLIM_INFINITY == rlimit.rlim_max)
return;
/* This is a nonsensical case, but it happens -- rms. */
if (rlimit.rlim_cur > rlimit.rlim_max)
return;
five_percent = rlimit.rlim_max / 20;
data_size = rlimit.rlim_cur;
@ -93,57 +187,61 @@ check_memory_limits ()
#endif /* not HAVE_GETRLIMIT */
if (warn_function)
switch (warnlevel)
{
case 0:
if (data_size > five_percent * 15)
{
warnlevel++;
(*warn_function) ("Warning: past 75% of memory limit");
}
break;
if (!warn_function)
return;
case 1:
if (data_size > five_percent * 17)
{
warnlevel++;
(*warn_function) ("Warning: past 85% of memory limit");
}
break;
/* What level of warning does current memory usage demand? */
if (data_size > five_percent * 19)
new_warnlevel = warned_95;
else if (data_size > five_percent * 17)
new_warnlevel = warned_85;
else if (data_size > five_percent * 15)
new_warnlevel = warned_75;
else
new_warnlevel = not_warned;
case 2:
if (data_size > five_percent * 19)
{
warnlevel++;
(*warn_function) ("Warning: past 95% of memory limit");
}
break;
/* If we have gone up a level, give the appropriate warning. */
if (new_warnlevel > warnlevel || new_warnlevel == warned_95)
{
warnlevel = new_warnlevel;
switch (warnlevel)
{
case warned_75:
(*warn_function) ("Warning: past 75% of memory limit");
break;
default:
(*warn_function) ("Warning: past acceptable memory limits");
break;
}
case warned_85:
(*warn_function) ("Warning: past 85% of memory limit");
break;
/* If we go down below 70% full, issue another 75% warning
when we go up again. */
if (data_size < five_percent * 14)
warnlevel = 0;
/* If we go down below 80% full, issue another 85% warning
when we go up again. */
else if (warnlevel > 1 && data_size < five_percent * 16)
warnlevel = 1;
/* If we go down below 90% full, issue another 95% warning
when we go up again. */
else if (warnlevel > 2 && data_size < five_percent * 18)
warnlevel = 2;
case warned_95:
(*warn_function) ("Warning: past 95% of memory limit");
}
}
/* Handle going down in usage levels, with some hysteresis. */
else
{
/* If we go down below 70% full, issue another 75% warning
when we go up again. */
if (data_size < five_percent * 14)
warnlevel = not_warned;
/* If we go down below 80% full, issue another 85% warning
when we go up again. */
else if (warnlevel > warned_75 && data_size < five_percent * 16)
warnlevel = warned_75;
/* If we go down below 90% full, issue another 95% warning
when we go up again. */
else if (warnlevel > warned_85 && data_size < five_percent * 18)
warnlevel = warned_85;
}
if (EXCEEDS_LISP_PTR (cp))
(*warn_function) ("Warning: memory in use exceeds lisp pointer size");
}
/* Cause reinitialization based on job parameters;
also declare where the end of pure storage is. */
/* Enable memory usage warnings.
START says where the end of pure storage is.
WARNFUN specifies the function to call to issue a warning. */
void
memory_warnings (start, warnfun)
@ -160,10 +258,8 @@ memory_warnings (start, warnfun)
warn_function = warnfun;
__after_morecore_hook = check_memory_limits;
#ifdef WINDOWSNT
/* Force data limit to be recalculated on each run. */
lim_data = 0;
#endif
}
/* arch-tag: eab04eda-1f69-447a-8d9f-95f0a3983ca5

View File

@ -2695,6 +2695,24 @@ w32_msg_worker (dw)
return 0;
}
static void
signal_user_input ()
{
/* Interrupt any lisp that wants to be interrupted by input. */
if (!NILP (Vthrow_on_input))
{
Vquit_flag = Vthrow_on_input;
/* If we're inside a function that wants immediate quits,
do it now. */
if (immediate_quit && NILP (Vinhibit_quit))
{
immediate_quit = 0;
QUIT;
}
}
}
static void
post_character_message (hwnd, msg, wParam, lParam, modifiers)
HWND hwnd;
@ -2752,6 +2770,8 @@ post_character_message (hwnd, msg, wParam, lParam, modifiers)
to receive C-g to interrupt the lisp thread. */
cancel_all_deferred_msgs ();
}
else
signal_user_input ();
}
my_post_msg (&wmsg, hwnd, msg, wParam, lParam);
@ -3251,6 +3271,11 @@ w32_wnd_proc (hwnd, msg, wParam, lParam)
BOOL up;
int button;
/* Ignore middle and extra buttons as long as the menu is active. */
f = x_window_to_frame (dpyinfo, hwnd);
if (f && f->output_data.w32->menubar_active)
return 0;
if (parse_button (msg, HIWORD (wParam), &button, &up))
{
if (up) ReleaseCapture ();
@ -3266,6 +3291,7 @@ w32_wnd_proc (hwnd, msg, wParam, lParam)
wmsg.dwModifiers = w32_get_modifiers ();
my_post_msg (&wmsg, hwnd, msg, wParam, lParam);
signal_user_input ();
/* Need to return true for XBUTTON messages, false for others,
to indicate that we processed the message. */
@ -3320,11 +3346,13 @@ w32_wnd_proc (hwnd, msg, wParam, lParam)
case WM_MOUSEWHEEL:
wmsg.dwModifiers = w32_get_modifiers ();
my_post_msg (&wmsg, hwnd, msg, wParam, lParam);
signal_user_input ();
return 0;
case WM_DROPFILES:
wmsg.dwModifiers = w32_get_modifiers ();
my_post_msg (&wmsg, hwnd, msg, wParam, lParam);
signal_user_input ();
return 0;
case WM_TIMER:
@ -3334,6 +3362,7 @@ w32_wnd_proc (hwnd, msg, wParam, lParam)
if (saved_mouse_button_msg.msg.hwnd)
{
post_msg (&saved_mouse_button_msg);
signal_user_input ();
saved_mouse_button_msg.msg.hwnd = 0;
}
KillTimer (hwnd, mouse_button_timer);
@ -3836,6 +3865,7 @@ w32_wnd_proc (hwnd, msg, wParam, lParam)
{
wmsg.dwModifiers = w32_get_modifiers ();
my_post_msg (&wmsg, hwnd, msg, wParam, lParam);
signal_user_input ();
return 0;
}
@ -4340,17 +4370,6 @@ This function is an internal primitive--use `make-frame' instead. */)
x_wm_set_size_hint (f, window_prompting, 0);
UNBLOCK_INPUT;
/* Avoid a bug that causes the new frame to never become visible if
an echo area message is displayed during the following call1. */
specbind(Qredisplay_dont_pause, Qt);
/* Set up faces after all frame parameters are known. This call
also merges in face attributes specified for new frames. If we
don't do this, the `menu' face for instance won't have the right
colors, and the menu bar won't appear in the specified colors for
new frames. */
call1 (Qface_set_after_frame_default, frame);
/* Make the window appear on the frame and enable display, unless
the caller says not to. However, with explicit parent, Emacs
cannot control visibility, so don't try. */

View File

@ -819,8 +819,10 @@ cached information about equivalent key sequences. */)
}
#ifdef HAVE_MENUS
/* If resources from a previous popup menu exist yet, does nothing
until the `menu_free_timer' has freed them (see w32fns.c).
/* If resources from a previous popup menu still exist, does nothing
until the `menu_free_timer' has freed them (see w32fns.c). This
can occur if you press ESC or click outside a menu without selecting
a menu item.
*/
if (current_popup_menu)
{
@ -837,6 +839,8 @@ cached information about equivalent key sequences. */)
UNBLOCK_INPUT;
discard_menu_items ();
w32_free_menu_strings (FRAME_W32_WINDOW (f));
#endif /* HAVE_MENUS */
UNGCPRO;

View File

@ -210,6 +210,7 @@ int last_scroll_bar_drag_pos;
/* Where the mouse was last time we reported a mouse event. */
static RECT last_mouse_glyph;
static FRAME_PTR last_mouse_glyph_frame;
static Lisp_Object last_mouse_press_frame;
int w32_num_mouse_buttons;
@ -3372,11 +3373,13 @@ note_mouse_movement (frame, msg)
frame->mouse_moved = 1;
last_mouse_scroll_bar = Qnil;
note_mouse_highlight (frame, -1, -1);
last_mouse_glyph_frame = 0;
return 1;
}
/* Has the mouse moved off the glyph it was on at the last sighting? */
if (mouse_x < last_mouse_glyph.left
if (frame != last_mouse_glyph_frame
|| mouse_x < last_mouse_glyph.left
|| mouse_x >= last_mouse_glyph.right
|| mouse_y < last_mouse_glyph.top
|| mouse_y >= last_mouse_glyph.bottom)
@ -3389,6 +3392,7 @@ note_mouse_movement (frame, msg)
to keep track of the mouse for help_echo and highlighting at
other times. */
remember_mouse_glyph (frame, mouse_x, mouse_y, &last_mouse_glyph);
last_mouse_glyph_frame = frame;
return 1;
}
@ -3512,19 +3516,9 @@ w32_mouse_position (fp, insist, bar_window, part, x, y, time)
on it, i.e. into the same rectangles that matrices on
the frame are divided into. */
#if OLD_REDISPLAY_CODE
int ignore1, ignore2;
ScreenToClient (FRAME_W32_WINDOW (f1), &pt);
pixel_to_glyph_coords (f1, pt.x, pt.y, &ignore1, &ignore2,
&last_mouse_glyph,
FRAME_W32_DISPLAY_INFO (f1)->grabbed
|| insist);
#else
ScreenToClient (FRAME_W32_WINDOW (f1), &pt);
remember_mouse_glyph (f1, pt.x, pt.y, &last_mouse_glyph);
#endif
last_mouse_glyph_frame = f1;
*bar_window = Qnil;
*part = 0;
@ -5387,6 +5381,8 @@ x_error_catcher (display, error)
x_catch_errors (dpy)
x_catch_errors_unwind (old_val)
x_check_errors (dpy, format)
x_fully_uncatch_errors ()
x_catching_errors ()
x_had_errors_p (dpy)
x_clear_errors (dpy)
x_uncatch_errors (dpy, count)

View File

@ -217,7 +217,7 @@ int window_deletion_count;
/* Used by the function window_scroll_pixel_based */
static int preserve_y;
static int window_scroll_pixel_based_preserve_y;
#if 0 /* This isn't used anywhere. */
/* Nonzero means we can split a frame even if it is "unsplittable". */
@ -4795,17 +4795,17 @@ window_scroll_pixel_based (window, n, whole, noerror)
calls to scroll-up or scroll-down. This avoids the
possibility of point becoming "stuck" on a tall line when
scrolling by one line. */
if (preserve_y < 0
if (window_scroll_pixel_based_preserve_y < 0
|| (current_kboard->Vlast_command != Qscroll_up
&& current_kboard->Vlast_command != Qscroll_down))
{
start_display (&it, w, start);
move_it_to (&it, PT, -1, -1, -1, MOVE_TO_POS);
preserve_y = it.current_y;
window_scroll_pixel_based_preserve_y = it.current_y;
}
}
else
preserve_y = -1;
window_scroll_pixel_based_preserve_y = -1;
/* Move iterator it from start the specified distance forward or
backward. The result is the new window start. */
@ -4935,12 +4935,13 @@ window_scroll_pixel_based (window, n, whole, noerror)
|| EQ (Vscroll_preserve_screen_position, Qt)))
/* We found PT at a legitimate height. Leave it alone. */
;
else if (preserve_y >= 0)
else if (window_scroll_pixel_based_preserve_y >= 0)
{
/* If we have a header line, take account of it.
This is necessary because we set it.current_y to 0, above. */
move_it_to (&it, -1, -1,
preserve_y - (WINDOW_WANTS_HEADER_LINE_P (w) ? 1 : 0 ),
window_scroll_pixel_based_preserve_y
- (WINDOW_WANTS_HEADER_LINE_P (w) ? 1 : 0 ),
-1, MOVE_TO_Y);
SET_PT_BOTH (IT_CHARPOS (it), IT_BYTEPOS (it));
}
@ -4961,7 +4962,8 @@ window_scroll_pixel_based (window, n, whole, noerror)
int charpos, bytepos;
int partial_p;
/* Save our position, for the preserve_y case. */
/* Save our position, for the
window_scroll_pixel_based_preserve_y case. */
charpos = IT_CHARPOS (it);
bytepos = IT_BYTEPOS (it);
@ -4991,14 +4993,15 @@ window_scroll_pixel_based (window, n, whole, noerror)
|| EQ (Vscroll_preserve_screen_position, Qt)))
/* We found PT before we found the display margin, so PT is ok. */
;
else if (preserve_y >= 0)
else if (window_scroll_pixel_based_preserve_y >= 0)
{
SET_TEXT_POS_FROM_MARKER (start, w->start);
start_display (&it, w, start);
/* It would be wrong to subtract CURRENT_HEADER_LINE_HEIGHT
here because we called start_display again and did not
alter it.current_y this time. */
move_it_to (&it, -1, -1, preserve_y, -1, MOVE_TO_Y);
move_it_to (&it, -1, -1, window_scroll_pixel_based_preserve_y, -1,
MOVE_TO_Y);
SET_PT_BOTH (IT_CHARPOS (it), IT_BYTEPOS (it));
}
else
@ -7025,7 +7028,7 @@ syms_of_window ()
minibuf_selected_window = Qnil;
staticpro (&minibuf_selected_window);
preserve_y = -1;
window_scroll_pixel_based_preserve_y = -1;
DEFVAR_LISP ("temp-buffer-show-function", &Vtemp_buffer_show_function,
doc: /* Non-nil means call as function to display a help buffer.

View File

@ -2032,7 +2032,7 @@ get_phys_cursor_geometry (w, row, glyph, heightp)
}
}
*heightp = h - 1;
*heightp = h;
return WINDOW_TO_FRAME_PIXEL_Y (w, y);
}

View File

@ -2801,12 +2801,15 @@ x_icon (f, parms)
if (! EQ (icon_x, Qunbound))
x_wm_set_icon_position (f, XINT (icon_x), XINT (icon_y));
#if 0 /* x_get_arg removes the visibility parameter as a side effect,
but x_create_frame still needs it. */
/* Start up iconic or window? */
x_wm_set_window_state
(f, (EQ (x_get_arg (dpyinfo, parms, Qvisibility, 0, 0, RES_TYPE_SYMBOL),
Qicon)
? IconicState
: NormalState));
#endif
x_text_icon (f, (char *) SDATA ((!NILP (f->icon_name)
? f->icon_name
@ -4621,6 +4624,7 @@ x_create_tip_frame (dpyinfo, parms, text)
check_x ();
parms = Fcopy_alist (parms);
#ifdef MULTI_KBOARD
kb = dpyinfo->kboard;

View File

@ -7234,7 +7234,7 @@ x_draw_hollow_cursor (w, row)
/* Set clipping, draw the rectangle, and reset clipping again. */
x_clip_to_row (w, row, TEXT_AREA, gc);
XDrawRectangle (dpy, FRAME_X_WINDOW (f), gc, x, y, wd, h);
XDrawRectangle (dpy, FRAME_X_WINDOW (f), gc, x, y, wd, h - 1);
XSetClipMask (dpy, gc, None);
}
@ -7646,6 +7646,23 @@ x_clear_errors (dpy)
x_error_message->string[0] = 0;
}
/* Close off all unclosed x_catch_errors calls. */
void
x_fully_uncatch_errors ()
{
while (x_error_message)
x_uncatch_errors ();
}
/* Nonzero if x_catch_errors has been done and not yet canceled. */
int
x_catching_errors ()
{
return x_error_message != 0;
}
#if 0
static unsigned int x_wire_count;
x_trace_wire ()