Introduction
Introduction Statistics Contact Development Disclaimer Help
Rename struct assoc to struct rule - noice - small file browser (mirror / fork …
git clone git://git.codemadness.org/noice
Log
Files
Refs
README
LICENSE
---
commit 58b6b5ba9a2e0ff758ae575cb04c98177a77a7f3
parent 2b8e1ac48a355d0185665bd9f4b1c30d2747b1dd
Author: sin <[email protected]>
Date: Fri, 23 Aug 2019 16:00:03 +0100
Rename struct assoc to struct rule
Diffstat:
M nopen.c | 42 ++++++++++++++++-------------…
M nopenconf.def.h | 4 +++-
2 files changed, 24 insertions(+), 22 deletions(-)
---
diff --git a/nopen.c b/nopen.c
@@ -11,7 +11,7 @@
#include "arg.h"
#include "util.h"
-struct assoc {
+struct rule {
char *regex; /* Regex to match on filename */
char *file;
char *argv[NR_ARGS];
@@ -23,47 +23,47 @@ struct assoc {
char *argv0;
void
-run(struct assoc *assoc, char *arg)
+run(struct rule *rule, char *arg)
{
char *argv[NR_ARGS];
int i;
- for (i = 0; assoc->argv[i]; i++) {
- if (strcmp(assoc->argv[i], "{}") == 0) {
+ for (i = 0; rule->argv[i]; i++) {
+ if (strcmp(rule->argv[i], "{}") == 0) {
argv[i] = arg;
continue;
}
- argv[i] = assoc->argv[i];
+ argv[i] = rule->argv[i];
}
argv[i] = NULL;
- spawnvp(NULL, assoc->file, argv);
+ spawnvp(NULL, rule->file, argv);
}
-struct assoc *
-openwith(char *file)
+struct rule *
+matchrule(char *file)
{
int i;
- for (i = 0; i < LEN(assocs); i++) {
- if (regexec(&assocs[i].regcomp, file, 0, NULL, 0) == 0)
- return &assocs[i];
+ for (i = 0; i < LEN(rules); i++) {
+ if (regexec(&rules[i].regcomp, file, 0, NULL, 0) == 0)
+ return &rules[i];
}
return NULL;
}
void
-initassocs(void)
+parserules(void)
{
char errbuf[256];
int i, r;
- for (i = 0; i < LEN(assocs); i++) {
- r = regcomp(&assocs[i].regcomp, assocs[i].regex,
+ for (i = 0; i < LEN(rules); i++) {
+ r = regcomp(&rules[i].regcomp, rules[i].regex,
REG_NOSUB | REG_EXTENDED | REG_ICASE);
if (r != 0) {
- regerror(r, &assocs[i].regcomp, errbuf, sizeof(errbuf)…
- fprintf(stderr, "invalid regex assocs[%d]: %s: %s\n",
- i, assocs[i].regex, errbuf);
+ regerror(r, &rules[i].regcomp, errbuf, sizeof(errbuf));
+ fprintf(stderr, "invalid regex rules[%d]: %s: %s\n",
+ i, rules[i].regex, errbuf);
exit(1);
}
}
@@ -87,13 +87,13 @@ main(int argc, char *argv[])
if (argc == 0)
usage();
- initassocs();
+ parserules();
for (; *argv != NULL; argv++) {
- struct assoc *assoc;
+ struct rule *rule;
- if ((assoc = openwith(argv[0])) == NULL)
+ if ((rule = matchrule(argv[0])) == NULL)
continue;
- run(assoc, argv[0]);
+ run(rule, argv[0]);
}
return 0;
}
diff --git a/nopenconf.def.h b/nopenconf.def.h
@@ -1,5 +1,7 @@
/* See LICENSE file for copyright and license details. */
-struct assoc assocs[] = {
+
+/* {} will be substituted with the actual argument when the rule is executed */
+struct rule rules[] = {
{ .regex = "\\.(avi|mp4|mkv|mp3|ogg|flac|mov)$", .file = "mpv", .argv …
{ .regex = "\\.(png|jpg|gif)$", .file = "sxiv", .argv = { "sxiv", "{}"…
{ .regex = "\\.(html|svg)$", .file = "firefox", .argv = { "firefox", "…
You are viewing proxied material from codemadness.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.