xiterm

simple vte terminal emulator
git clone https://git.ce9e.org/xiterm.git

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   187 
  186    -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);