[hackers] [st] added -e and -t option. || Aurélien Aptel

From: <hg_AT_suckless.org>
Date: Wed, 1 Sep 2010 23:37:08 +0000 (UTC)

changeset: 135:a59c609033be
tag: tip
user: Aurélien Aptel <aurelien.aptel_AT_gmail.com>
date: Thu Sep 02 01:37:01 2010 +0200
files: st.c
description:
added -e and -t option.

diff -r 0581c41889d9 -r a59c609033be st.c
--- a/st.c Wed Sep 01 23:20:54 2010 +0200
+++ b/st.c Thu Sep 02 01:37:01 2010 +0200
@@ -28,6 +28,10 @@
  #include <libutil.h>
 #endif
 
+#define USAGE \
+ "st-" VERSION ", (c) 2010 st engineers\n" \
+ "usage: st [-t title] [-e cmd] [-v]\n"
+
 /* Arbitrary sizes */
 #define ESC_TITLE_SIZ 256
 #define ESC_BUF_SIZ 256
@@ -210,6 +214,8 @@
 static int cmdfd;
 static pid_t pid;
 static Selection sel;
+static char *opt_cmd = NULL;
+static char *opt_title = NULL;
 
 void
 selinit(void) {
@@ -329,9 +335,12 @@
 
 void
 execsh(void) {
- char *args[3] = {getenv("SHELL"), "-i", NULL};
- DEFAULT(args[0], SHELL); /* if getenv() failed */
- putenv("TERM=" TNAME);
+ char *args[] = {getenv("SHELL"), "-i", NULL};
+ if(opt_cmd)
+ args[0] = opt_cmd, args[1] = NULL;
+ else
+ DEFAULT(args[0], SHELL);
+ putenv("TERM="TNAME);
         execvp(args[0], args);
 }
 
@@ -1189,7 +1198,7 @@
         
         XMapWindow(xw.dis, xw.win);
         xhints();
- XStoreName(xw.dis, xw.win, "st");
+ XStoreName(xw.dis, xw.win, opt_title ? opt_title : "st");
         XSync(xw.dis, 0);
 }
 
@@ -1429,10 +1438,21 @@
 
 int
 main(int argc, char *argv[]) {
- if(argc == 2 && !strncmp("-v", argv[1], 3))
- die("st-" VERSION ", (c) 2010 st engineers\n");
- else if(argc != 1)
- die("usage: st [-v]\n");
+ int i;
+
+ for(i = 1; i < argc; i++) {
+ switch(argv[i][0] != '-' || argv[i][2] ? -1 : argv[i][1]) {
+ case 't':
+ if(++i < argc) opt_title = argv[i];
+ break;
+ case 'e':
+ if(++i < argc) opt_cmd = argv[i];
+ break;
+ case 'v':
+ default:
+ die(USAGE);
+ }
+ }
         setlocale(LC_CTYPE, "");
         tnew(80, 24);
         ttynew();
Received on Thu Sep 02 2010 - 01:37:08 CEST

This archive was generated by hypermail 2.2.0 : Thu Sep 02 2010 - 01:48:03 CEST