From 5b8dce15d3e4d1e50fc4f1df10665260f74a0a02 Mon Sep 17 00:00:00 2001 From: "Anselm R. Garbe" Date: Thu, 1 Mar 2007 15:47:54 +0100 Subject: [PATCH 01/16] Added tag 2.6 for changeset 775f761a5647 --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index b8053c0..51ad766 100644 --- a/.hgtags +++ b/.hgtags @@ -26,3 +26,4 @@ b6e09682c8adcb6569656bee73c311f9ab457715 2.3 03e83e2788c83ddd63b45a667939d7ec783c98cb 2.4.1 1ca5d430524e838c52ede912533cb90108c5cd66 2.4.2 041143e9fc544c62edc58af52cae9ac5237e5945 2.5 +775f761a5647a05038e091d1c99fc35d3034cd68 2.6 -- 2.20.1 From 724f72142f6dc880068a92e412f3f3366e643569 Mon Sep 17 00:00:00 2001 From: "Anselm R. Garbe" Date: Fri, 2 Mar 2007 15:16:36 +0100 Subject: [PATCH 02/16] also, don't set the font all the time --- config.mk | 2 +- draw.c | 15 ++++----------- main.c | 2 ++ 3 files changed, 7 insertions(+), 12 deletions(-) diff --git a/config.mk b/config.mk index b261284..07b323b 100644 --- a/config.mk +++ b/config.mk @@ -1,5 +1,5 @@ # dmenu version -VERSION = 2.6 +VERSION = 2.7 # Customize below to fit your system diff --git a/draw.c b/draw.c index 145df16..d36df30 100644 --- a/draw.c +++ b/draw.c @@ -12,7 +12,6 @@ drawtext(const char *text, unsigned long col[ColLast]) { int x, y, w, h; static char buf[256]; unsigned int len, olen; - XGCValues gcv; XRectangle r = { dc.x, dc.y, dc.w, dc.h }; XSetForeground(dpy, dc.gc, col[ColBG]); @@ -41,17 +40,11 @@ drawtext(const char *text, unsigned long col[ColLast]) { } if(w > dc.w) return; /* too long */ - gcv.foreground = col[ColFG]; - if(dc.font.set) { - XChangeGC(dpy, dc.gc, GCForeground, &gcv); - XmbDrawString(dpy, dc.drawable, dc.font.set, dc.gc, - x, y, buf, len); - } - else { - gcv.font = dc.font.xfont->fid; - XChangeGC(dpy, dc.gc, GCForeground | GCFont, &gcv); + XSetForeground(dpy, dc.gc, col[ColFG]); + if(dc.font.set) + XmbDrawString(dpy, dc.drawable, dc.font.set, dc.gc, x, y, buf, len); + else XDrawString(dpy, dc.drawable, dc.gc, x, y, buf, len); - } } unsigned int diff --git a/main.c b/main.c index d87e5dc..0f07773 100644 --- a/main.c +++ b/main.c @@ -493,6 +493,8 @@ main(int argc, char *argv[]) { dc.drawable = XCreatePixmap(dpy, root, mw, mh, DefaultDepth(dpy, screen)); dc.gc = XCreateGC(dpy, root, 0, 0); XSetLineAttributes(dpy, dc.gc, 1, LineSolid, CapButt, JoinMiter); + if(!dc.font.set) + XSetFont(dpy, dc.gc, dc.font.xfont->fid); if(maxname) cmdw = textw(maxname); if(cmdw > mw / 3) -- 2.20.1 From d57c873f104cb8be34299efe70e02df4bf275d92 Mon Sep 17 00:00:00 2001 From: "Anselm R. Garbe" Date: Fri, 2 Mar 2007 21:48:48 +0100 Subject: [PATCH 03/16] keyboard grab works on the dmenu window now (not on the root window) - thx for Kris for this hint --- main.c | 41 ++++++++++++++++++++--------------------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/main.c b/main.c index 0f07773..beb8411 100644 --- a/main.c +++ b/main.c @@ -110,7 +110,7 @@ drawmenu(void) { static void grabkeyboard(void) { - while(XGrabKeyboard(dpy, root, True, GrabModeAsync, + while(XGrabKeyboard(dpy, win, True, GrabModeAsync, GrabModeAsync, CurrentTime) != GrabSuccess) usleep(1000); } @@ -454,24 +454,6 @@ main(int argc, char *argv[]) { eprint("dmenu: cannot open display\n"); screen = DefaultScreen(dpy); root = RootWindow(dpy, screen); - if(isatty(STDIN_FILENO)) { - maxname = readstdin(); - grabkeyboard(); - } - else { /* prevent keypress loss */ - grabkeyboard(); - maxname = readstdin(); - } - /* init modifier map */ - modmap = XGetModifierMapping(dpy); - for (i = 0; i < 8; i++) { - for (j = 0; j < modmap->max_keypermod; j++) { - if(modmap->modifiermap[i * modmap->max_keypermod + j] - == XKeysymToKeycode(dpy, XK_Num_Lock)) - numlockmask = (1 << i); - } - } - XFreeModifiermap(modmap); /* style */ dc.norm[ColBG] = initcolor(normbg); dc.norm[ColFG] = initcolor(normfg); @@ -495,6 +477,25 @@ main(int argc, char *argv[]) { XSetLineAttributes(dpy, dc.gc, 1, LineSolid, CapButt, JoinMiter); if(!dc.font.set) XSetFont(dpy, dc.gc, dc.font.xfont->fid); + drawmenu(); + XMapRaised(dpy, win); + if(isatty(STDIN_FILENO)) { + maxname = readstdin(); + grabkeyboard(); + } + else { /* prevent keypress loss */ + grabkeyboard(); + maxname = readstdin(); + } + /* init modifier map */ + modmap = XGetModifierMapping(dpy); + for(i = 0; i < 8; i++) + for(j = 0; j < modmap->max_keypermod; j++) { + if(modmap->modifiermap[i * modmap->max_keypermod + j] + == XKeysymToKeycode(dpy, XK_Num_Lock)) + numlockmask = (1 << i); + } + XFreeModifiermap(modmap); if(maxname) cmdw = textw(maxname); if(cmdw > mw / 3) @@ -505,8 +506,6 @@ main(int argc, char *argv[]) { promptw = mw / 5; text[0] = 0; match(text); - XMapRaised(dpy, win); - drawmenu(); XSync(dpy, False); /* main event loop */ -- 2.20.1 From 2772c51e79a5bfdf60103da02af63d972fecf9cf Mon Sep 17 00:00:00 2001 From: "Anselm R. Garbe" Date: Mon, 5 Mar 2007 11:25:18 +0100 Subject: [PATCH 04/16] Added tag 2.7 for changeset fbd9e9d63f20 --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index 51ad766..0c95111 100644 --- a/.hgtags +++ b/.hgtags @@ -27,3 +27,4 @@ b6e09682c8adcb6569656bee73c311f9ab457715 2.3 1ca5d430524e838c52ede912533cb90108c5cd66 2.4.2 041143e9fc544c62edc58af52cae9ac5237e5945 2.5 775f761a5647a05038e091d1c99fc35d3034cd68 2.6 +fbd9e9d63f202afe6834ccfdf890904f1897ec0b 2.7 -- 2.20.1 From 9911455f5b7787c999a570faf33cf6ad0bec056c Mon Sep 17 00:00:00 2001 From: Kris Maglione Date: Tue, 6 Mar 2007 03:24:40 -0500 Subject: [PATCH 05/16] Wait for an Expose and draw the menu immediately after mapping the window. --- main.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/main.c b/main.c index beb8411..29b313b 100644 --- a/main.c +++ b/main.c @@ -479,6 +479,8 @@ main(int argc, char *argv[]) { XSetFont(dpy, dc.gc, dc.font.xfont->fid); drawmenu(); XMapRaised(dpy, win); + XMaskEvent(dpy, ExposureMask, &ev); + drawmenu(); if(isatty(STDIN_FILENO)) { maxname = readstdin(); grabkeyboard(); @@ -506,6 +508,7 @@ main(int argc, char *argv[]) { promptw = mw / 5; text[0] = 0; match(text); + drawmenu(); XSync(dpy, False); /* main event loop */ @@ -516,10 +519,6 @@ main(int argc, char *argv[]) { case KeyPress: kpress(&ev.xkey); break; - case Expose: - if(ev.xexpose.count == 0) - drawmenu(); - break; } /* cleanup */ -- 2.20.1 From 73120414e2e4a3a8031b243fb0d893506d4a0dc1 Mon Sep 17 00:00:00 2001 From: "Anselm R. Garbe" Date: Wed, 7 Mar 2007 10:54:21 +0100 Subject: [PATCH 06/16] reverting keyboard grab to root window - invoking several dmenu's now works again... --- main.c | 46 ++++++++++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/main.c b/main.c index 29b313b..0f07773 100644 --- a/main.c +++ b/main.c @@ -110,7 +110,7 @@ drawmenu(void) { static void grabkeyboard(void) { - while(XGrabKeyboard(dpy, win, True, GrabModeAsync, + while(XGrabKeyboard(dpy, root, True, GrabModeAsync, GrabModeAsync, CurrentTime) != GrabSuccess) usleep(1000); } @@ -454,6 +454,24 @@ main(int argc, char *argv[]) { eprint("dmenu: cannot open display\n"); screen = DefaultScreen(dpy); root = RootWindow(dpy, screen); + if(isatty(STDIN_FILENO)) { + maxname = readstdin(); + grabkeyboard(); + } + else { /* prevent keypress loss */ + grabkeyboard(); + maxname = readstdin(); + } + /* init modifier map */ + modmap = XGetModifierMapping(dpy); + for (i = 0; i < 8; i++) { + for (j = 0; j < modmap->max_keypermod; j++) { + if(modmap->modifiermap[i * modmap->max_keypermod + j] + == XKeysymToKeycode(dpy, XK_Num_Lock)) + numlockmask = (1 << i); + } + } + XFreeModifiermap(modmap); /* style */ dc.norm[ColBG] = initcolor(normbg); dc.norm[ColFG] = initcolor(normfg); @@ -477,27 +495,6 @@ main(int argc, char *argv[]) { XSetLineAttributes(dpy, dc.gc, 1, LineSolid, CapButt, JoinMiter); if(!dc.font.set) XSetFont(dpy, dc.gc, dc.font.xfont->fid); - drawmenu(); - XMapRaised(dpy, win); - XMaskEvent(dpy, ExposureMask, &ev); - drawmenu(); - if(isatty(STDIN_FILENO)) { - maxname = readstdin(); - grabkeyboard(); - } - else { /* prevent keypress loss */ - grabkeyboard(); - maxname = readstdin(); - } - /* init modifier map */ - modmap = XGetModifierMapping(dpy); - for(i = 0; i < 8; i++) - for(j = 0; j < modmap->max_keypermod; j++) { - if(modmap->modifiermap[i * modmap->max_keypermod + j] - == XKeysymToKeycode(dpy, XK_Num_Lock)) - numlockmask = (1 << i); - } - XFreeModifiermap(modmap); if(maxname) cmdw = textw(maxname); if(cmdw > mw / 3) @@ -508,6 +505,7 @@ main(int argc, char *argv[]) { promptw = mw / 5; text[0] = 0; match(text); + XMapRaised(dpy, win); drawmenu(); XSync(dpy, False); @@ -519,6 +517,10 @@ main(int argc, char *argv[]) { case KeyPress: kpress(&ev.xkey); break; + case Expose: + if(ev.xexpose.count == 0) + drawmenu(); + break; } /* cleanup */ -- 2.20.1 From f555908cef580106a50c53e096ec12bf4d2bb2e2 Mon Sep 17 00:00:00 2001 From: "Anselm R. Garbe" Date: Wed, 7 Mar 2007 11:01:14 +0100 Subject: [PATCH 07/16] attempt to grab the keyboard only 1000 times, not forever. --- config.mk | 2 +- main.c | 16 +++++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/config.mk b/config.mk index 07b323b..75cc46d 100644 --- a/config.mk +++ b/config.mk @@ -1,5 +1,5 @@ # dmenu version -VERSION = 2.7 +VERSION = 2.8 # Customize below to fit your system diff --git a/main.c b/main.c index 0f07773..fa03ec8 100644 --- a/main.c +++ b/main.c @@ -108,11 +108,17 @@ drawmenu(void) { XFlush(dpy); } -static void +static Bool grabkeyboard(void) { - while(XGrabKeyboard(dpy, root, True, GrabModeAsync, - GrabModeAsync, CurrentTime) != GrabSuccess) + unsigned int len; + + for(len = 1000; len; len--) { + if(XGrabKeyboard(dpy, root, True, GrabModeAsync, GrabModeAsync, CurrentTime) + == GrabSuccess) + break; usleep(1000); + } + return len > 0; } static unsigned long @@ -456,10 +462,10 @@ main(int argc, char *argv[]) { root = RootWindow(dpy, screen); if(isatty(STDIN_FILENO)) { maxname = readstdin(); - grabkeyboard(); + running = grabkeyboard(); } else { /* prevent keypress loss */ - grabkeyboard(); + running = grabkeyboard(); maxname = readstdin(); } /* init modifier map */ -- 2.20.1 From e1515a2fdcf60987d964b0d616bd44ec3980a89b Mon Sep 17 00:00:00 2001 From: "Anselm R. Garbe" Date: Wed, 7 Mar 2007 13:30:57 +0100 Subject: [PATCH 08/16] Added tag 2.8 for changeset dd3d02b07cac --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index 0c95111..97a81c4 100644 --- a/.hgtags +++ b/.hgtags @@ -28,3 +28,4 @@ b6e09682c8adcb6569656bee73c311f9ab457715 2.3 041143e9fc544c62edc58af52cae9ac5237e5945 2.5 775f761a5647a05038e091d1c99fc35d3034cd68 2.6 fbd9e9d63f202afe6834ccfdf890904f1897ec0b 2.7 +dd3d02b07cac44fbafc074a361c1002cebe7aae4 2.8 -- 2.20.1 From 1fa4fa386aa7c03f8fa3bf2ffedd78bfe24fe9d4 Mon Sep 17 00:00:00 2001 From: "Anselm R. Garbe" Date: Tue, 27 Mar 2007 16:52:50 +0200 Subject: [PATCH 09/16] allowing numpad keys as inpyt --- main.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/main.c b/main.c index fa03ec8..9fab328 100644 --- a/main.c +++ b/main.c @@ -216,6 +216,13 @@ kpress(XKeyEvent * e) { len = strlen(text); buf[0] = 0; num = XLookupString(e, buf, sizeof buf, &ksym, 0); + if(IsKeypadKey(ksym)) { + if(ksym == XK_KP_Enter) { + ksym = XK_Return; + } else if(ksym >= XK_KP_0 && ksym <= XK_KP_9) { + ksym = (ksym - XK_KP_0) + XK_0; + } + } if(IsFunctionKey(ksym) || IsKeypadKey(ksym) || IsMiscFunctionKey(ksym) || IsPFKey(ksym) || IsPrivateKeypadKey(ksym)) -- 2.20.1 From 85a151c6a43407b0fbd74562f46744e0e825c691 Mon Sep 17 00:00:00 2001 From: "Anselm R. Garbe" Date: Wed, 28 Mar 2007 08:17:57 +0200 Subject: [PATCH 10/16] next version is 2.9 --- config.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.mk b/config.mk index 75cc46d..efd00bf 100644 --- a/config.mk +++ b/config.mk @@ -1,5 +1,5 @@ # dmenu version -VERSION = 2.8 +VERSION = 2.9 # Customize below to fit your system -- 2.20.1 From 0e19146d5f89def3a1cf55545fdc72dbab7b60e3 Mon Sep 17 00:00:00 2001 From: "Anselm R. Garbe" Date: Fri, 13 Apr 2007 11:36:44 +0200 Subject: [PATCH 11/16] making copyright notice more compact --- LICENSE | 4 ++-- Makefile | 2 +- config.mk | 2 +- dmenu.h | 7 +++---- draw.c | 7 +++---- main.c | 9 ++++----- util.c | 6 +++--- 7 files changed, 17 insertions(+), 20 deletions(-) diff --git a/LICENSE b/LICENSE index 2d25a17..69214cb 100644 --- a/LICENSE +++ b/LICENSE @@ -1,7 +1,7 @@ MIT/X Consortium License -(C)opyright MMVI-MMVII Anselm R. Garbe -(C)opyright MMVI-MMVII Sander van Dijk +© 2006-2007 Anselm R. Garbe +© 2006-2007 Sander van Dijk Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), diff --git a/Makefile b/Makefile index 3869f4d..6b273cb 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ # dmenu - dynamic menu -# (C)opyright MMVI-MMVII Anselm R. Garbe +# © 2006-2007 Anselm R. Garbe, Sander van Dijk include config.mk diff --git a/config.mk b/config.mk index efd00bf..5230edb 100644 --- a/config.mk +++ b/config.mk @@ -1,5 +1,5 @@ # dmenu version -VERSION = 2.9 +VERSION = 3.0 # Customize below to fit your system diff --git a/dmenu.h b/dmenu.h index 84e19e6..eba71f4 100644 --- a/dmenu.h +++ b/dmenu.h @@ -1,7 +1,6 @@ -/* (C)opyright MMVI-MMVII Anselm R. Garbe - * See LICENSE file for license details. - */ - +/* © 2006-2007 Anselm R. Garbe + * © 2006-2007 Sander van Dijk + * See LICENSE file for license details. */ #include #define FONT "-*-fixed-medium-r-normal-*-13-*-*-*-*-*-*-*" diff --git a/draw.c b/draw.c index d36df30..29fd0eb 100644 --- a/draw.c +++ b/draw.c @@ -1,7 +1,6 @@ -/* (C)opyright MMVI-MMVII Anselm R. Garbe - * (C)opyright MMVI-MMVII Sander van Dijk - * See LICENSE file for license details. - */ +/* © 2006-2007 Anselm R. Garbe + * © 2006-2007 Sander van Dijk + * See LICENSE file for license details. */ #include "dmenu.h" #include diff --git a/main.c b/main.c index 9fab328..c63ac08 100644 --- a/main.c +++ b/main.c @@ -1,7 +1,6 @@ -/* (C)opyright MMVI-MMVII Anselm R. Garbe - * (C)opyright MMVI-MMVII Sander van Dijk - * See LICENSE file for license details. - */ +/* © 2006-2007 Anselm R. Garbe + * © 2006-2007 Sander van Dijk + * See LICENSE file for license details. */ #include "dmenu.h" #include #include @@ -458,7 +457,7 @@ main(int argc, char *argv[]) { if(++i < argc) selfg = argv[i]; } else if(!strncmp(argv[i], "-v", 3)) - eprint("dmenu-"VERSION", (C)opyright MMVI-MMVII Anselm R. Garbe\n"); + eprint("dmenu-"VERSION", © 2006-2007 Anselm R. Garbe, Sander van Dijk\n"); else usage(); setlocale(LC_CTYPE, ""); diff --git a/util.c b/util.c index 124bcd5..0a8aada 100644 --- a/util.c +++ b/util.c @@ -1,6 +1,6 @@ -/* (C)opyright MMVI-MMVII Anselm R. Garbe - * See LICENSE file for license details. - */ +/* © 2006-2007 Anselm R. Garbe + * © 2006-2007 Sander van Dijk + * See LICENSE file for license details. */ #include "dmenu.h" #include #include -- 2.20.1 From f189781bbd9d6519a31630c857e21407a5dac610 Mon Sep 17 00:00:00 2001 From: "Anselm R. Garbe" Date: Thu, 19 Apr 2007 09:27:08 +0200 Subject: [PATCH 12/16] Added tag 3.0 for changeset 59b3024854db --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index 97a81c4..3c55db9 100644 --- a/.hgtags +++ b/.hgtags @@ -29,3 +29,4 @@ b6e09682c8adcb6569656bee73c311f9ab457715 2.3 775f761a5647a05038e091d1c99fc35d3034cd68 2.6 fbd9e9d63f202afe6834ccfdf890904f1897ec0b 2.7 dd3d02b07cac44fbafc074a361c1002cebe7aae4 2.8 +59b3024854db49739c6d237fa9077f04a2da847a 3.0 -- 2.20.1 From aa2f73fc88ef3e6946e75bab54a3c0f83f887b3b Mon Sep 17 00:00:00 2001 From: "Anselm R. Garbe" Date: Wed, 2 May 2007 15:25:52 +0200 Subject: [PATCH 13/16] fixed a small bug in dmenu when an empty font is supplied --- config.mk | 2 +- main.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/config.mk b/config.mk index 5230edb..ce5daab 100644 --- a/config.mk +++ b/config.mk @@ -1,5 +1,5 @@ # dmenu version -VERSION = 3.0 +VERSION = 3.1 # Customize below to fit your system diff --git a/main.c b/main.c index c63ac08..e4c4903 100644 --- a/main.c +++ b/main.c @@ -135,6 +135,8 @@ initfont(const char *fontstr) { char *def, **missing; int i, n; + if(!fontstr || fontstr[0] == '\0') + eprint("error, cannot load font: '%s'\n", fontstr); missing = NULL; if(dc.font.set) XFreeFontSet(dpy, dc.font.set); -- 2.20.1 From 4042a11e5174633e9beeeec120937856e1d0f74f Mon Sep 17 00:00:00 2001 From: "Anselm R. Garbe" Date: Mon, 14 May 2007 11:56:41 +0200 Subject: [PATCH 14/16] applied anydot's dmenu_path caching patch, thank you! --- dmenu_path | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/dmenu_path b/dmenu_path index f64c82e..e590a5c 100755 --- a/dmenu_path +++ b/dmenu_path @@ -1,9 +1,30 @@ #!/bin/sh +CACHE=$HOME/.dmenu_cache +UPTODATE=1 IFS=: -for dir in $PATH -do - for file in "$dir"/* + +if test ! -f $CACHE +then + unset UPTODATE +fi + +if test $UPTODATE +then + for dir in $PATH do - test -x "$file" && echo "${file##*/}" + test $dir -nt $CACHE && unset UPTODATE done -done | sort | uniq +fi + +if test ! $UPTODATE +then + for dir in $PATH + do + for file in "$dir"/* + do + test -x "$file" && echo "${file##*/}" + done + done | sort | uniq > $CACHE +fi + +cat $CACHE -- 2.20.1 From 5a3dfb1c40a58647cd55147cc93fec9811a0a6a1 Mon Sep 17 00:00:00 2001 From: "Anselm R. Garbe" Date: Tue, 15 May 2007 13:44:41 +0200 Subject: [PATCH 15/16] removed strip, added -s to LDFLAGs --- Makefile | 1 - config.mk | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 6b273cb..35e30f5 100644 --- a/Makefile +++ b/Makefile @@ -23,7 +23,6 @@ ${OBJ}: dmenu.h config.mk dmenu: ${OBJ} @echo CC -o $@ @${CC} -o $@ ${OBJ} ${LDFLAGS} - @strip $@ clean: @echo cleaning diff --git a/config.mk b/config.mk index ce5daab..18565ea 100644 --- a/config.mk +++ b/config.mk @@ -16,7 +16,7 @@ LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 # flags CFLAGS = -Os ${INCS} -DVERSION=\"${VERSION}\" -LDFLAGS = ${LIBS} +LDFLAGS = -s ${LIBS} #CFLAGS = -g -Wall -O2 ${INCS} -DVERSION=\"${VERSION}\" #LDFLAGS = -g ${LIBS} -- 2.20.1 From 64697cdd0c25ee19413a57d723c1bcaff883f122 Mon Sep 17 00:00:00 2001 From: "Anselm R. Garbe" Date: Mon, 21 May 2007 14:36:03 +0200 Subject: [PATCH 16/16] Added tag 3.1 for changeset 8f0f917ac988 --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index 3c55db9..6e74b75 100644 --- a/.hgtags +++ b/.hgtags @@ -30,3 +30,4 @@ b6e09682c8adcb6569656bee73c311f9ab457715 2.3 fbd9e9d63f202afe6834ccfdf890904f1897ec0b 2.7 dd3d02b07cac44fbafc074a361c1002cebe7aae4 2.8 59b3024854db49739c6d237fa9077f04a2da847a 3.0 +8f0f917ac988164e1b4446236e3a6ab6cfcb8c67 3.1 -- 2.20.1