aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShav Kinderlehrer <[email protected]>2023-04-18 08:58:23 -0400
committerShav Kinderlehrer <[email protected]>2023-04-18 08:58:23 -0400
commite586f29e6d2974be68994405ff35684353883444 (patch)
tree9d659a1319629e78372b22873eb6d51327c1fa84 /src
parent0e1183a62cb98f52393961f7d40524f3754ec22e (diff)
downloadlat-e586f29e6d2974be68994405ff35684353883444.tar.gz
lat-e586f29e6d2974be68994405ff35684353883444.zip
Revise --binary functionalityv0.9.3
Diffstat (limited to 'src')
-rw-r--r--src/lib/arg.c35
-rw-r--r--src/main.c8
2 files changed, 29 insertions, 14 deletions
diff --git a/src/lib/arg.c b/src/lib/arg.c
index 6f4d714..e25b1db 100644
--- a/src/lib/arg.c
+++ b/src/lib/arg.c
@@ -17,19 +17,26 @@ void help(void) {
"\t-n, --lines\t toggle whether to print line numbers or not\n"
"\t-t, --headers\t toggle whether to print file headers or not\n"
"\t-b, --binary\t toggle whether to force the data to be treated as "
- "binary or not\n"
+ "binary or not. see examples\n"
"\t-V, --version\t show program version\n"
"\t-h, --help\t display this help text\n\n");
printf("environment:\n"
"\tNO_COLOR, see https://no-color.org/\n\n");
- printf("examples:\n"
- "\tlat file1\n\t\t print the content of file1 witht default formatting\n"
- "\tlat - file1\n\t\t read from stdin (the '-' character reads from stdin) "
- "and then print the contents of stdin and file1\n"
- "\tlat -nc file1 file2\n\t\t print the contents of file1 and file2 "
- "without printing line numbers or colors\n"
- "\tcurl example.com | lat\n\t\t pipe the results of 'curl example.com' "
- "into lat\n");
+ printf(
+ "examples:\n"
+ "\tlat file1\n\t\t print the content of file1 witht default formatting\n"
+ "\tlat - file1\n\t\t read from stdin (the '-' character reads from "
+ "stdin) "
+ "and then print the contents of stdin and file1\n"
+ "\tlat --lines --color file1 file2\n\t\t print the contents of file1 and "
+ "file2 "
+ "without printing line numbers or colors\n"
+ "\tlat --binary file.txt\n\t\t force file.txt to be treated as a binary "
+ "file\n"
+ "\tlat -bb file.txt\n\t\t force file.txt to NOT be treated as a binary "
+ "file\n"
+ "\tcurl example.com | lat\n\t\t pipe the results of 'curl example.com' "
+ "into lat\n");
}
void version(void) {
@@ -62,7 +69,10 @@ void parselongarg(char *arg) {
}
if (strcmp(arg, "--binary") == 0) {
- conf.force_binary = !conf.force_binary;
+ if (conf.force_binary < 0)
+ conf.force_binary = 1;
+ else
+ conf.force_binary = !conf.force_binary;
return;
}
@@ -96,7 +106,10 @@ void parseshortarg(char *arg) {
conf.headers = !conf.headers;
break;
case 'b':
- conf.force_binary = !conf.force_binary;
+ if (conf.force_binary < 0)
+ conf.force_binary = 1;
+ else
+ conf.force_binary = !conf.force_binary;
break;
case 'V':
version();
diff --git a/src/main.c b/src/main.c
index 72b4e9d..0ea8c0c 100644
--- a/src/main.c
+++ b/src/main.c
@@ -23,8 +23,10 @@ void run(FILE *fp, char *filename, bool tty) {
struct filedata f;
f = readfile(fp, conf.stdin);
- if (conf.force_binary) {
- f.binary = !f.binary;
+ if (conf.force_binary > 0) {
+ f.binary = true;
+ } else if (conf.force_binary == 0) {
+ f.binary = false;
}
conf.headers = conf.headers && tty; // tty still overrides user
@@ -72,7 +74,7 @@ void run(FILE *fp, char *filename, bool tty) {
void initconf(void) {
conf.stdin = false;
- conf.force_binary = false;
+ conf.force_binary = -1;
conf.has_read_stdin = false;
conf.process = true;
conf.headers = true;