Xterm window title enhancement to hostname:/path II.
Stefano Melchior
stefano.melchior at fastwebnet.it
Sat Mar 19 08:47:51 UTC 2005
On Fri, Mar 18, 2005 at 04:55:16PM +0100, Pavel V?vra wrote:
Hi Pavel,
>
> mc - root at debi:/etc
> mc - root at Firewall:/etc
> mc - root at Planet:/etc
> mc - plamen at workstation:/usr/src
>
> This patch adds hostname to current path in x-terminal window with minimal source code changes into existing code. It works for me and I hope it will be useful for many network administrators too. I hope this patch is safe. It is restricted to hostnames up to 63 bytes long. Please include it into upstream if you'll find it useful. It is possible that during some days I'll add username to make information more complete and if it will be welcomed I'll sent it too. The best way is - of course - to make this feature configurable, but I am not experienced C programmer so I cannot do it :-(
In the patch file you should have put:
--- src/main.c Fri Nov 14 21:43:12 2003
+++ src/main.c Fri Mar 18 15:36:41 2005
instead of:
--- main.c Fri Nov 14 21:43:12 2003
+++ main.c Fri Mar 18 15:36:41 2005
otherwise the patch application can not understand what file to patch.
This is a simple correction (look at the attachment)
Bye
SteX
--
GPG key = D52DF829 -- SteX -- <stefano.melchior at openlabs.it>
Keyserver: http://keyserver.kjsl.com, User#324592, http://counter.li.org
http://www.openlabs.it/~stex -- http://www.stex.name
-------------- next part --------------
--- src/main.c.orig Fri Nov 14 21:43:12 2003
+++ src/main.c Fri Mar 18 15:36:41 2005
@@ -1597,21 +1597,45 @@
#define xtoolkit_panel_setup()
-/* Show current directory in the xterm title */
+/* Show hostname and current directory in the xterm title */
void
update_xterm_title_path (void)
{
unsigned char *p, *s;
+ char *pvp;
+ size_t pvlen;
+ int pvresult;
if (xterm_flag && xterm_title) {
+ // currrent path
p = s = g_strdup (strip_home_and_password (current_panel->cwd));
+ // hostname
+ pvlen = strlen(p);
+ pvp = g_malloc (pvlen + 64); //approach - max hostname length
+ pvresult = gethostname(pvp, 63);
+ if (pvresult) { // print just current path
+ g_free (pvp);
+ pvp = p;
+ } else {
+ s = pvp;
+ do { // merge hostname with path
+ if (!is_printable (*s))
+ *s = '?';
+ } while (*++s!=0x00);
+ *s++=':';
+ strcpy (s, p);
+ g_free (p);
+ }
+
do {
if (!is_printable (*s))
*s = '?';
} while (*++s);
- fprintf (stdout, "\33]0;mc - %s\7", p);
+// fprintf (stdout, "\33]0;mc - %s\7", p);
+ fprintf (stdout, "\33]0;mc - %s\7", pvp);
fflush (stdout);
- g_free (p);
+// g_free (p);
+ g_free (pvp);
}
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 307 bytes
Desc: Digital signature
URL: <http://lists.midnight-commander.org/pipermail/mc-devel/attachments/20050319/2872eac5/attachment.asc>
More information about the mc-devel
mailing list