sort table with types and extensions alphabetically by extension - gopher-validator - Simple gopher menu validator.
HTML git clone git://bitreich.org/gopher-validator git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/gopher-validator
DIR Log
DIR Files
DIR Refs
DIR Tags
DIR README
DIR LICENSE
---
DIR commit d2d0e95268db4d42a56e0b8967af42b146a3a7e3
DIR parent d9abe6e45e708f965778fba7a66e56300fc0b814
HTML Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date: Fri, 18 Feb 2022 14:27:16 +0100
sort table with types and extensions alphabetically by extension
Diffstat:
M gopher-validator.c | 77 ++++++++++++++++---------------
1 file changed, 40 insertions(+), 37 deletions(-)
---
DIR diff --git a/gopher-validator.c b/gopher-validator.c
@@ -36,54 +36,57 @@ struct visited {
};
/* check valid types with extension in path */
-struct {
- const char *ext;
- const char *allow;
-} types [] = {
+struct gophertype {
+ const char *ext; /* filename extension */
+ const char *allow; /* allowed types for this extension */
+};
+
+/* must be sorted alphabetically by extension */
+struct gophertype types[] = {
+ { .ext = "asc", "0" },
+ { .ext = "avi", "9" },
+ { .ext = "bz2", "9" },
+ { .ext = "c", "0" },
+ { .ext = "dcgi", "17" },
+ { .ext = "doc", "9" },
+ { .ext = "exe", "9" },
+ { .ext = "gif", "gI" },
+ { .ext = "go", "0" },
+ { .ext = "gph", "1" },
+ { .ext = "gz", "9" },
+ { .ext = "h", "0" },
+ { .ext = "htm", "0h" },
+ { .ext = "html", "0h" },
+ { .ext = "iso", "9" },
+ { .ext = "jpeg", "I" },
+ { .ext = "jpg", "I" },
+ { .ext = "json", "0" },
+ { .ext = "lzma", "9" },
+ { .ext = "m3u", "0" },
+ { .ext = "md", "0" },
{ .ext = "md5", "0" },
{ .ext = "md5sum", "0" },
+ { .ext = "mkv", "9" },
+ { .ext = "mp3", "9" },
+ { .ext = "mp4", "9" },
+ { .ext = "ogg", "9" },
+ { .ext = "ogv", "9" },
+ { .ext = "pdf", "9" },
+ { .ext = "png", "I" },
+ { .ext = "rss", "0" },
+ { .ext = "sh", "0" },
{ .ext = "sha1", "0" },
{ .ext = "sha1sum", "0" },
{ .ext = "sha256", "0" },
{ .ext = "sha256sum", "0" },
{ .ext = "sha512", "0" },
{ .ext = "sha512sum", "0" },
- { .ext = "asc", "0" },
- { .ext = "rss", "0" },
- { .ext = "xml", "0" },
- { .ext = "txt", "0" },
- { .ext = "json", "0" },
- { .ext = "md", "0" },
- { .ext = "c", "0" },
- { .ext = "h", "0" },
- { .ext = "sh", "0" },
- { .ext = "go", "0" },
{ .ext = "srt", "0" },
- { .ext = "m3u", "0" },
- { .ext = "htm", "0h" },
- { .ext = "html", "0h" },
- { .ext = "gph", "1" },
- { .ext = "dcgi", "17" },
- { .ext = "gif", "gI" },
- { .ext = "jpg", "I" },
- { .ext = "jpeg", "I" },
- { .ext = "png", "I" },
- { .ext = "doc", "9" },
- { .ext = "pdf", "9" },
- { .ext = "iso", "9" },
- { .ext = "exe", "9" },
- { .ext = "gz", "9" },
{ .ext = "tgz", "9" },
- { .ext = "bz2", "9" },
- { .ext = "xz", "9" },
- { .ext = "lzma", "9" },
+ { .ext = "txt", "0" },
{ .ext = "wav", "9" },
- { .ext = "mp3", "9" },
- { .ext = "ogg", "9" },
- { .ext = "avi", "9" },
- { .ext = "mp4", "9" },
- { .ext = "mkv", "9" },
- { .ext = "ogv", "9" },
+ { .ext = "xml", "0" },
+ { .ext = "xz", "9" },
};
int exitcode = 0;