+ if (!isatty(STDIN_FILENO)) {
+ /* XXX: When pager mode has been requested, silently override
+ * view startup options. */
+ opt_request = REQ_VIEW_PAGER;
+ opt_pipe = stdin;
+
+ } else if (i < argc) {
+ size_t buf_size;
+
+ /* XXX: This is vulnerable to the user overriding options
+ * required for the main view parser. */
+ if (opt_request == REQ_VIEW_MAIN)
+ string_copy(opt_cmd, "git log --stat --pretty=raw");
+ else
+ string_copy(opt_cmd, "git");
+ buf_size = strlen(opt_cmd);
+
+ while (buf_size < sizeof(opt_cmd) && i < argc) {
+ opt_cmd[buf_size++] = ' ';
+ buf_size = sq_quote(opt_cmd, buf_size, argv[i++]);
+ }
+
+ if (buf_size >= sizeof(opt_cmd))
+ die("command too long");
+
+ opt_cmd[buf_size] = 0;
+
+ }
+