aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPo Lu2023-12-24 15:21:24 +0800
committerPo Lu2023-12-24 15:23:38 +0800
commitb7fc3ab787d8dd926e1912e51e99f0efcf57cb02 (patch)
treec514ada934aac8bf3f654b51749b37d4bc7429f4
parent5c3ff1494b69bf45b99125f2423174222badfa43 (diff)
downloademacs-b7fc3ab787d8dd926e1912e51e99f0efcf57cb02.tar.gz
emacs-b7fc3ab787d8dd926e1912e51e99f0efcf57cb02.zip
Introduce a toolbar for Log Edit mode
* etc/NEWS: Announce new change. * etc/images/README: List the sources of the new image files. * etc/images/commit.xpm: * etc/images/commit.pbm: * etc/images/gen-changelog.xpm: * etc/images/gen-changelog.pbm: * etc/images/ins-changelog.xpm: * etc/images/ins-changelog.pbm: * etc/images/load-changelog.xpm: * etc/images/load-changelog.pbm: * etc/images/view-diff.xpm: New files. * lisp/vc/log-edit.el (log-edit-menu): Insert a menu item for "Generate ChangeLog". (log-edit-tool-bar-map): New keymap. (log-edit-mode): Install this keymap as the tool bar map.
-rw-r--r--etc/NEWS5
-rw-r--r--etc/images/README11
-rw-r--r--etc/images/commit.pbmbin0 -> 81 bytes
-rw-r--r--etc/images/commit.xpm101
-rw-r--r--etc/images/gen-changelog.pbmbin0 -> 81 bytes
-rw-r--r--etc/images/gen-changelog.xpm152
-rw-r--r--etc/images/ins-changelog.pbm3
-rw-r--r--etc/images/ins-changelog.xpm67
-rw-r--r--etc/images/load-changelog.pbmbin0 -> 81 bytes
-rw-r--r--etc/images/load-changelog.xpm82
-rw-r--r--etc/images/view-diff.pbmbin0 -> 81 bytes
-rw-r--r--etc/images/view-diff.xpm93
-rw-r--r--lisp/vc/log-edit.el65
13 files changed, 575 insertions, 4 deletions
diff --git a/etc/NEWS b/etc/NEWS
index 6df17aa3f0a..f82564946b7 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -469,6 +469,11 @@ you can add this to your init script:
469** VC 469** VC
470 470
471--- 471---
472*** Log-Edit buffers now display a tool bar.
473This tool bar contains items for committing log entries and editing or
474generating log entries, among other editing operations.
475
476---
472*** New user option 'vc-git-shortlog-switches'. 477*** New user option 'vc-git-shortlog-switches'.
473This is a string or a list of strings that specifies the Git log 478This is a string or a list of strings that specifies the Git log
474switches for shortlogs, such as the one produced by 'C-x v L'. 479switches for shortlogs, such as the one produced by 'C-x v L'.
diff --git a/etc/images/README b/etc/images/README
index 5886f641536..71115540344 100644
--- a/etc/images/README
+++ b/etc/images/README
@@ -67,21 +67,25 @@ Emacs images and their source in the GNOME icons stock/ directory:
67 attach.xpm document/stock_attach 67 attach.xpm document/stock_attach
68 bookmark_add.xpm actions/bookmark_add 68 bookmark_add.xpm actions/bookmark_add
69 cancel.xpm slightly modified generic/stock_stop 69 cancel.xpm slightly modified generic/stock_stop
70 connect.xpm net/stock_connect 70 commit.xpm code/stock_run
71 connect-to-url.xpm net/stock_connect-to-url 71 connect-to-url.xpm net/stock_connect-to-url
72 connect.xpm net/stock_connect
72 contact.xpm net/stock_contact 73 contact.xpm net/stock_contact
73 data-save.xpm data/stock_data-save 74 data-save.xpm data/stock_data-save
74 delete.xpm generic/stock_delete 75 delete.xpm generic/stock_delete
75 describe.xpm generic/stock_properties 76 describe.xpm generic/stock_properties
76 disconnect.xpm net/stock_disconnect 77 disconnect.xpm net/stock_disconnect
77 exit.xpm generic/stock_exit 78 exit.xpm generic/stock_exit
79 gen-changelog.xpm text/stock_autoformat
80 ins-changelog.xpm form/stock_show-form-dialog
81 load-changelog.xpm text/stock_insert_endnote
78 lock-broken.xpm data/stock_lock-broken 82 lock-broken.xpm data/stock_lock-broken
79 lock-ok.xpm data/stock_lock-ok 83 lock-ok.xpm data/stock_lock-ok
80 lock.xpm data/stock_lock 84 lock.xpm data/stock_lock
81 redo.xpm generic/stock_redo
82 search-replace.xpm slightly modified generic/stock_search-and-replace
83 next-page.xpm navigation/stock_next-page 85 next-page.xpm navigation/stock_next-page
86 redo.xpm generic/stock_redo
84 refresh.xpm generic/stock_refresh 87 refresh.xpm generic/stock_refresh
88 search-replace.xpm slightly modified generic/stock_search-and-replace
85 separator.xpm ? 89 separator.xpm ?
86 show.xpm slightly modified document/stock_new 90 show.xpm slightly modified document/stock_new
87 sort-ascending.xpm slightly modified data/stock_sort-ascending 91 sort-ascending.xpm slightly modified data/stock_sort-ascending
@@ -89,6 +93,7 @@ Emacs images and their source in the GNOME icons stock/ directory:
89 sort-criteria.xpm data/stock_sort-criteria 93 sort-criteria.xpm data/stock_sort-criteria
90 sort-descending.xpm slightly modified data/stock_sort-descending 94 sort-descending.xpm slightly modified data/stock_sort-descending
91 sort-row-ascending.xpm data/stock_sort-row-ascending 95 sort-row-ascending.xpm data/stock_sort-row-ascending
96 view-diff.xpm text/stock_list_enum-restart
92 zoom-in.xpm navigation/stock_zoom-in 97 zoom-in.xpm navigation/stock_zoom-in
93 zoom-out.xpm navigation/stock_zoom-out 98 zoom-out.xpm navigation/stock_zoom-out
94 99
diff --git a/etc/images/commit.pbm b/etc/images/commit.pbm
new file mode 100644
index 00000000000..11fe690ac1b
--- /dev/null
+++ b/etc/images/commit.pbm
Binary files differ
diff --git a/etc/images/commit.xpm b/etc/images/commit.xpm
new file mode 100644
index 00000000000..1730f155811
--- /dev/null
+++ b/etc/images/commit.xpm
@@ -0,0 +1,101 @@
1/* XPM */
2static char *commit[] = {
3/* columns rows colors chars-per-pixel */
4"24 24 71 1 ",
5" c None",
6". c black",
7"X c gray13",
8"o c gray14",
9"O c #252525",
10"+ c gray25",
11"@ c gray33",
12"# c #555555",
13"$ c #565656",
14"% c #5A5A5A",
15"& c #5D5D5D",
16"* c gray40",
17"= c #6C6C6C",
18"- c #DF421E",
19"; c #46A046",
20": c #625B81",
21"> c #887FA3",
22", c #848484",
23"< c gray53",
24"1 c #888888",
25"2 c #8E8E8E",
26"3 c #979797",
27"4 c #9A9A9A",
28"5 c #A0A0A0",
29"6 c gray65",
30"7 c #A9A9A9",
31"8 c #AEAEAE",
32"9 c gray75",
33"0 c #BBB6CA",
34"q c #C2C2C1",
35"w c gray76",
36"e c #C3C3C2",
37"r c #C3C3C3",
38"t c gray77",
39"y c #C7C7C6",
40"u c #C8C8C8",
41"i c gray79",
42"p c #C5C1D2",
43"a c #CAC6D6",
44"s c gray84",
45"d c #D8D8D8",
46"f c gray88",
47"g c #E1E1E1",
48"h c #E6E6E6",
49"j c #EDEDEB",
50"k c #EEEEED",
51"l c #EFEFEF",
52"z c #ECEAF0",
53"x c #ECEBF0",
54"c c #F0EFF3",
55"v c gray94",
56"b c #F1F1F0",
57"n c #F2F2F1",
58"m c #F4F4F3",
59"M c #F4F3F6",
60"N c #F5F5F4",
61"B c gray96",
62"V c #F6F6F5",
63"C c #F6F6F6",
64"Z c gray97",
65"A c #F8F8F7",
66"S c #F7F6F8",
67"D c #F8F8F8",
68"F c #F9F9F9",
69"G c gray98",
70"H c #FCFCFB",
71"J c gray99",
72"K c #FDFDFC",
73"L c #FDFDFD",
74"P c #FEFEFE",
75"I c white",
76/* pixels */
77" ...... ",
78" .xx00. ",
79" ..xp>>..",
80" .Spa>>>.",
81"+++++++++## .Mp>>. ",
82"IIIIIIIIIGs<o .c>. ",
83"IIIIIIIIIGhv5. .. ",
84"IIIIIIIIIGdIB3o ",
85"IIIIIIIIIBiIIg1X ",
86";:IIIIIIIB9gsiw2 ",
87"IIIIIIIIHB7*&#%<. ",
88":::G::::GBvsy64=. ",
89"GGGGGGGGGGGGGGG8. ",
90"--::G:::GGGGGGGw. ",
91"GGGGGGGGGGGGGGGy. ",
92"::A::AAAAAAAAAAy. ",
93"BBBBBBBBBBBBBBBy. ",
94"BBBBBBBBBBBBBBBw. ",
95":mmmmmmmmmmmmmmw. ",
96"vvvvvvvvvvvvvvvw. ",
97"---v:v:::v:::vvw. ",
98"lllllllllllllllw. ",
99"::::l--:lllllllw. ",
100"jjjjjjjjjjjjjjjw. "
101};
diff --git a/etc/images/gen-changelog.pbm b/etc/images/gen-changelog.pbm
new file mode 100644
index 00000000000..40bea125b06
--- /dev/null
+++ b/etc/images/gen-changelog.pbm
Binary files differ
diff --git a/etc/images/gen-changelog.xpm b/etc/images/gen-changelog.xpm
new file mode 100644
index 00000000000..65ea7c16f04
--- /dev/null
+++ b/etc/images/gen-changelog.xpm
@@ -0,0 +1,152 @@
1/* XPM */
2static char *gen_changelog[] = {
3/* columns rows colors chars-per-pixel */
4"24 24 122 2 ",
5" c None",
6". c black",
7"X c gray10",
8"o c #353535",
9"O c #442D0E",
10"+ c #5E4417",
11"@ c #7D5A22",
12"# c #645435",
13"$ c #464646",
14"% c #505050",
15"& c gray32",
16"* c #535353",
17"= c gray33",
18"- c #585858",
19"; c gray35",
20": c #675E46",
21"> c gray39",
22", c #6E6E6C",
23"< c gray43",
24"1 c gray44",
25"2 c #787775",
26"3 c #797979",
27"4 c #7B7B7B",
28"5 c #88601F",
29"6 c #A27E36",
30"7 c #9A8558",
31"8 c #9F8B5F",
32"9 c #A09069",
33"0 c #BAA069",
34"q c #C7AF7A",
35"w c #CCB176",
36"e c #868583",
37"r c #868686",
38"t c gray53",
39"y c #8B8A86",
40"u c #888888",
41"i c #898989",
42"p c #8B8B88",
43"a c gray54",
44"s c #8B8B8B",
45"d c #8C8C89",
46"f c gray55",
47"g c #8D8D8D",
48"h c #8E8E8E",
49"j c gray56",
50"k c #909090",
51"l c gray57",
52"z c #929292",
53"x c #939393",
54"c c #969592",
55"v c gray58",
56"b c #959595",
57"n c #979797",
58"m c #9B9996",
59"M c #9C9B97",
60"N c #B8B39B",
61"B c #A4A4A4",
62"V c gray65",
63"C c #A8A7A3",
64"Z c #AAAAAA",
65"A c #B0AFAC",
66"S c gray70",
67"D c #B4B4B4",
68"F c #B6B6B6",
69"G c #C0BFBD",
70"H c #D6C08E",
71"J c #D9C28B",
72"K c #DEC58D",
73"L c #D8C291",
74"P c #DFCA96",
75"I c #E1CC99",
76"U c #C2C1BD",
77"Y c #F3E5BE",
78"T c #C5C5C5",
79"R c #C6C6C6",
80"E c gray79",
81"W c #CACACA",
82"Q c gray80",
83"! c #CECECE",
84"~ c #D2D0D0",
85"^ c #DBDAD8",
86"/ c gray86",
87"( c gainsboro",
88") c #DDDDDD",
89"_ c #F4E7C2",
90"` c #EBE8D3",
91"' c gray88",
92"] c #E1E1E1",
93"[ c #E2E2E2",
94"{ c gray89",
95"} c #E4E4E4",
96"| c gray90",
97" . c #E6E6E6",
98".. c #E7E7E7",
99"X. c #EAE8E3",
100"o. c gray91",
101"O. c #E9E9E9",
102"+. c #EAEAEA",
103"@. c gray92",
104"#. c #EFEDE9",
105"$. c #ECECEC",
106"%. c gray93",
107"&. c #EEEEEE",
108"*. c #EFEFEF",
109"=. c #FEFCE8",
110"-. c #FEFEED",
111";. c gray94",
112":. c #F1F1F1",
113">. c gray95",
114",. c #F3F3F3",
115"<. c #F4F4F4",
116"1. c gray96",
117"2. c #F6F6F6",
118"3. c gray97",
119"4. c #F8F8F8",
120"5. c #F9F9F9",
121"6. c gray98",
122"7. c #FBFBFB",
123"8. c gray99",
124"9. c #FDFDFD",
125"0. c #FEFEFE",
126"q. c white",
127/* pixels */
128" . . . . . . . . . . . . . . . . . . . . ",
129". [ >.>.>.>.>.>.>.<.<.<.<.<.<.<.<.<.<.<.) . ",
130". >.[ [ [ [ [ } } } } o.o.o.o.o.$.$.$.$.$.. ",
131". >.[ r r r r i i ; . & i o.o.$.$.$.$.>.>.. ",
132". >.[ [ [ } } } [ . N . [ $.$.$.$.$.>.>.>.. ",
133". >.[ r i i i i < . ` . = g g g g >.>.>.>.. ",
134". >.} } } } } 3 . . -.. . 3 o.>.>.>.>.>.<.. ",
135". >.} i i ; . . : _ =.6 # . . D >.>.>.<.<.. ",
136". <.} } o.. 7 q J P Y w I K 8 . T <.<.<.<.. ",
137". <.} i i & . . O @ 0 5 + . . n <.<.<.<.<.. ",
138". <.o.o.o.o.[ k . . H . X $ . <.<.<.<.<.4.. ",
139". <.o.i g g g g > . L . ; d C . <.<.4.4.4.. ",
140". <.o.$.$.$.$.$.o.. 9 o . 2 G U . 4.4.4.4.. ",
141". <.o.g g g g g g & . 1 T . i ~ C . 4.4.9.. ",
142". <.$.$.$.$.>.>.>.>.T ) T T . M ^ A . 9.9.. ",
143". <.$.g g g g k >.<.<.<.) ) S . C #.c . 9.. ",
144". 4.>.>.>.>.>.<.<.<.<.4.4.[ E D . M X.e . . ",
145". 4.>.k k k k k k k k n n n [ Q B . m X.< . ",
146". >.>.<.<.<.<.<.<.4.4.4.4.9.9.} Q B . c X.2 . ",
147". E $.4.<.<.<.4.4.4.4.4.9.9.9.9.} Q Z . y X.2 . ",
148" . . . . . . . . . . . . . . . . . . . . y X.. ",
149" . . ",
150" ",
151" "
152};
diff --git a/etc/images/ins-changelog.pbm b/etc/images/ins-changelog.pbm
new file mode 100644
index 00000000000..fb97cf7d5d8
--- /dev/null
+++ b/etc/images/ins-changelog.pbm
@@ -0,0 +1,3 @@
1P4
224 24
3ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿàÿàÿçÿàÿçóÿàÿçóÿàÿçóÿàÿçóÿàÿàÿÿÿÿÿÿ \ No newline at end of file
diff --git a/etc/images/ins-changelog.xpm b/etc/images/ins-changelog.xpm
new file mode 100644
index 00000000000..24deee3c344
--- /dev/null
+++ b/etc/images/ins-changelog.xpm
@@ -0,0 +1,67 @@
1/* XPM */
2static char *ins_changelog[] = {
3/* columns rows colors chars-per-pixel */
4"24 24 37 1 ",
5" c None",
6". c black",
7"X c #161616",
8"o c gray25",
9"O c #4B4B49",
10"+ c #5D5D5D",
11"@ c #494066",
12"# c #767676",
13"$ c gray52",
14"% c #A0A0A0",
15"& c gray66",
16"* c gray68",
17"= c #BBBBBB",
18"- c #BCBCBC",
19"; c gray74",
20": c #C1C1C1",
21"> c gray76",
22", c #C3C3C3",
23"< c gray88",
24"1 c #E2E2E2",
25"2 c gray89",
26"3 c #E4E4E4",
27"4 c gray90",
28"5 c #E6E6E6",
29"6 c #E7E7E7",
30"7 c gray91",
31"8 c #EAEAEA",
32"9 c gray92",
33"0 c #ECECEC",
34"q c gray93",
35"w c #EEEEEE",
36"e c #EFEFEF",
37"r c gray94",
38"t c #F1F1F1",
39"y c #FBFBFB",
40"u c #FDFDFD",
41"i c #FEFEFE",
42/* pixels */
43" ",
44" ",
45" @ @@ @@ @@ @@ ",
46" @ ",
47" @ ",
48" @ @ ",
49" @ ",
50" ......... ",
51" @ .iiiiiii2>. ",
52" @ .itttttt>y&. ",
53" .itttttt*#+o. ",
54" @ .it@@@@t2$OX. ",
55" @ .iteeeeeeee=. ",
56" .ie@@@@@@@e=. ",
57" @ .ieeeeeeee9=. ",
58" @ .ie@@@@@@@9=. ",
59" .i999999499=. ",
60" @@ @@ @@.i9@@@@@@@4=. ",
61" .i944444444=. ",
62" .i4@@@@@@@4=. ",
63" .i444444222=. ",
64" .>-----====%. ",
65" ........... ",
66" "
67};
diff --git a/etc/images/load-changelog.pbm b/etc/images/load-changelog.pbm
new file mode 100644
index 00000000000..43f1a1b221f
--- /dev/null
+++ b/etc/images/load-changelog.pbm
Binary files differ
diff --git a/etc/images/load-changelog.xpm b/etc/images/load-changelog.xpm
new file mode 100644
index 00000000000..6d317b6afa2
--- /dev/null
+++ b/etc/images/load-changelog.xpm
@@ -0,0 +1,82 @@
1/* XPM */
2static char *load_changelog[] = {
3/* columns rows colors chars-per-pixel */
4"24 24 52 1 ",
5" c None",
6". c black",
7"X c #434343",
8"o c gray33",
9"O c #DF421E",
10"+ c #8B8B8B",
11"@ c gray55",
12"# c #8D8D8D",
13"$ c #8E8E8E",
14"% c gray56",
15"& c #909090",
16"* c gray57",
17"= c #929292",
18"- c #939393",
19"; c gray58",
20": c #959595",
21"> c gray66",
22", c #B7B7B7",
23"< c gray74",
24"1 c #C0C0C0",
25"2 c gray79",
26"3 c #CACACA",
27"4 c gray84",
28"5 c gray85",
29"6 c #DADADA",
30"7 c #DDDDDD",
31"8 c #DFDFDF",
32"9 c gray90",
33"0 c gray91",
34"q c #E9E9E9",
35"w c #EAEAEA",
36"e c gray92",
37"r c #ECECEC",
38"t c gray93",
39"y c #EEEEEE",
40"u c #EFEFEF",
41"i c gray94",
42"p c #F1F1F1",
43"a c gray95",
44"s c #F3F3F3",
45"d c #F4F4F4",
46"f c gray96",
47"g c #F6F6F6",
48"h c gray97",
49"j c #F8F8F8",
50"k c #F9F9F9",
51"l c gray98",
52"z c #FBFBFB",
53"x c gray99",
54"c c #FDFDFD",
55"v c #FEFEFE",
56"b c white",
57/* pixels */
58" .. .. .. .. ",
59" .d3..51..7>..d,.. ",
60" .d00tttttiiiiddd4. ",
61" .d0+$$$$$$&&&$jjt. ",
62" .d00ttiiiidddjjX5. ",
63" .d0$$$&9OOOOcjj........",
64" .dttiiidddddjjjo7. .",
65" .dttiiiddddddjjc5. .",
66" .jiidddddjjjcccc7. .",
67" .ji&&&&&&;;;;;cc7. .",
68" .jiiiddddjjjjccc7. .",
69" .ji&&&&&;;;;cccc7. .",
70" .iiidddjjjjccccct. .",
71" .3tjdjjjjjccccct<. .",
72" ................ .",
73" .",
74" .",
75" . .",
76" .. .",
77" OOOOOOOOOOOOO ......",
78" OOOOOOOOOOOOO .. ",
79" . ",
80" ",
81" "
82};
diff --git a/etc/images/view-diff.pbm b/etc/images/view-diff.pbm
new file mode 100644
index 00000000000..35aabdabb1e
--- /dev/null
+++ b/etc/images/view-diff.pbm
Binary files differ
diff --git a/etc/images/view-diff.xpm b/etc/images/view-diff.xpm
new file mode 100644
index 00000000000..3ebd0b3002b
--- /dev/null
+++ b/etc/images/view-diff.xpm
@@ -0,0 +1,93 @@
1/* XPM */
2static char *view_diff[] = {
3/* columns rows colors chars-per-pixel */
4"24 24 63 1 ",
5" c None",
6". c black",
7"X c gray43",
8"o c #6F6F6F",
9"O c gray44",
10"+ c #717171",
11"@ c #727272",
12"# c gray45",
13"$ c #747474",
14"% c gray46",
15"& c #767676",
16"* c #777777",
17"= c gray47",
18"- c #DF421E",
19"; c #E3846E",
20": c #838383",
21"> c gray74",
22", c #E19989",
23"< c #E29A8A",
24"1 c #E39B8B",
25"2 c #E59C8B",
26"3 c #E49C8C",
27"4 c #E4AB9E",
28"5 c #E8AEA1",
29"6 c #C5C5C5",
30"7 c gray79",
31"8 c gray81",
32"9 c #DADADA",
33"0 c gray86",
34"q c #DDDDDD",
35"w c #EAD4CE",
36"e c gray88",
37"r c #E1E1E1",
38"t c #E2E2E2",
39"y c gray89",
40"u c #E4E4E4",
41"i c gray90",
42"p c #E6E6E6",
43"a c #E7E7E7",
44"s c gray91",
45"d c #E9E9E9",
46"f c #EAEAEA",
47"g c gray92",
48"h c #ECECEC",
49"j c gray93",
50"k c #EEEEEE",
51"l c #EFEFEF",
52"z c gray94",
53"x c #F1F1F1",
54"c c gray95",
55"v c #F3F3F3",
56"b c #F4F4F4",
57"n c gray96",
58"m c #F6F6F6",
59"M c gray97",
60"N c #F8F8F8",
61"B c #F9F9F9",
62"V c gray98",
63"C c #FBFBFB",
64"Z c gray99",
65"A c #FDFDFD",
66"S c #FEFEFE",
67"D c white",
68/* pixels */
69" .................... ",
70".tcccccccbbbbbbbbbbbq. ",
71".ctttttiiiidddddhhhhh. ",
72".ctttti8Xidddddhhhhcc. ",
73".cttti8XXdd+++++++ccc. ",
74".ctiiiiiXddhhhhhhcccc. ",
75".c,---id+dd++++++$ccb. ",
76".ci,--dd+dhhhhchcccbb. ",
77".bi-,-dddhh+++$cbcbbb. ",
78".b-4d3dhhhhhccccbbbbb. ",
79".b-ddhhhhhhccccbbbNNN. ",
80".b-ddhhhhccccbbbbNNNN. ",
81".b;-whh6$0cccbbbbNNNN. ",
82".bd2-5h+c$b:$$$$$=NNZ. ",
83".bhhhhccq$bbbbbNNNNZZ. ",
84".bhhhcc0$qb$$$$==NZZZ. ",
85".Nccccc$$$bNNNNNZZZZZ. ",
86".NcccbbbbbNNNZZZZZZZZ. ",
87".ccbbbbbbNNNZZZZZZZZh. ",
88".7hNbbbNNNNNZZZZZZZh>. ",
89" .................... ",
90" ",
91" ",
92" "
93};
diff --git a/lisp/vc/log-edit.el b/lisp/vc/log-edit.el
index 39e0799ba73..c2665c802f6 100644
--- a/lisp/vc/log-edit.el
+++ b/lisp/vc/log-edit.el
@@ -76,6 +76,8 @@
76 "--" 76 "--"
77 ["Insert ChangeLog" log-edit-insert-changelog 77 ["Insert ChangeLog" log-edit-insert-changelog
78 :help "Insert a log message by looking at the ChangeLog"] 78 :help "Insert a log message by looking at the ChangeLog"]
79 ["Generate ChangeLog" log-edit-generate-changelog-from-diff
80 :help "Generate a log message from the diff and insert it into this buffer"]
79 ["Add to ChangeLog" log-edit-add-to-changelog 81 ["Add to ChangeLog" log-edit-add-to-changelog
80 :help "Insert this log message into the appropriate ChangeLog file"] 82 :help "Insert this log message into the appropriate ChangeLog file"]
81 "--" 83 "--"
@@ -93,6 +95,65 @@
93 ["Search comment backward" log-edit-comment-search-backward 95 ["Search comment backward" log-edit-comment-search-backward
94 :help "Search backwards through comment history for substring match of str"])) 96 :help "Search backwards through comment history for substring match of str"]))
95 97
98(defvar log-edit-tool-bar-map
99 (let ((map (make-sparse-keymap)))
100 (tool-bar-local-item-from-menu 'find-file "new" map
101 nil :label "New File"
102 :vert-only t)
103 (tool-bar-local-item-from-menu 'menu-find-file-existing "open" map
104 nil :label "Open" :vert-only t)
105 (tool-bar-local-item-from-menu 'dired "diropen" map nil :vert-only t)
106 (tool-bar-local-item-from-menu 'kill-this-buffer "close" map nil
107 :vert-only t)
108 (define-key-after map [separator-1] menu-bar-separator)
109 (tool-bar-local-item-from-menu 'log-edit-done "commit"
110 map log-edit-mode-map :vert-only t
111 :help
112 "Complete the actual action")
113 (define-key-after map [separator-2] menu-bar-separator)
114 (tool-bar-local-item-from-menu 'log-edit-insert-changelog
115 "ins-changelog"
116 map log-edit-mode-map :vert-only t
117 :help
118 "Complete the actual action")
119 (tool-bar-local-item-from-menu 'log-edit-insert-changelog
120 "load-changelog"
121 map log-edit-mode-map :vert-only t
122 :help
123 "Insert log message from ChangeLog file")
124 (tool-bar-local-item-from-menu 'log-edit-generate-changelog-from-diff
125 "gen-changelog"
126 map log-edit-mode-map :vert-only t
127 :help
128 "Generate a log message from diff")
129 (tool-bar-local-item-from-menu 'log-edit-add-to-changelog
130 "ins-changelog"
131 map log-edit-mode-map :vert-only t
132 :help
133 "Insert this log message into the ChangeLog")
134 (define-key-after map [separator-3] menu-bar-separator)
135 (tool-bar-local-item-from-menu 'log-edit-show-diff
136 "view-diff"
137 map log-edit-mode-map :vert-only t
138 :help
139 "View the diff for the files to be committed")
140 (tool-bar-local-item-from-menu 'log-edit-show-files
141 "info"
142 map log-edit-mode-map :vert-only t
143 :help
144 "View the list of files to be committed")
145 (define-key-after map [separator-4] menu-bar-separator)
146 (tool-bar-local-item-from-menu 'undo "undo" map nil)
147 (define-key-after map [separator-5] menu-bar-separator)
148 (tool-bar-local-item-from-menu (lookup-key menu-bar-edit-menu [cut])
149 "cut" map nil)
150 (tool-bar-local-item-from-menu (lookup-key menu-bar-edit-menu [copy])
151 "copy" map nil)
152 (tool-bar-local-item-from-menu (lookup-key menu-bar-edit-menu [paste])
153 "paste" map nil)
154 map)
155 "Like the default `tool-bar-map', but with additions for Log-Edit mode.")
156
96(defcustom log-edit-confirm 'changed 157(defcustom log-edit-confirm 'changed
97 "If non-nil, `log-edit-done' will request confirmation. 158 "If non-nil, `log-edit-done' will request confirmation.
98If `changed', only request confirmation if the list of files has 159If `changed', only request confirmation if the list of files has
@@ -511,7 +572,9 @@ the \\[vc-prefix-map] prefix for VC commands, for example).
511 (setq-local fill-paragraph-function #'log-edit-fill-entry) 572 (setq-local fill-paragraph-function #'log-edit-fill-entry)
512 (make-local-variable 'log-edit-comment-ring-index) 573 (make-local-variable 'log-edit-comment-ring-index)
513 (add-hook 'kill-buffer-hook 'log-edit-remember-comment nil t) 574 (add-hook 'kill-buffer-hook 'log-edit-remember-comment nil t)
514 (hack-dir-local-variables-non-file-buffer)) 575 (hack-dir-local-variables-non-file-buffer)
576 ;; Replace the tool bar map with `log-edit-tool-bar-map'.
577 (setq-local tool-bar-map log-edit-tool-bar-map))
515 578
516(defun log-edit--insert-filled-defuns (func-names) 579(defun log-edit--insert-filled-defuns (func-names)
517 "Insert FUNC-NAMES, following ChangeLog formatting." 580 "Insert FUNC-NAMES, following ChangeLog formatting."