diff --git a/gnome/ChangeLog b/gnome/ChangeLog index e036b4953..653760a69 100644 --- a/gnome/ChangeLog +++ b/gnome/ChangeLog @@ -1,3 +1,20 @@ +1998-05-22 Miguel de Icaza + + * gwidget.c (x_create_input): Disable the use of the GNOME entries + for now, as they are very slow. We need to figure out what is + wrong with this. + + With this change, dialog boxes close quickly instead of taking + ages to close. + + * gscreen.c, gdesktop.c (file_popup_add_context, file_popup): + Share the context menu code in gdesktop.c and gscreen.c. The + desktop pop up menus now include all of the stuff that would have + appeared in the Panel. + + * gdesktop.c (desktop_icon_remove): Remove the file associated + with this desktop entry if it is on the ~/desktop directory. + 1998-05-21 Miguel de Icaza * gscreen.c (load_dnd_icons): Remove the code and the icons that diff --git a/gnome/gdesktop.c b/gnome/gdesktop.c index 1e5a216fb..e7a4fa727 100644 --- a/gnome/gdesktop.c +++ b/gnome/gdesktop.c @@ -637,7 +637,7 @@ desktop_icon_remove (desktop_icon_t *di) /* a .destop file or a directory */ /* Remove the .desktop */ mc_unlink (di->dentry->location); - + if (strcmp (di->dentry->type, "Directory") == 0){ struct stat s; @@ -648,6 +648,9 @@ desktop_icon_remove (desktop_icon_t *di) if (!remove_directory (di->dentry->exec[0])) return; } + } else { + if (strncmp (di->dentry->exec [0], desktop_directory, strlen (desktop_directory)) == 0) + mc_unlink (di->dentry->exec [0]); } } desktop_release_desktop_icon_t (di); @@ -732,19 +735,17 @@ connect_drop_signals (GtkWidget *widget, desktop_icon_t *di) gtk_signal_connect (o, "drop_data_available_event", GTK_SIGNAL_FUNC (drop_cb), di); } -static void -dentry_execute (desktop_icon_t *di) +void +desktop_icon_execute (GtkWidget *ignored, desktop_icon_t *di) { - GnomeDesktopEntry *dentry = di->dentry; - /* Ultra lame-o execute. This should be replaced by the fixed regexp_command * invocation */ - if (strcmp (di->dentry->type, "Directory") == 0){ + if (strcmp (di->dentry->type, "Directory") == 0) new_panel_at (di->dentry->exec[0]); - } else - gnome_desktop_entry_launch (dentry); + else + gnome_desktop_entry_launch (di->dentry); } static void @@ -902,8 +903,8 @@ desktop_icon_make_draggable (desktop_icon_t *di) } /* Called by the pop up menu: removes the icon from the desktop */ -static void -icon_delete (GtkWidget *widget, desktop_icon_t *di) +void +desktop_icon_delete (GtkWidget *widget, desktop_icon_t *di) { desktop_icon_remove (di); } @@ -935,8 +936,11 @@ my_create_transparent_text_window (char *file, char *text) if (!w) return NULL; } +#if 0 + /* Useless, really, we need to use the WM hints */ gtk_signal_connect(GTK_OBJECT(w), "expose_event", lower_window, NULL); +#endif return w; } @@ -990,7 +994,7 @@ dentry_button_click (GtkWidget *widget, GdkEventButton *event, desktop_icon_t *d { if (event->button == 1){ if (event->type == GDK_2BUTTON_PRESS) - dentry_execute (di); + desktop_icon_execute (widget, di); return TRUE; } @@ -1029,8 +1033,8 @@ post_setup_desktop_icon (desktop_icon_t *di, int show) } /* Pops up the icon properties pages */ -static void -icon_properties (GtkWidget *widget, desktop_icon_t *di) +void +desktop_icon_properties (GtkWidget *widget, desktop_icon_t *di) { int retval; @@ -1072,6 +1076,8 @@ desktop_icon_context_popup (GdkEventButton *event, desktop_icon_t *di) * the menu at the proper time. */ + file_popup (event, NULL, di, 0, di->dentry->exec [0]); +#if 0 item = gtk_menu_item_new_with_label (_("Properties")); gtk_signal_connect (GTK_OBJECT (item), "activate", GTK_SIGNAL_FUNC (icon_properties), di); gtk_signal_connect_object_after (GTK_OBJECT (item), "activate", @@ -1087,6 +1093,7 @@ desktop_icon_context_popup (GdkEventButton *event, desktop_icon_t *di) gtk_widget_show (item); gtk_menu_popup (GTK_MENU (menu), NULL, NULL, 0, NULL, 3, event->time); +#endif } char *root_drop_types [] = { diff --git a/gnome/gdesktop.h b/gnome/gdesktop.h index 93403142f..e142f2be6 100644 --- a/gnome/gdesktop.h +++ b/gnome/gdesktop.h @@ -50,6 +50,14 @@ void artificial_drag_start (GdkWindow *source_window, int x, int y); void start_desktop (void); void stop_desktop (void); +/* These get invoked by the context sensitive popup menu in gscreen.c */ +void desktop_icon_properties (GtkWidget *widget, desktop_icon_t *di); +void desktop_icon_execute (GtkWidget *widget, desktop_icon_t *di); +void desktop_icon_delete (GtkWidget *widget, desktop_icon_t *di); + +/* Pops up the context sensitive menu for a WPanel or a desktop_icon_t */ +void file_popup (GdkEventButton *event, void *WPanel_pointer, void *desktop_icon_t_pointer, int row, char *filename); + extern int icons_snap_to_grid; #endif diff --git a/gnome/gscreen.c b/gnome/gscreen.c index 75e0c5ee5..1c8b1321d 100644 --- a/gnome/gscreen.c +++ b/gnome/gscreen.c @@ -69,7 +69,7 @@ GtkWidget *drag_directory_ok = NULL; GtkWidget *drag_multiple = NULL; GtkWidget *drag_multiple_ok = NULL; -typedef void (*context_menu_callback)(GtkWidget *, WPanel *); +typedef void (*context_menu_callback)(GtkWidget *, void *); /* * Flags for the context-sensitive popup menus @@ -79,6 +79,8 @@ typedef void (*context_menu_callback)(GtkWidget *, WPanel *); #define F_SYMLINK 4 #define F_SINGLE 8 #define F_NOTDIR 16 +#define F_DICON 32 /* Only applies to desktop_icon_t */ +#define F_PANEL 64 /* Only applies to WPanel */ static void panel_file_list_configure_contents (GtkWidget *file_list, WPanel *panel, int main_width, int height); @@ -509,37 +511,50 @@ static struct { int flags; context_menu_callback callback; } file_actions [] = { - { N_("Properties"), F_SINGLE, panel_action_properties }, - { "", F_SINGLE, NULL }, - { N_("Open"), F_ALL, panel_action_open }, - { N_("Open with"), F_ALL, panel_action_open_with }, - { N_("View"), F_NOTDIR, panel_action_view }, - { N_("View unfiltered"), F_NOTDIR, panel_action_view_unfiltered }, - { "", 0, NULL }, - { N_("Link..."), F_REGULAR | F_SINGLE, (context_menu_callback) link_cmd }, - { N_("Symlink..."), F_SINGLE, (context_menu_callback) symlink_cmd }, - { N_("Edit symlink..."), F_SYMLINK, (context_menu_callback) edit_symlink_cmd }, + { N_("Properties"), F_SINGLE | F_PANEL, (context_menu_callback) panel_action_properties }, + { N_("Properties"), F_SINGLE | F_DICON, (context_menu_callback) desktop_icon_properties }, + { "", F_SINGLE, NULL }, + { N_("Open"), F_PANEL | F_ALL, (context_menu_callback) panel_action_open }, + { N_("Open"), F_DICON | F_ALL, (context_menu_callback) desktop_icon_execute }, + { N_("Open with"), F_PANEL | F_ALL, (context_menu_callback) panel_action_open_with }, + { N_("View"), F_PANEL | F_NOTDIR, (context_menu_callback) panel_action_view }, + { N_("View unfiltered"), F_PANEL | F_NOTDIR, (context_menu_callback) panel_action_view_unfiltered }, + { "", 0, NULL }, + { N_("Link..."), F_PANEL | F_REGULAR | F_SINGLE, (context_menu_callback) link_cmd }, + { N_("Symlink..."), F_PANEL | F_SINGLE, (context_menu_callback) symlink_cmd }, + { N_("Edit symlink..."), F_PANEL | F_SYMLINK, (context_menu_callback) edit_symlink_cmd }, { NULL, 0, NULL }, }; -/* - * context menu, constant entries */ -static struct { +typedef struct { char *text; context_menu_callback callback; -} common_actions [] = { +} common_menu_t; + +/* + * context menu, constant entries + */ +common_menu_t common_panel_actions [] = { { N_("Copy..."), (context_menu_callback) copy_cmd }, { N_("Rename/move.."), (context_menu_callback) ren_cmd }, { N_("Delete..."), (context_menu_callback) delete_cmd }, { NULL, NULL } }; +common_menu_t common_dicon_actions [] = { + { N_("Delete"), (context_menu_callback) desktop_icon_delete }, + { NULL, NULL } +}; + static GtkWidget * -create_popup_submenu (WPanel *panel, int row, char *filename) +create_popup_submenu (WPanel *panel, desktop_icon_t *di, int row, char *filename) { static int submenu_translated; GtkWidget *menu; int i; + void *closure; + + closure = (panel != 0 ? (void *) panel : (void *)di); if (!submenu_translated){ /* FIXME translate it */ @@ -550,17 +565,24 @@ create_popup_submenu (WPanel *panel, int row, char *filename) for (i = 0; file_actions [i].text; i++){ GtkWidget *item; + /* First, try F_PANEL and F_DICON flags */ + if (di && (file_actions [i].flags & F_PANEL)) + continue; + + if (panel && (file_actions [i].flags & F_DICON)) + continue; + /* Items with F_ALL bypass any other condition */ if (!(file_actions [i].flags & F_ALL)){ /* Items with F_SINGLE require that ONLY ONE marked files exist */ - if (file_actions [i].flags & F_SINGLE){ + if (panel && file_actions [i].flags & F_SINGLE){ if (panel->marked > 1) continue; } /* Items with F_NOTDIR requiere that the selection is not a directory */ - if (file_actions [i].flags & F_NOTDIR){ + if (panel && file_actions [i].flags & F_NOTDIR){ struct stat *s = &panel->dir.list [row].buf; if (panel->dir.list [row].f.link_to_dir) @@ -571,7 +593,7 @@ create_popup_submenu (WPanel *panel, int row, char *filename) } /* Items with F_REGULAR do not accept any strange file types */ - if (file_actions [i].flags & F_REGULAR){ + if (panel && file_actions [i].flags & F_REGULAR){ struct stat *s = &panel->dir.list [row].buf; if (S_ISLNK (panel->dir.list [row].f.link_to_dir)) @@ -582,7 +604,7 @@ create_popup_submenu (WPanel *panel, int row, char *filename) } /* Items with F_SYMLINK only operate on symbolic links */ - if (file_actions [i].flags & F_SYMLINK){ + if (panel && file_actions [i].flags & F_SYMLINK){ if (!S_ISLNK (panel->dir.list [row].buf.st_mode)) continue; } @@ -595,7 +617,7 @@ create_popup_submenu (WPanel *panel, int row, char *filename) gtk_widget_show (item); if (file_actions [i].callback){ gtk_signal_connect (GTK_OBJECT (item), "activate", - GTK_SIGNAL_FUNC(file_actions [i].callback), panel); + GTK_SIGNAL_FUNC(file_actions [i].callback), closure); } gtk_menu_append (GTK_MENU (menu), item); @@ -624,19 +646,45 @@ popup_activate_by_string (GtkMenuItem *item, WPanel *panel) } static void -file_popup_add_context (GtkMenu *menu, WPanel *panel, char *filename) +popup_activate_desktop_icon (GtkMenuItem *item, char *filename) +{ + char *action; + int movedir; + + action = GTK_LABEL (GTK_BIN (item)->child)->label; + + regex_command (filename, action, NULL, &movedir); +} + +static void +file_popup_add_context (GtkMenu *menu, WPanel *panel, desktop_icon_t *di, char *filename) { GtkWidget *item; char *p, *q; int c, i; - - for (i = 0; common_actions [i].text; i++){ + void *closure, *regex_closure; + common_menu_t *menu_p; + GtkSignalFunc regex_func; + + if (panel){ + menu_p = common_panel_actions; + closure = panel; + regex_func = GTK_SIGNAL_FUNC (popup_activate_by_string); + regex_closure = panel; + } else { + menu_p = common_dicon_actions; + closure = di; + regex_func = GTK_SIGNAL_FUNC (popup_activate_desktop_icon); + regex_closure = di->dentry->exec [0]; + } + + for (i = 0; menu_p [i].text; i++){ GtkWidget *item; - item = gtk_menu_item_new_with_label (_(common_actions [i].text)); + item = gtk_menu_item_new_with_label (_(menu_p [i].text)); gtk_widget_show (item); gtk_signal_connect (GTK_OBJECT (item), "activate", - GTK_SIGNAL_FUNC (common_actions [i].callback), panel); + GTK_SIGNAL_FUNC (menu_p [i].callback), closure); gtk_menu_append (GTK_MENU (menu), item); } @@ -661,8 +709,8 @@ file_popup_add_context (GtkMenu *menu, WPanel *panel, char *filename) item = gtk_menu_item_new_with_label (p); gtk_widget_show (item); - gtk_signal_connect (GTK_OBJECT(item), "activate", - GTK_SIGNAL_FUNC(popup_activate_by_string), panel); + + gtk_signal_connect (GTK_OBJECT(item), "activate", regex_func, regex_closure); gtk_menu_append (menu, item); if (!c) break; @@ -670,23 +718,41 @@ file_popup_add_context (GtkMenu *menu, WPanel *panel, char *filename) } } -static void -file_popup (GdkEvent *event, WPanel *panel, int row, char *filename) +/* + * Create a context menu + * It can take either a WPanel or a GnomeDesktopEntry. One of them should + * be set to NULL. + */ +void +file_popup (GdkEventButton *event, void *WPanel_pointer, void *desktop_icon_t_pointer, int row, char *filename) { GtkWidget *menu = gtk_menu_new (); GtkWidget *submenu; GtkWidget *item; - - item = gtk_menu_item_new_with_label ( (panel->marked > 1)?"...":filename ); - gtk_widget_show (item); - gtk_menu_append (GTK_MENU (menu), item); + WPanel *panel = WPanel_pointer; + desktop_icon_t *di = desktop_icon_t_pointer; + char *str; + + g_return_if_fail (((panel != NULL) ^ (di != NULL))); - submenu = create_popup_submenu (panel, row, filename); - gtk_menu_item_set_submenu (GTK_MENU_ITEM (item), submenu); + if (panel) + str = (panel->marked > 1) ? "..." : filename; + else + str = filename; - file_popup_add_context (GTK_MENU (menu), panel, filename); + if (panel){ + item = gtk_menu_item_new_with_label (str); + gtk_widget_show (item); + gtk_menu_append (GTK_MENU (menu), item); - gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, 3, event->button.time); + submenu = create_popup_submenu (panel, di, row, filename); + gtk_menu_item_set_submenu (GTK_MENU_ITEM (item), submenu); + } else + menu = create_popup_submenu (panel, di, row, filename); + + file_popup_add_context (GTK_MENU (menu), panel, di, filename); + + gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, 3, event->time); } static void @@ -728,7 +794,7 @@ panel_file_list_select_row (GtkWidget *file_list, int row, int column, GdkEvent break; case 3: - file_popup (event, panel, row, panel->dir.list[row].fname); + file_popup (&event->button, panel, NULL, row, panel->dir.list[row].fname); break; } @@ -1172,7 +1238,7 @@ panel_icon_list_select_icon (GtkWidget *widget, int index, GdkEvent *event, WPan switch (event->type){ case GDK_BUTTON_PRESS: if (event->button.button == 3){ - file_popup (event, panel, index, panel->dir.list [index].fname); + file_popup (&event->button, panel, NULL, index, panel->dir.list [index].fname); return; } break; @@ -1891,3 +1957,6 @@ x_panel_destroy (WPanel *panel) { gtk_widget_destroy (GTK_WIDGET (panel->xwindow)); } + + + diff --git a/gnome/gwidget.c b/gnome/gwidget.c index cb096311d..e2eb17857 100644 --- a/gnome/gwidget.c +++ b/gnome/gwidget.c @@ -269,13 +269,18 @@ x_create_input (Dlg_head *h, widget_data parent, WInput *in) */ if (in->widget.wdata) return 1; - + +#ifdef USE_GNOME_ENTRY gnome_entry = gnome_entry_new (in->widget.tkname); +#else + entry = GTK_ENTRY (gnome_entry = gtk_entry_new ()); +#endif gtk_widget_show (gnome_entry); in->widget.wdata = (widget_data) gnome_entry; +#ifdef USE_GNOME_ENTRY entry = GTK_ENTRY (gnome_entry_gtk_entry (GNOME_ENTRY (gnome_entry))); - +#endif gtk_entry_set_text (entry, in->buffer); gtk_editable_select_region (GTK_EDITABLE (entry), 0, -1); gtk_entry_set_position (entry, in->point); @@ -300,8 +305,12 @@ x_update_input (WInput *in) if (!in->widget.wdata) return; +#ifdef USE_GNOME_ENTRY gnome_entry = GNOME_ENTRY (in->widget.wdata); entry = GTK_ENTRY (gnome_entry_gtk_entry (gnome_entry)); +#else + entry = GTK_ENTRY (in->widget.wdata); +#endif if (in->first == -1){ gtk_editable_select_region (GTK_EDITABLE (entry), 0, 0); @@ -321,7 +330,11 @@ x_update_input (WInput *in) } if (draw){ +#ifdef USE_GNOME_ENTRY gtk_widget_draw (GTK_WIDGET (gnome_entry), NULL); +#else + gtk_widget_draw (GTK_WIDGET (entry), NULL); +#endif gtk_entry_adjust_scroll (GTK_ENTRY (entry)); gtk_widget_queue_draw (GTK_WIDGET (entry)); } diff --git a/lib/mc.ext.in b/lib/mc.ext.in index 6271bbda0..eb38d09d2 100644 --- a/lib/mc.ext.in +++ b/lib/mc.ext.in @@ -484,7 +484,7 @@ type/executable Open=./%f View=%view Drop=%f %q - Execute in XTerm=xterm -e ./%f & + Execute in XTerm=xterm -e %f & View Required Libraries=%view{ascii} ldd %f Strip binary=strip %f Icon=application.xpm diff --git a/po/mc.pot b/po/mc.pot index f58b63b85..1d40ea29e 100644 --- a/po/mc.pot +++ b/po/mc.pot @@ -1,6 +1,6 @@ msgid "" msgstr "" -"Date: 1998-05-20 14:56:59-0500\n" +"Date: 1998-05-22 13:19:54-0500\n" "From: Miguel de Icaza,computo,622-4680 \n" "Content-Type: text/plain; charset=\n" "Xgettext-Options: --default-domain=mc --directory=.. --add-comments --keyword=_ --keyword=N_ --files-from=./POTFILES.in\n" @@ -66,7 +66,7 @@ msgstr "" msgid " Save As " msgstr "" -#: edit/editcmd.c:413 edit/editcmd.c:722 edit/editcmd.c:734 edit/editcmd.c:835 edit/editcmd.c:918 gnome/gdesktop.c:1316 src/ext.c:295 src/help.c:320 src/main.c:685 src/subshell.c:700 src/subshell.c:726 src/utilunix.c:377 src/utilunix.c:381 src/utilunix.c:447 +#: edit/editcmd.c:413 edit/editcmd.c:722 edit/editcmd.c:734 edit/editcmd.c:835 edit/editcmd.c:918 gnome/gdesktop.c:1331 src/ext.c:295 src/help.c:320 src/main.c:685 src/subshell.c:700 src/subshell.c:726 src/utilunix.c:377 src/utilunix.c:381 src/utilunix.c:447 msgid " Warning " msgstr "" @@ -312,11 +312,11 @@ msgstr "" msgid "Cancel quit" msgstr "" -#: edit/editcmd.c:1969 gnome/gcmd.c:94 gnome/gdesktop.c:613 gnome/gdesktop.c:1173 src/cmd.c:248 src/file.c:2328 src/file.c:2654 src/file.c:2844 src/hotlist.c:1027 src/main.c:840 src/screen.c:2040 src/subshell.c:701 src/subshell.c:727 src/tree.c:1195 src/view.c:410 +#: edit/editcmd.c:1969 gnome/gcmd.c:94 gnome/gdesktop.c:613 gnome/gdesktop.c:1188 src/cmd.c:248 src/file.c:2328 src/file.c:2654 src/file.c:2844 src/hotlist.c:1027 src/main.c:840 src/screen.c:2040 src/subshell.c:701 src/subshell.c:727 src/tree.c:1195 src/view.c:410 msgid "&Yes" msgstr "" -#: edit/editcmd.c:1969 gnome/gcmd.c:94 gnome/gdesktop.c:613 gnome/gdesktop.c:1173 src/cmd.c:248 src/file.c:2328 src/file.c:2653 src/file.c:2844 src/hotlist.c:1027 src/main.c:840 src/screen.c:2040 src/subshell.c:701 src/subshell.c:727 src/tree.c:1195 src/view.c:410 +#: edit/editcmd.c:1969 gnome/gcmd.c:94 gnome/gdesktop.c:613 gnome/gdesktop.c:1188 src/cmd.c:248 src/file.c:2328 src/file.c:2653 src/file.c:2844 src/hotlist.c:1027 src/main.c:840 src/screen.c:2040 src/subshell.c:701 src/subshell.c:727 src/tree.c:1195 src/view.c:410 msgid "&No" msgstr "" @@ -786,7 +786,7 @@ msgstr "" msgid "Search" msgstr "" -#: edit/editwidget.c:999 gnome/gdesktop.c:612 gnome/gdesktop.c:1070 src/screen.c:2263 src/screen.c:2297 +#: edit/editwidget.c:999 gnome/gdesktop.c:612 gnome/gdesktop.c:1085 src/screen.c:2263 src/screen.c:2297 msgid "Delete" msgstr "" @@ -2610,7 +2610,7 @@ msgstr "" msgid " The shell is already running a command " msgstr "" -#: gnome/gcmd.c:92 gnome/gdesktop.c:1171 src/main.c:838 src/screen.c:2038 +#: gnome/gcmd.c:92 gnome/gdesktop.c:1186 src/main.c:838 src/screen.c:2038 msgid " The Midnight Commander " msgstr "" @@ -3213,7 +3213,7 @@ msgstr "" msgid " %s bytes in %d file%s" msgstr "" -#: gnome/gscreen.c:1492 src/screen.c:671 +#: gnome/gscreen.c:1570 src/screen.c:671 msgid "" msgstr "" @@ -3221,7 +3221,7 @@ msgstr "" msgid "Unknow tag on display format: " msgstr "" -#: gnome/gdesktop.c:1172 src/screen.c:2039 +#: gnome/gdesktop.c:1187 src/screen.c:2039 msgid " Do you really want to execute? " msgstr "" @@ -3738,19 +3738,22 @@ msgstr "" msgid "Do you want to delete " msgstr "" -#: gnome/gdesktop.c:1063 gnome/gscreen.c:512 +#. We connect_object_after to the items so that we can destroy +#. * the menu at the proper time. +#. +#: gnome/gdesktop.c:1078 gnome/gscreen.c:512 msgid "Properties" msgstr "" -#: gnome/gdesktop.c:1182 +#: gnome/gdesktop.c:1197 msgid "Open with..." msgstr "" -#: gnome/gdesktop.c:1183 gnome/gscreen.c:464 +#: gnome/gdesktop.c:1198 gnome/gscreen.c:464 msgid "Enter extra arguments:" msgstr "" -#: gnome/gdesktop.c:1316 +#: gnome/gdesktop.c:1331 msgid " Could not open %s directory" msgstr "" @@ -4122,83 +4125,83 @@ msgstr "" msgid "Rename/move.." msgstr "" -#: gnome/gscreen.c:1300 +#: gnome/gscreen.c:1378 msgid "All files" msgstr "" -#: gnome/gscreen.c:1302 +#: gnome/gscreen.c:1380 msgid "Archives and compressed files" msgstr "" -#: gnome/gscreen.c:1304 +#: gnome/gscreen.c:1382 msgid "RPM/DEB files" msgstr "" -#: gnome/gscreen.c:1306 +#: gnome/gscreen.c:1384 msgid "Text/Document files" msgstr "" -#: gnome/gscreen.c:1308 +#: gnome/gscreen.c:1386 msgid "HTML and SGML files" msgstr "" -#: gnome/gscreen.c:1310 +#: gnome/gscreen.c:1388 msgid "Postscript and PDF files" msgstr "" -#: gnome/gscreen.c:1312 +#: gnome/gscreen.c:1390 msgid "Spreadsheet files" msgstr "" -#: gnome/gscreen.c:1314 +#: gnome/gscreen.c:1392 msgid "Image files" msgstr "" -#: gnome/gscreen.c:1317 +#: gnome/gscreen.c:1395 msgid "Video/animation files" msgstr "" -#: gnome/gscreen.c:1319 +#: gnome/gscreen.c:1397 msgid "Audio files" msgstr "" -#: gnome/gscreen.c:1321 +#: gnome/gscreen.c:1399 msgid "C program files" msgstr "" -#: gnome/gscreen.c:1323 +#: gnome/gscreen.c:1401 msgid "C++ program files" msgstr "" -#: gnome/gscreen.c:1325 +#: gnome/gscreen.c:1403 msgid "Objective-C program files" msgstr "" -#: gnome/gscreen.c:1327 +#: gnome/gscreen.c:1405 msgid "Scheme program files" msgstr "" -#: gnome/gscreen.c:1329 +#: gnome/gscreen.c:1407 msgid "Assembler program files" msgstr "" -#: gnome/gscreen.c:1331 +#: gnome/gscreen.c:1409 msgid "Misc. program files" msgstr "" -#: gnome/gscreen.c:1333 +#: gnome/gscreen.c:1411 msgid "Font files" msgstr "" -#: gnome/gscreen.c:1458 +#: gnome/gscreen.c:1536 msgid "Search: " msgstr "" -#: gnome/gscreen.c:1468 +#: gnome/gscreen.c:1546 msgid " %s bytes in %d file%s" msgstr "" -#: gnome/gscreen.c:1543 +#: gnome/gscreen.c:1621 msgid "Filter" msgstr "" diff --git a/src/ChangeLog b/src/ChangeLog index b9f89ba99..3cf1b82cb 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,124 @@ +1998-maj-18 Tamasi Gyorgy (gt_cosy@usa.net) + + * lib/mc.menu: 'Z' on 'tar.Z' and 'tar.z' files: '%f' -> '$1'. + + * lib/mc.ext.in.qnx.diff, lib/mc.menu.qnx.diff (QNX): modified + 'mc.ext.in' (tar -t: output to stderr); modified 'mc.menu' (tar is + not GNU tar: doesn't know '-z'); support for '*.tar.F': + 'freeze'-compressed tar files [No automatic configure/install + implemented: patches must be applied before running 'configure' + (mc.ext.in.qnx.diff: this patch can be not only QNX-specific...)] + + * lib/Makefile.in: 'mc.ext.in.qnx.diff' and 'mc.menu.qnx.diff' added + to DISTLIB. + + * slang/sldisply.c: + + SLTT_TRANSP_ACS_PATCH dependant code: + + The problem: some terminals (QNX/qansi*, SCO OS5/ansi [?]) map the + whole upper half of the ASCII table to the lower half, when + alt-char-set is activated with the smacs/as string-sequence. This + means, that if 0 <= ch < 128 written to the terminal, it will be + translated to (ch+128) automatically by the terminal: so not only + the line-drawing characters can be written, when the alt-char-set + is activated. It implicitly means, that space, NL, CR, etc. + characters (exactly: anything besides the "standard" line drawing + characters) can not be written directly to the terminal, when the + alt-char-set is activated, because writing these characters + doesn't cause an implicit/temporary switching-back to the standard + char-set! + + The original code in SLang assumes that space, NL, CR, etc. can be + printed when alt-char-set is activated. If SLTT_TRANSP_ACS_PATCH + is defined, the modified code will not use this assumption. + [Remark: the patch-code is not the most exact solution, but + works...] + + QNX_QANSI_SLANG_COMPAT_ACS_PATCH dependant code: + + A more OS/terminal-specific solution for the problem mentioned + above (->SLTT_TRANSP_ACS_PATCH). + + If QNX_QANSI_SLANG_COMPAT_ACS is defined, the default smacs/sa, + rmacs/ae, acsc/ac [and sgr/sa, if it would be used!] command + sequences will be replaced internally with the "old style" + (pre-QNX 4.23) sequences in case of QNX/qansi terminals. Using + these optional command sequences the terminal remains compatible + with the original SLang code (without using the workaround-code + enabled by defining SLTT_TRANSP_ACS_PATCH). + + Remark: + + Currently SLTT_TRANSP_ACS_PATCH is not auto-configured by + 'configure'. (Must be manually defined...) + + There is some (QNX-specific) auto-configuration hand-coded in the + source: + + #ifdef SLTT_TRANSP_ACS_PATCH + # if defined(__QNX__) && defined(QNX_QANSI_SLANG_COMPAT_ACS) + # undef SLTT_TRANSP_ACS_PATCH + # endif + #else + # if defined(__QNX__) && !defined(QNX_QANSI_SLANG_COMPAT_ACS) + # define QNX_QANSI_SLANG_COMPAT_ACS 1 + # endif + #endif + + * slang/slutty.c: "newtty.c_iflag &= ~(ECHO | INLCR | ICRNL);" + ECHO(0x08) is a c_lflag bit, it means PARMRK(0x08) in c_iflag. (!?!) + + * src/file.c: 'do_reget' can be extern if (USE_VFS && USE_NETCODE), + not if (USE_VFS). + + * src/find.c (search_content()): Variable 'i' "must be" 'int', not + 'char'. ["i == -1": (buggy?) WCC 10.6 doesn't convert automatically + (int)(-1) to (char)(-1) (GCC does), so "comparison result always 0" + warning produced. It is cleaner to define 'i' as 'int', than cast + '-1' to 'char', because 'read()' returns 'int'.] + + * src/key.c (init_key()): Call load_xtra_key_defines() and clear + 'use_8th_bit_as_meta' by default under QNX, if a 'qnx*' terminal + detected. (A saved config file (mc.ini) can override it later...) + + * src/key.h: Declare load_xtra_key_defines(). + + * src/keyxdef.c: Provides a method to define some platform-specific + additional key mappings. (e.g. QNX terminals can handle most of + META-? combinations as ALT-?...) ('keyxdef.c' currently not listed + in doc/FILES...) + + * src/layout.c: TIOCGWINSZ must be available (so (?) + included), because window-resizing code doesn't work, if not defined. + + * src/main.c: 'print_usage()' is reserved name in the QNX run-time + library, so 'print_usage()' renamed to 'print_mc_usage()' + + * src/mouse.c (QNX): ncurses 1.9.8a ported to QNX doesn't provide the + 'SP' pointer as a global symbol in the library, so the keyok() + emulation currently can not be used under QNX (4.24 & Watcom C 10.6 + release version). + + * src/slint.c (QNX): 'qansi*' terminals added to the color_terminals[] + list. + + * src/subshell.c, src/utilunix.c (QNX): include to get + prototype for exec*()!!! [See README.QNX/Section 1.4 about the + dangerous "No prototype for " warnings emitted by Watcom C, + if is a 'printf()'-style function having variable number + of arguments and you compile your source with the default register + calling convention!!!] + + * Makefile.in: 'keyxdef' module added to SRCS and OBJS. + + * /README.QNX: QNX-specific notes. + + * /configure (line 3369), /configure.in (line 88): + 'test x$CCOPTS = x;' modified to 'test "x$CCOPTS" = x;' + + * /Makefile.in: README.QNX added to DISTMAIN. + Thu May 21 00:09:45 1998 Norbert Warmuth * menu.c (menubar_event): Don't set menubar->selected to the diff --git a/vfs/ChangeLog b/vfs/ChangeLog index cb6304121..a78be3c82 100644 --- a/vfs/ChangeLog +++ b/vfs/ChangeLog @@ -1,3 +1,8 @@ +1998-maj-18 Tamasi Gyorgy (gt_cosy@usa.net) + + * Makefile.in ('install' target): 'mcserv' not installed, if + net-code is not enabled by 'configure'. + Thu May 14 02:05:52 1998 Norbert Warmuth * Makefile.in (LIBS): add @LINTL@