From d42c8bee898ed3ac586ab4c9800738282923c16c Mon Sep 17 00:00:00 2001 From: Jindrich Novy Date: Nov 08 2005 12:52:55 +0000 Subject: - add vertical scrollbars to main panels and listboxes - fix memleak in menu.c caused by UTF-8 patch - display UTF-8 characters corectly in mcview (#172571) - fix extensions patch --- diff --git a/mc-extensions.patch b/mc-extensions.patch index 43f04ee..ff532e2 100644 --- a/mc-extensions.patch +++ b/mc-extensions.patch @@ -1,6 +1,6 @@ ---- mc-4.6.1/lib/mc.ext.in.extensions 2005-07-23 18:51:15.000000000 +0200 -+++ mc-4.6.1/lib/mc.ext.in 2005-08-17 10:30:06.000000000 +0200 -@@ -210,14 +210,25 @@ +--- mc-4.6.1a/lib/mc.ext.in.extensions 2005-09-06 11:20:01.000000000 +0200 ++++ mc-4.6.1a/lib/mc.ext.in 2005-11-05 11:51:46.000000000 +0100 +@@ -216,14 +216,25 @@ shell/.7z # C shell/.c @@ -28,7 +28,7 @@ Open=%var{EDITOR:vi} %f # Object -@@ -242,9 +253,11 @@ +@@ -248,9 +259,11 @@ regex/\.(te?xi|texinfo)$ # GNU Info page type/^Info\ text Open=info -f %f @@ -40,7 +40,7 @@ # Manual page # Exception - .so libraries are not manual pages -@@ -313,6 +326,12 @@ +@@ -319,6 +332,12 @@ type/^PPM type/^Netpbm Include=image @@ -53,7 +53,7 @@ shell/.xcf Open=gimp %f -@@ -324,7 +343,7 @@ +@@ -330,7 +349,7 @@ shell/.xpm View=sxpm %f include/image @@ -62,7 +62,7 @@ View=%view{ascii} identify %f #View=%view{ascii} asciiview %f -@@ -342,8 +361,12 @@ +@@ -348,8 +367,12 @@ regex/\.([wW][aA][wW]22)$ Open=vplay -s 22 %f regex/\.([mM][pP]3)$ @@ -77,7 +77,7 @@ regex/\.([oO][gG][gG])$ Open=if [ "$DISPLAY" = "" ]; then ogg123 %f; else (xmms %f &); fi -@@ -356,6 +379,9 @@ +@@ -362,6 +385,9 @@ regex/\.([wW][mM][aA])$ Open=mplayer -vo null %f View=%view{ascii} mplayer -quiet -slave -frames 0 -vo null -ao null -identify %f 2>/dev/null | tail +13 || file %f @@ -87,7 +87,7 @@ ### Play lists ### -@@ -380,20 +406,28 @@ +@@ -386,20 +412,27 @@ regex/\.([mM][oO][vV]|[qQ][tT])$ regex/\.([mM][pP]4|[mM][pP][eE]?[gG])$ Include=video @@ -107,8 +107,8 @@ Include=video regex/\.([rR][aA]?[mM])$ - Open=(realplay %f >/dev/null 2>&1 &) -+ View=%view{ascii} mplayer -identify -vo null -ao null -frames 0 %f 2>&1 | sed -n '/^ID_/p' +- Open=(realplay %f >/dev/null 2>&1 &) ++ Include=video include/video Open=(mplayer %f >/dev/null 2>&1 &) @@ -116,7 +116,7 @@ #Open=(gtv %f >/dev/null 2>&1 &) #Open=(xanim %f >/dev/null 2>&1 &) -@@ -407,7 +441,8 @@ +@@ -413,7 +446,8 @@ type/^PostScript # PDF type/^PDF @@ -126,7 +126,7 @@ #Open=(acroread %f &) #Open=(ghostview %f &) View=%view{ascii} pdftotext %f - -@@ -418,7 +453,7 @@ +@@ -424,7 +458,7 @@ type/^PDF # html regex/\.([hH][tT][mM][lL]?)$ Open=(if test -n "@X11_WWW@" && test -n "$DISPLAY"; then (@X11_WWW@ file://%d/%p &) 1>&2; else links %f || lynx -force_html %f || ${PAGER:-more} %f; fi) 2>/dev/null diff --git a/mc-utf8-look-and-feel.patch b/mc-utf8-look-and-feel.patch new file mode 100644 index 0000000..cb569c0 --- /dev/null +++ b/mc-utf8-look-and-feel.patch @@ -0,0 +1,153 @@ +--- mc-4.6.1a/src/widget.c.laf 2005-11-06 08:49:25.000000000 +0100 ++++ mc-4.6.1a/src/widget.c 2005-11-06 16:06:21.000000000 +0100 +@@ -1948,52 +1948,74 @@ input_new (int y, int x, int color, int + return in; + } + +- +-/* Listbox widget */ +- +-/* Should draw the scrollbar, but currently draws only +- * indications that there is more information +- */ +-static int listbox_cdiff (WLEntry *s, WLEntry *e); ++/* Vertical scrollbar widget */ + +-static void +-listbox_drawscroll (WListbox *l) ++void ++vscrollbar (Widget widget, int height, int width, int tpad, int bpad, ++ int selected, int count, gboolean color) + { + int line; +- int i, top; +- int max_line = l->height-1; +- ++ int i; ++ + /* Are we at the top? */ +- widget_move (&l->widget, 0, l->width); +- if (l->list == l->top) +- one_vline (); ++ widget_move (&widget, tpad, width); ++#ifndef UTF8 ++ if (!selected) ++ one_vline (); + else +- addch ('^'); ++ addch ('^'); ++#else ++ if (color) attrset (MARKED_COLOR); ++ SLsmg_write_string("▲"); ++ if (color) attrset (NORMAL_COLOR); ++#endif + + /* Are we at the bottom? */ +- widget_move (&l->widget, max_line, l->width); +- top = listbox_cdiff (l->list, l->top); +- if ((top + l->height == l->count) || l->height >= l->count) +- one_vline (); ++ widget_move (&widget, height-1-bpad, width); ++#ifndef UTF8 ++ if (selected == count-1) ++ one_vline (); + else +- addch ('v'); ++ addch ('v'); ++#else ++ if (color) attrset (MARKED_COLOR); ++ SLsmg_write_string("▼"); ++ if (color) attrset (NORMAL_COLOR); ++#endif + + /* Now draw the nice relative pointer */ +- if (l->count) +- line = 1+ ((l->pos * (l->height-2)) / l->count); ++ if (count > 1) ++ line = tpad + 1 + ((selected * (height-3-tpad-bpad)) / (count-1)); + else +- line = 0; +- +- for (i = 1; i < max_line; i++){ +- widget_move (&l->widget, i, l->width); +- if (i != line) +- one_vline (); +- else +- addch ('*'); ++ line = 0; ++ ++ for (i = tpad + 1; i < height-1-bpad; i++){ ++ widget_move (&widget, i, width); ++ if (i != line) ++#ifndef UTF8 ++ one_vline (); ++ else ++ addch ('*'); ++#else ++ SLsmg_write_string("▒"); ++ else { ++ if (color) attrset (MARKED_COLOR); ++ SLsmg_write_string("◌"); ++ if (color) attrset (NORMAL_COLOR); ++ } ++#endif + } + } +- +-static void ++ ++ ++/* Listbox widget */ ++ ++/* Should draw the scrollbar, but currently draws only ++ * indications that there is more information ++ */ ++static int listbox_cdiff (WLEntry *s, WLEntry *e); ++ ++void + listbox_draw (WListbox *l, int focused) + { + WLEntry *e; +@@ -2034,7 +2056,7 @@ listbox_draw (WListbox *l, int focused) + if (!l->scrollbar) + return; + attrset (normalc); +- listbox_drawscroll (l); ++ vscrollbar (l->widget, l->height, l->width, 0, 0, l->pos, l->count, FALSE); + } + + /* Returns the number of items between s and e, +--- mc-4.6.1a/src/screen.c.laf 2005-11-06 08:49:25.000000000 +0100 ++++ mc-4.6.1a/src/screen.c 2005-11-06 16:04:59.000000000 +0100 +@@ -887,6 +887,9 @@ show_dir (WPanel *panel) + } + #endif /* HAVE_SLANG */ + ++ vscrollbar (panel->widget, panel->widget.lines, panel->widget.cols-1, 2, 2, ++ panel->selected, panel->count, TRUE); ++ + if (panel->active) + attrset (REVERSE_COLOR); + +@@ -1503,7 +1506,7 @@ use_display_format (WPanel *panel, const + panel->dirty = 1; + + /* Status needn't to be split */ +- usable_columns = ((panel->widget.cols-2)/((isstatus) ++ usable_columns = ((panel->widget.cols-3)/((isstatus) + ? 1 + : (panel->split+1))) - (!isstatus && panel->split); + +--- mc-4.6.1a/src/widget.h.laf 2005-11-06 08:49:25.000000000 +0100 ++++ mc-4.6.1a/src/widget.h 2005-11-06 15:53:45.000000000 +0100 +@@ -170,6 +170,10 @@ void button_set_text (WButton *b, const + /* Listbox manager */ + WLEntry *listbox_get_data (WListbox *l, int pos); + ++/* Vertical scrollbar */ ++void vscrollbar (Widget widget, int height, int width, int tpad, int bpad, ++ int selected, int count, gboolean color); ++ + /* search text int listbox entries */ + WLEntry *listbox_search_text (WListbox *l, const char *text); + void listbox_select_entry (WListbox *l, WLEntry *dest); diff --git a/mc-utf8.patch b/mc-utf8.patch index 9709810..4b55757 100644 --- a/mc-utf8.patch +++ b/mc-utf8.patch @@ -1,5 +1,5 @@ --- mc-4.6.1a/acinclude.m4.utf8 2005-09-28 23:49:06.000000000 +0200 -+++ mc-4.6.1a/acinclude.m4 2005-10-17 14:34:41.000000000 +0200 ++++ mc-4.6.1a/acinclude.m4 2005-11-08 11:07:36.000000000 +0100 @@ -768,14 +768,14 @@ AC_DEFUN([MC_WITH_SLANG], [ fi @@ -24,7 +24,7 @@ if test x$with_screen = xslang; then AC_DEFINE(HAVE_SYSTEM_SLANG, 1, --- mc-4.6.1a/src/layout.c.utf8 2005-09-05 03:40:45.000000000 +0200 -+++ mc-4.6.1a/src/layout.c 2005-10-17 14:34:41.000000000 +0200 ++++ mc-4.6.1a/src/layout.c 2005-11-08 11:07:36.000000000 +0100 @@ -369,36 +369,36 @@ init_layout (void) while (i--) { @@ -99,7 +99,7 @@ widget_set_size (&the_menubar->widget, 0, 0, 1, COLS); --- mc-4.6.1a/src/tty.c.utf8 2005-09-05 05:05:39.000000000 +0200 -+++ mc-4.6.1a/src/tty.c 2005-10-17 14:34:41.000000000 +0200 ++++ mc-4.6.1a/src/tty.c 2005-11-08 11:07:36.000000000 +0100 @@ -123,10 +123,12 @@ tty_print_char(int c) * defined or not. Congratulations! At least, they left the API call * for SLsmg_write_nchars as it has always been. @@ -118,7 +118,7 @@ addch(c); #endif --- mc-4.6.1a/src/option.c.utf8 2005-05-27 05:35:15.000000000 +0200 -+++ mc-4.6.1a/src/option.c 2005-10-17 14:34:41.000000000 +0200 ++++ mc-4.6.1a/src/option.c 2005-11-08 11:07:36.000000000 +0100 @@ -123,12 +123,12 @@ init_configure (void) title2 = _(" Pause after run... "); title3 = _(" Other options "); @@ -167,7 +167,7 @@ i18n_config_flag = 1; } --- mc-4.6.1a/src/menu.h.utf8 2004-12-03 20:17:47.000000000 +0100 -+++ mc-4.6.1a/src/menu.h 2005-10-17 14:34:41.000000000 +0200 ++++ mc-4.6.1a/src/menu.h 2005-11-08 11:07:36.000000000 +0100 @@ -21,6 +21,8 @@ typedef struct Menu { menu_entry *entries; int start_x; /* position relative to menubar start */ @@ -178,7 +178,7 @@ extern int menubar_visible; --- mc-4.6.1a/src/menu.c.utf8 2005-09-05 04:12:09.000000000 +0200 -+++ mc-4.6.1a/src/menu.c 2005-10-17 14:34:41.000000000 +0200 ++++ mc-4.6.1a/src/menu.c 2005-11-08 11:07:36.000000000 +0100 @@ -22,6 +22,7 @@ #include @@ -187,7 +187,7 @@ #include "global.h" #include "tty.h" -@@ -53,33 +54,95 @@ create_menu (const char *name, menu_entr +@@ -53,35 +54,95 @@ create_menu (const char *name, menu_entr { Menu *menu; const char *cp; @@ -248,6 +248,8 @@ } } +- menu->name = g_strdup (name); +- menu_scan_hotkey(menu); +#ifdef UTF8 + if (wlen) { + wchar_t *wp; @@ -284,10 +286,10 @@ + } +#endif + - menu->name = g_strdup (name); - menu_scan_hotkey(menu); menu->start_x = 0; -@@ -112,8 +175,26 @@ static void menubar_paint_idx (WMenu *me + menu->help_node = g_strdup (help_node); + return menu; +@@ -112,8 +173,26 @@ static void menubar_paint_idx (WMenu *me const char *text; addch((unsigned char)menu->entries [idx].first_letter); @@ -316,7 +318,7 @@ if (*text != '&') addch(*text); else { -@@ -122,7 +203,7 @@ static void menubar_paint_idx (WMenu *me +@@ -122,7 +201,7 @@ static void menubar_paint_idx (WMenu *me addch(*(++text)); attrset(color); } @@ -325,7 +327,7 @@ } widget_move (&menubar->widget, y, x + 1); } -@@ -168,6 +249,12 @@ static void menubar_draw (WMenu *menubar +@@ -168,6 +247,12 @@ static void menubar_draw (WMenu *menubar if (menubar->active) attrset(i == menubar->selected?MENU_SELECTED_COLOR:SELECTED_COLOR); widget_move (&menubar->widget, 0, menubar->menu [i]->start_x); @@ -338,7 +340,7 @@ tty_printf ("%s", menubar->menu [i]->name); } -@@ -493,7 +580,13 @@ menubar_arrange(WMenu* menubar) +@@ -493,7 +578,13 @@ menubar_arrange(WMenu* menubar) for (i = 0; i < items; i++) { @@ -353,7 +355,7 @@ menubar->menu[i]->start_x = start_x; start_x += len + gap; } -@@ -506,7 +599,13 @@ menubar_arrange(WMenu* menubar) +@@ -506,7 +597,13 @@ menubar_arrange(WMenu* menubar) for (i = 0; i < items; i++) { /* preserve length here, to be used below */ @@ -368,7 +370,7 @@ } gap /= (items - 1); -@@ -530,6 +629,9 @@ menubar_arrange(WMenu* menubar) +@@ -530,6 +627,9 @@ menubar_arrange(WMenu* menubar) void destroy_menu (Menu *menu) { @@ -379,7 +381,7 @@ g_free (menu->help_node); g_free (menu); --- mc-4.6.1a/src/filegui.c.utf8 2005-05-27 05:35:15.000000000 +0200 -+++ mc-4.6.1a/src/filegui.c 2005-10-17 14:34:41.000000000 +0200 ++++ mc-4.6.1a/src/filegui.c 2005-11-08 11:07:36.000000000 +0100 @@ -65,6 +65,7 @@ #include "filegui.h" #include "key.h" /* get_event */ @@ -526,7 +528,7 @@ return dest_dir; } --- mc-4.6.1a/src/panelize.c.utf8 2005-05-27 05:35:15.000000000 +0200 -+++ mc-4.6.1a/src/panelize.c 2005-10-17 14:34:41.000000000 +0200 ++++ mc-4.6.1a/src/panelize.c 2005-11-08 11:07:36.000000000 +0100 @@ -127,7 +127,7 @@ init_panelize (void) i = sizeof (panelize_but) / sizeof (panelize_but[0]); while (i--) { @@ -552,7 +554,7 @@ #endif /* ENABLE_NLS */ --- mc-4.6.1a/src/main.c.utf8 2005-09-06 13:38:45.000000000 +0200 -+++ mc-4.6.1a/src/main.c 2005-10-17 14:34:41.000000000 +0200 ++++ mc-4.6.1a/src/main.c 2005-11-08 11:07:36.000000000 +0100 @@ -697,7 +697,7 @@ load_prompt (int fd, void *unused) int prompt_len; @@ -575,7 +577,7 @@ } while (*++s); fprintf (stdout, "\33]0;mc - %s\7", p); --- mc-4.6.1a/src/view.c.utf8 2005-10-04 23:07:20.000000000 +0200 -+++ mc-4.6.1a/src/view.c 2005-10-17 14:34:41.000000000 +0200 ++++ mc-4.6.1a/src/view.c 2005-11-08 11:34:03.000000000 +0100 @@ -43,6 +43,10 @@ #include #include @@ -687,8 +689,26 @@ int c_prev; int c_next; +@@ -1956,10 +2013,17 @@ view_display_text (WView * view) + if (col >= view->dpy_text_column + && col - view->dpy_text_column < width) { + widget_move (view, top + row, left + (col - view->dpy_text_column)); ++#ifndef UTF8 + c = convert_to_display_c (c); + if (!is_printable (c)) + c = '.'; + tty_print_char (c); ++#else ++ wc = convert_to_display_c (wc); ++ if (!is_printable (wc)) ++ wc = '.'; ++ tty_print_char (wc); ++#endif + } + col++; + attrset (NORMAL_COLOR); --- mc-4.6.1a/src/screen.c.utf8 2005-10-04 01:37:51.000000000 +0200 -+++ mc-4.6.1a/src/screen.c 2005-10-17 14:34:41.000000000 +0200 ++++ mc-4.6.1a/src/screen.c 2005-11-08 11:07:36.000000000 +0100 @@ -171,21 +171,56 @@ add_permission_string (char *dest, int w static const char * string_file_name (file_entry *fe, int len) @@ -1054,7 +1074,7 @@ attrset (NORMAL_COLOR); one_vline (); --- mc-4.6.1a/src/widget.h.utf8 2005-06-14 15:02:31.000000000 +0200 -+++ mc-4.6.1a/src/widget.h 2005-10-17 14:34:41.000000000 +0200 ++++ mc-4.6.1a/src/widget.h 2005-11-08 11:07:36.000000000 +0100 @@ -22,6 +22,7 @@ typedef struct WButton { char *text; /* text of button */ int hotkey; /* hot KEY */ @@ -1098,7 +1118,7 @@ int need_push; /* need to push the current Input on hist? */ char **completions; /* Possible completions array */ --- mc-4.6.1a/src/tty.h.utf8 2005-09-05 04:14:29.000000000 +0200 -+++ mc-4.6.1a/src/tty.h 2005-10-17 14:34:41.000000000 +0200 ++++ mc-4.6.1a/src/tty.h 2005-11-08 11:07:36.000000000 +0100 @@ -8,6 +8,8 @@ of ifdefs in the other files small. */ @@ -1109,7 +1129,7 @@ # include "myslang.h" #endif --- mc-4.6.1a/src/hotlist.c.utf8 2005-05-27 05:35:15.000000000 +0200 -+++ mc-4.6.1a/src/hotlist.c 2005-10-17 14:34:41.000000000 +0200 ++++ mc-4.6.1a/src/hotlist.c 2005-11-08 11:07:36.000000000 +0100 @@ -555,7 +555,7 @@ init_i18n_stuff(int list_type, int cols) row = hotlist_but [i].y; @@ -1171,7 +1191,7 @@ strip_password (label_string, 1); --- mc-4.6.1a/src/help.c.utf8 2005-07-22 11:29:50.000000000 +0200 -+++ mc-4.6.1a/src/help.c 2005-10-17 14:34:41.000000000 +0200 ++++ mc-4.6.1a/src/help.c 2005-11-08 11:07:36.000000000 +0100 @@ -449,10 +449,28 @@ static void help_show (Dlg_head *h, cons #ifndef HAVE_SLANG addch (acs_map [c]); @@ -1215,7 +1235,7 @@ if (!filename) g_free (hlpfile); --- mc-4.6.1a/src/wtools.c.utf8 2005-09-05 05:21:32.000000000 +0200 -+++ mc-4.6.1a/src/wtools.c 2005-10-17 14:34:41.000000000 +0200 ++++ mc-4.6.1a/src/wtools.c 2005-11-08 11:07:36.000000000 +0100 @@ -49,11 +49,11 @@ create_listbox_window (int cols, int lin /* Adjust sizes */ lines = (lines > LINES - 6) ? LINES - 6 : lines; @@ -1276,7 +1296,7 @@ #endif /* ENABLE_NLS */ --- mc-4.6.1a/src/util.h.utf8 2005-10-04 17:20:10.000000000 +0200 -+++ mc-4.6.1a/src/util.h 2005-10-17 14:34:41.000000000 +0200 ++++ mc-4.6.1a/src/util.h 2005-11-08 11:07:36.000000000 +0100 @@ -111,6 +111,13 @@ void init_uid_gid_cache (void); char *get_group (int); char *get_owner (int); @@ -1292,7 +1312,7 @@ #define MIN_I18NTIMELENGTH 10 #define STD_I18NTIMELENGTH 12 --- mc-4.6.1a/src/widget.c.utf8 2005-10-08 06:52:42.000000000 +0200 -+++ mc-4.6.1a/src/widget.c 2005-10-17 14:34:41.000000000 +0200 ++++ mc-4.6.1a/src/widget.c 2005-11-08 11:07:36.000000000 +0100 @@ -35,6 +35,9 @@ #include "global.h" @@ -2009,7 +2029,7 @@ } --- mc-4.6.1a/src/util.c.utf8 2005-10-04 17:20:10.000000000 +0200 -+++ mc-4.6.1a/src/util.c 2005-10-17 14:34:41.000000000 +0200 ++++ mc-4.6.1a/src/util.c 2005-11-08 11:07:36.000000000 +0100 @@ -33,7 +33,11 @@ #include #include @@ -2451,7 +2471,7 @@ *w = 0; return s; --- mc-4.6.1a/src/file.c.utf8 2005-09-17 13:45:13.000000000 +0200 -+++ mc-4.6.1a/src/file.c 2005-10-17 14:34:41.000000000 +0200 ++++ mc-4.6.1a/src/file.c 2005-11-08 11:07:36.000000000 +0100 @@ -164,15 +164,20 @@ static const char * do_transform_source (FileOpContext *ctx, const char *source) { @@ -2491,7 +2511,7 @@ } --- mc-4.6.1a/src/find.c.utf8 2005-07-07 21:34:56.000000000 +0200 -+++ mc-4.6.1a/src/find.c 2005-10-17 14:34:41.000000000 +0200 ++++ mc-4.6.1a/src/find.c 2005-11-08 11:07:36.000000000 +0100 @@ -217,7 +217,7 @@ find_parameters (char **start_dir, char int l1, maxlen = 0; @@ -2540,7 +2560,7 @@ list->list[next_free].f.marked = 0; list->list[next_free].f.link_to_dir = link_to_dir; --- mc-4.6.1a/src/myslang.h.utf8 2005-09-05 05:22:04.000000000 +0200 -+++ mc-4.6.1a/src/myslang.h 2005-10-17 14:34:41.000000000 +0200 ++++ mc-4.6.1a/src/myslang.h 2005-11-08 11:07:36.000000000 +0100 @@ -11,6 +11,10 @@ #endif /* HAVE_SLANG_SLANG_H */ #endif @@ -2553,7 +2573,7 @@ KEY_BACKSPACE = 400, KEY_END, KEY_UP, KEY_DOWN, KEY_LEFT, KEY_RIGHT, --- mc-4.6.1a/src/achown.c.utf8 2005-09-05 03:36:58.000000000 +0200 -+++ mc-4.6.1a/src/achown.c 2005-10-17 14:34:41.000000000 +0200 ++++ mc-4.6.1a/src/achown.c 2005-11-08 11:07:36.000000000 +0100 @@ -584,6 +584,12 @@ init_chown_advanced (void) b_att[2] = button_new (XTRACT (6)); b_user = button_new (XTRACT (5)); @@ -2568,7 +2588,7 @@ add_widget (ch_dlg, b_group); add_widget (ch_dlg, b_user); --- mc-4.6.1a/src/dialog.c.utf8 2005-09-05 05:20:27.000000000 +0200 -+++ mc-4.6.1a/src/dialog.c 2005-10-17 14:34:41.000000000 +0200 ++++ mc-4.6.1a/src/dialog.c 2005-11-08 11:07:36.000000000 +0100 @@ -166,7 +166,7 @@ common_dialog_repaint (struct Dlg_head * if (h->title) { @@ -2579,7 +2599,7 @@ } } --- mc-4.6.1a/src/boxes.c.utf8 2005-06-14 15:02:31.000000000 +0200 -+++ mc-4.6.1a/src/boxes.c 2005-10-17 14:34:41.000000000 +0200 ++++ mc-4.6.1a/src/boxes.c 2005-11-08 11:07:36.000000000 +0100 @@ -153,23 +153,23 @@ display_init (int radio_sel, char *init_ display_title = _(display_title); for (i = 0; i < LIST_TYPES; i++) { @@ -2753,7 +2773,7 @@ i18n_flag = 1; } --- mc-4.6.1a/src/learn.c.utf8 2005-05-27 05:35:15.000000000 +0200 -+++ mc-4.6.1a/src/learn.c 2005-10-17 14:34:41.000000000 +0200 ++++ mc-4.6.1a/src/learn.c 2005-11-08 11:07:36.000000000 +0100 @@ -237,7 +237,7 @@ init_learn (void) learn_but[0].x = 78 / 2 + 4; @@ -2764,7 +2784,7 @@ learn_title = _(learn_title); i18n_flag = 1; --- mc-4.6.1a/edit/edit-widget.h.utf8 2005-08-15 22:34:26.000000000 +0200 -+++ mc-4.6.1a/edit/edit-widget.h 2005-10-17 14:34:41.000000000 +0200 ++++ mc-4.6.1a/edit/edit-widget.h 2005-11-08 11:07:36.000000000 +0100 @@ -30,6 +30,11 @@ typedef struct edit_key_map_type { long command; } edit_key_map_type; @@ -2805,7 +2825,7 @@ unsigned long stack_size_mask; unsigned long stack_bottom; --- mc-4.6.1a/edit/editkeys.c.utf8 2005-08-10 18:47:44.000000000 +0200 -+++ mc-4.6.1a/edit/editkeys.c 2005-10-17 14:34:41.000000000 +0200 ++++ mc-4.6.1a/edit/editkeys.c 2005-11-08 11:07:36.000000000 +0100 @@ -181,10 +181,10 @@ static const edit_key_map_type common_ke * 'command' is one of the editor commands from editcmddef.h. */ @@ -2861,7 +2881,7 @@ return 0; } --- mc-4.6.1a/edit/editwidget.c.utf8 2005-09-07 10:54:12.000000000 +0200 -+++ mc-4.6.1a/edit/editwidget.c 2005-10-17 14:34:41.000000000 +0200 ++++ mc-4.6.1a/edit/editwidget.c 2005-11-08 11:07:36.000000000 +0100 @@ -344,7 +344,8 @@ edit_callback (Widget *w, widget_msg_t m case WIDGET_KEY: @@ -2873,7 +2893,7 @@ /* The user may override the access-keys for the menu bar. */ if (edit_translate_key (e, parm, &cmd, &ch)) { --- mc-4.6.1a/edit/editcmd.c.utf8 2005-10-04 23:15:06.000000000 +0200 -+++ mc-4.6.1a/edit/editcmd.c 2005-10-17 14:36:01.000000000 +0200 ++++ mc-4.6.1a/edit/editcmd.c 2005-11-08 11:07:36.000000000 +0100 @@ -61,7 +61,7 @@ #define edit_get_save_file(f,h) input_expand_dialog (h, _(" Enter file name: "), f) @@ -3958,7 +3978,7 @@ if (num_compl > 0) { /* insert completed word if there is only one match */ --- mc-4.6.1a/edit/wordproc.c.utf8 2005-05-27 05:35:12.000000000 +0200 -+++ mc-4.6.1a/edit/wordproc.c 2005-10-17 14:34:41.000000000 +0200 ++++ mc-4.6.1a/edit/wordproc.c 2005-11-08 11:07:36.000000000 +0100 @@ -40,7 +40,12 @@ #define tab_width option_tab_spacing @@ -4179,7 +4199,7 @@ return; } --- mc-4.6.1a/edit/edit.h.utf8 2005-09-07 10:54:12.000000000 +0200 -+++ mc-4.6.1a/edit/edit.h 2005-10-17 14:34:41.000000000 +0200 ++++ mc-4.6.1a/edit/edit.h 2005-11-08 11:07:36.000000000 +0100 @@ -25,6 +25,27 @@ #include @@ -4273,7 +4293,7 @@ #define get_sys_error(s) (s) --- mc-4.6.1a/edit/editdraw.c.utf8 2005-09-05 04:14:29.000000000 +0200 -+++ mc-4.6.1a/edit/editdraw.c 2005-10-17 14:34:41.000000000 +0200 ++++ mc-4.6.1a/edit/editdraw.c 2005-11-08 11:07:36.000000000 +0100 @@ -69,11 +69,16 @@ static void status_string (WEdit * edit, * as decimal and as hex. */ @@ -4493,7 +4513,7 @@ print_to_widget (edit, row, start_col, start_col_real, end_col, line); } --- mc-4.6.1a/edit/edit.c.utf8 2005-09-07 10:54:11.000000000 +0200 -+++ mc-4.6.1a/edit/edit.c 2005-10-17 14:34:41.000000000 +0200 ++++ mc-4.6.1a/edit/edit.c 2005-11-08 11:07:36.000000000 +0100 @@ -103,7 +103,7 @@ char *option_backup_ext = NULL; static void edit_move_to_prev_col (WEdit *edit, long p); static void user_menu (WEdit *edit); diff --git a/mc.spec b/mc.spec index b0066b2..d3e8a2e 100644 --- a/mc.spec +++ b/mc.spec @@ -1,7 +1,7 @@ Summary: User-friendly text console file manager and visual shell. Name: mc Version: 4.6.1a -Release: 0.20 +Release: 0.21 Epoch: 1 License: GPL Group: System Environment/Shells @@ -20,6 +20,7 @@ Patch4: mc-fish-upload.patch Patch5: mc-userhost.patch Patch6: mc-64bit.patch Patch7: mc-specsyntax.patch +Patch8: mc-utf8-look-and-feel.patch %description Midnight Commander is a visual shell much like a file manager, only @@ -39,6 +40,7 @@ poke into RPMs for specific files. %patch5 -p1 -b .userhost %patch6 -p1 -b .64bit %patch7 -p1 -b .specsyntax +%patch8 -p1 -b .laf # convert files in /lib to UTF-8 pushd lib @@ -175,6 +177,12 @@ rm -rf $RPM_BUILD_ROOT %dir %{_datadir}/mc %changelog +* Mon Nov 5 2005 Jindrich Novy 4.6.1a-0.21 +- add vertical scrollbars to main panels and listboxes +- fix memleak in menu.c caused by UTF-8 patch +- display UTF-8 characters corectly in mcview (#172571) +- fix extensions patch + * Tue Oct 25 2005 Jindrich Novy 4.6.1a-0.20 - don't display UTF-8 characters as questionmarks in xterm title (#170971)