Sophie

Sophie

distrib > Mageia > 2 > i586 > media > core-release-src > by-pkgid > 0b6cf1c93c6e9e43687643a5a3e723c5 > files > 6

mc-4.8.1-2.mga2.src.rpm

diff -Naur mc-4.6.2/edit/editwidget.c mc-4.6.2.tpg/edit/editwidget.c
--- mc-4.6.2/edit/editwidget.c	2009-02-04 20:50:33.000000000 +0000
+++ mc-4.6.2.tpg/edit/editwidget.c	2009-02-04 20:51:20.000000000 +0000
@@ -46,6 +46,9 @@
 #include "../src/widget.h"	/* buttonbar_redraw() */
 #include "../src/menu.h"	/* menubar_new() */
 #include "../src/key.h"		/* is_idle() */
+#include "../src/main.h"	/* xterm_title_str */
+#include "../src/win.h"		/* xterm_flag */
+#include "../src/layout.h"	/* xterm_title */
 
 WEdit *wedit;
 struct WMenu *edit_menubar;
@@ -174,6 +177,11 @@
     Dlg_head *edit_dlg;
     WButtonBar *edit_bar;
 
+    if (xterm_flag && xterm_title && xterm_title_str) {
+	fprintf (stdout, "\33]0;mc - %s/%s\7", xterm_title_str, _file);
+	fflush(stdout);
+    }
+
     if (!made_directory) {
 	char *dir = mhl_str_dir_plus_file (home_dir, EDIT_DIR);
 	made_directory = (mkdir (dir, 0700) != -1 || errno == EEXIST);
@@ -209,6 +217,8 @@
 
     destroy_dlg (edit_dlg);
 
+    update_xterm_title_path();
+
     return 1;
 }
 
diff -Naur mc-4.6.2/src/main.c mc-4.6.2.tpg/src/main.c
--- mc-4.6.2/src/main.c	2009-02-04 20:50:33.000000000 +0000
+++ mc-4.6.2.tpg/src/main.c	2009-02-04 20:51:20.000000000 +0000
@@ -281,6 +281,9 @@
 /* Is the LANG UTF-8 ? */
 gboolean is_utf8 = FALSE;
 
+/* The xterm title */
+char *xterm_title_str = NULL;
+
 /* mc_home: The home of MC */
 char *mc_home = NULL;
 
@@ -1626,6 +1629,7 @@
     char *p, *s;
 
     if (xterm_flag && xterm_title) {
+	if ( xterm_title_str ) mhl_mem_free (xterm_title_str);
 	p = s = g_strdup (strip_home_and_password (current_panel->cwd));
 	do {
 #ifndef UTF8
@@ -1639,7 +1643,7 @@
 	    numeric_keypad_mode ();
 	fprintf (stdout, "\33]0;mc - %s\7", p);
 	fflush (stdout);
-	g_free (p);
+	xterm_title_str = p;
     }
 }
 
diff -Naur mc-4.6.2/src/main.h mc-4.6.2.tpg/src/main.h
--- mc-4.6.2/src/main.h	2009-02-04 20:50:33.000000000 +0000
+++ mc-4.6.2.tpg/src/main.h	2009-02-04 20:52:24.000000000 +0000
@@ -69,6 +69,7 @@
 extern int only_leading_plus_minus;
 extern int output_starts_shell;
 extern int midnight_shutdown;
+extern char *xterm_title_str;
 extern gboolean is_utf8;
 extern char cmd_buf [512];
 extern const char *shell;
diff -Naur mc-4.6.2/src/view.c mc-4.6.2.tpg/src/view.c
--- mc-4.6.2/src/view.c	2009-02-04 20:50:33.000000000 +0000
+++ mc-4.6.2.tpg/src/view.c	2009-02-04 20:51:20.000000000 +0000
@@ -3368,6 +3368,11 @@
     WButtonBar *bar;
     Dlg_head *view_dlg;
 
+    if (xterm_flag && xterm_title && xterm_title_str) {
+	fprintf (stdout, "\33]0;mc - %s/%s\7", xterm_title_str, file);
+	fflush(stdout);
+    }
+
     /* Create dialog and widgets, put them on the dialog */
     view_dlg =
 	create_dlg (0, 0, LINES, COLS, NULL, view_dialog_callback,
@@ -3391,6 +3396,8 @@
     }
     destroy_dlg (view_dlg);
 
+    update_xterm_title_path();
+
     return succeeded;
 }