- commit
- f44a3672a5db3f2942b8f4114a52f428efe1ce51
- parent
- 957d7d24211afac662d7d7e4b28080e0fbbee7cd
- Author
- Tobias Bengfort <tobias.bengfort@posteo.de>
- Date
- 2020-10-01 09:20
compat: do not require command line argument to be quoted e.g. xiterm -e vim README.md
Diffstat
| M | xiterm.c | 22 | +++++++++++++--------- |
1 files changed, 13 insertions, 9 deletions
diff --git a/xiterm.c b/xiterm.c
@@ -1,3 +1,4 @@ -1 1 #include <string.h> 1 2 #include <gtk/gtk.h> 2 3 #include <vte/vte.h> 3 4 @@ -179,20 +180,23 @@ gboolean on_key(GtkWidget *widget, GdkEventKey *event, gpointer user_data) { 179 180 } 180 181 181 182 int main(int argc, char **argv) {182 -1 int i, opt;-1 183 int i; -1 184 char command[128] = ""; 183 185 GError *err = NULL; 184 186 GtkWidget *widget; 185 187186 -1 while ((opt = getopt(argc, argv, "e:")) != -1) {187 -1 switch (opt) {188 -1 case 'e':189 -1 cmd[0] = "/bin/sh";190 -1 cmd[1] = "-c";191 -1 cmd[2] = optarg;192 -1 break;193 -1 default:-1 188 if (argc > 1) { -1 189 if (strcmp(argv[1], "-e") != 0) { -1 190 fprintf(stderr, "Usage: xiterm [-e CMD]\n"); 194 191 exit(EXIT_FAILURE); 195 192 } -1 193 for (i = 2; i < argc; i++) { -1 194 strncat(command, argv[i], 128 - 1 - strlen(command)); -1 195 strncat(command, " ", 128 - 1 - strlen(command)); -1 196 } -1 197 cmd[0] = "/bin/sh"; -1 198 cmd[1] = "-c"; -1 199 cmd[2] = command; 196 200 } 197 201 198 202 url_regex = vte_regex_new_for_match(REGEX_URL, -1, PCRE2_MULTILINE, &err);