1
1
1998-05-22  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* 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.
Этот коммит содержится в:
Miguel de Icaza 1998-05-23 00:55:03 +00:00
родитель fa6ba53073
Коммит a416ee4f7b
9 изменённых файлов: 331 добавлений и 88 удалений

Просмотреть файл

@ -1,3 +1,20 @@
1998-05-22 Miguel de Icaza <miguel@nuclecu.unam.mx>
* 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 <miguel@nuclecu.unam.mx>
* gscreen.c (load_dnd_icons): Remove the code and the icons that

Просмотреть файл

@ -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 [] = {

Просмотреть файл

@ -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

Просмотреть файл

@ -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));
}

Просмотреть файл

@ -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));
}

Просмотреть файл

@ -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

Просмотреть файл

@ -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 <miguel@metropolis.nuclecu.unam.mx>\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 "<readlink failed>"
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 ""

Просмотреть файл

@ -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 <sys/ioctl.h> (?)
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 <unix.h> to get
prototype for exec*()!!! [See README.QNX/Section 1.4 about the
dangerous "No prototype for <function>" warnings emitted by Watcom C,
if <function> 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.
* <mc-root>/README.QNX: QNX-specific notes.
* <mc-root>/configure (line 3369), <mc-root>/configure.in (line 88):
'test x$CCOPTS = x;' modified to 'test "x$CCOPTS" = x;'
* <mc-root>/Makefile.in: README.QNX added to DISTMAIN.
Thu May 21 00:09:45 1998 Norbert Warmuth <k3190@fh-sw.de>
* menu.c (menubar_event): Don't set menubar->selected to the

Просмотреть файл

@ -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 <k3190@fh-sw.de>
* Makefile.in (LIBS): add @LINTL@