mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-05 04:06:08 -05:00
Merge branch 'hold-option-in-footclient'
This adds --hold to footclient. It was an oversight on my part to not add it from the beginning, when it was added to foot. Closes #17
This commit is contained in:
commit
5639082113
5 changed files with 22 additions and 0 deletions
|
|
@ -14,6 +14,7 @@
|
|||
|
||||
* `Sync` to terminfo. This is a tmux extension that indicates
|
||||
_"Synchronized Updates"_ are supported.
|
||||
* `--hold` command line option to `footclient`.
|
||||
|
||||
|
||||
### Changed
|
||||
|
|
|
|||
13
client.c
13
client.c
|
|
@ -39,6 +39,7 @@ print_usage(const char *prog_name)
|
|||
" --fullscreen start in fullscreen mode\n"
|
||||
" --login-shell start shell as a login shell\n"
|
||||
" -s,--server-socket=PATH path to the server UNIX domain socket (default=$XDG_RUNTIME_DIR/foot-$XDG_SESSION_ID.sock)\n"
|
||||
" --hold remain open after child process exits\n"
|
||||
" -l,--log-colorize=[never|always|auto] enable/disable colorization of log output on stderr\n"
|
||||
" -v,--version show the version number and quit\n");
|
||||
}
|
||||
|
|
@ -58,6 +59,7 @@ main(int argc, char *const *argv)
|
|||
{"fullscreen", no_argument, NULL, 'F'},
|
||||
{"login-shell", no_argument, NULL, 'L'},
|
||||
{"server-socket", required_argument, NULL, 's'},
|
||||
{"hold", no_argument, NULL, 'H'},
|
||||
{"log-colorize", optional_argument, NULL, 'l'},
|
||||
{"version", no_argument, NULL, 'v'},
|
||||
{"help", no_argument, NULL, 'h'},
|
||||
|
|
@ -72,6 +74,7 @@ main(int argc, char *const *argv)
|
|||
bool login_shell = false;
|
||||
bool maximized = false;
|
||||
bool fullscreen = false;
|
||||
bool hold = false;
|
||||
|
||||
while (true) {
|
||||
int c = getopt_long(argc, argv, "+:t:a:s:l::hv", longopts, NULL);
|
||||
|
|
@ -109,6 +112,10 @@ main(int argc, char *const *argv)
|
|||
server_socket_path = optarg;
|
||||
break;
|
||||
|
||||
case 'H':
|
||||
hold = true;
|
||||
break;
|
||||
|
||||
case 'l':
|
||||
if (optarg == NULL || strcmp(optarg, "auto") == 0)
|
||||
log_colorize = LOG_COLORIZE_AUTO;
|
||||
|
|
@ -212,6 +219,7 @@ main(int argc, char *const *argv)
|
|||
total_len += sizeof(app_id_len) + app_id_len;
|
||||
total_len += sizeof(uint8_t); /* maximized */
|
||||
total_len += sizeof(uint8_t); /* fullscreen */
|
||||
total_len += sizeof(uint8_t); /* hold */
|
||||
total_len += sizeof(uint8_t); /* login_shell */
|
||||
total_len += sizeof(argc);
|
||||
|
||||
|
|
@ -266,6 +274,11 @@ main(int argc, char *const *argv)
|
|||
goto err;
|
||||
}
|
||||
|
||||
if (send(fd, &(uint8_t){hold}, sizeof(uint8_t), 0) != sizeof(uint8_t)) {
|
||||
LOG_ERRNO("failed to send hold");
|
||||
goto err;
|
||||
}
|
||||
|
||||
if (send(fd, &(uint8_t){login_shell}, sizeof(uint8_t), 0) != sizeof(uint8_t)) {
|
||||
LOG_ERRNO("failed to send login-shell");
|
||||
goto err;
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ _arguments \
|
|||
'--fullscreen[start in fullscreen mode]' \
|
||||
'--login-shell[start shell as a login shell]' \
|
||||
'(-s --server-socket)'{-s,--server-socket}'[override the default path to the foot server socket (XDG_RUNTIME_DIR/foot.sock)]:server:_files' \
|
||||
'--hold[remain open after child process exits]' \
|
||||
'(-l --log-colorize)'{-l,--log-colorize}'[enable or disable colorization of log output on stderr]:logcolor:(never always auto)' \
|
||||
'(-v --version)'{-v,--version}'[show the version number and quit]' \
|
||||
'(-h --help)'{-h,--help}'[show help message and quit]' \
|
||||
|
|
|
|||
|
|
@ -36,6 +36,9 @@ arguments, to execute (instead of the default shell).
|
|||
*-s*,*--server-socket*=_PATH_
|
||||
Connect to _PATH_ instead of _XDG\_RUNTIME\_DIR/foot.sock_.
|
||||
|
||||
*--hold*
|
||||
Remain open after child process exits.
|
||||
|
||||
*-l*,*--log-colorize*=[{*never*,*always*,*auto*}]
|
||||
Enables or disables colorization of log output on stderr.
|
||||
|
||||
|
|
|
|||
4
server.c
4
server.c
|
|
@ -267,6 +267,9 @@ fdm_client(struct fdm *fdm, int fd, int events, void *data)
|
|||
CHECK_BUF(sizeof(uint8_t));
|
||||
const uint8_t fullscreen = *(const uint8_t *)p; p += sizeof(fullscreen);
|
||||
|
||||
CHECK_BUF(sizeof(uint8_t));
|
||||
const uint8_t hold = *(const uint8_t *)p; p += sizeof(hold);
|
||||
|
||||
CHECK_BUF(sizeof(uint8_t));
|
||||
const uint8_t login_shell = *(const uint8_t *)p; p += sizeof(login_shell);
|
||||
|
||||
|
|
@ -304,6 +307,7 @@ fdm_client(struct fdm *fdm, int fd, int events, void *data)
|
|||
? strdup(title) : strdup(server->conf->title);
|
||||
client->conf.app_id = strlen(app_id) > 0
|
||||
? strdup(app_id) : strdup(server->conf->app_id);
|
||||
client->conf.hold_at_exit = hold;
|
||||
client->conf.login_shell = login_shell;
|
||||
|
||||
if (maximized)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue