Cool changes:
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.
Этот коммит содержится в:
родитель
fa6ba53073
Коммит
a416ee4f7b
@ -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
|
||||
|
149
gnome/gscreen.c
149
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));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
67
po/mc.pot
67
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 <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 ""
|
||||
|
||||
|
121
src/ChangeLog
121
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 <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@
|
||||
|
Загрузка…
Ссылка в новой задаче
Block a user