ihumanreadable filemodes (code from sbase ls) - stagit-gopher - A git gopher frontend. (mirror) Err bitreich.org 70 hgit clone git://bitreich.org/stagit-gopher/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/stagit-gopher/ URL:git://bitreich.org/stagit-gopher/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/stagit-gopher/ bitreich.org 70 1Log /scm/stagit-gopher/log.gph bitreich.org 70 1Files /scm/stagit-gopher/files.gph bitreich.org 70 1Refs /scm/stagit-gopher/refs.gph bitreich.org 70 1Tags /scm/stagit-gopher/tag bitreich.org 70 1README /scm/stagit-gopher/file/README.gph bitreich.org 70 1LICENSE /scm/stagit-gopher/file/LICENSE.gph bitreich.org 70 i--- Err bitreich.org 70 1commit 3da41fa5dde944cd00171d384ce30c20fbb0c5a0 /scm/stagit-gopher/commit/3da41fa5dde944cd00171d384ce30c20fbb0c5a0.gph bitreich.org 70 1parent a7dd8c5f08f3e5c30cafdd8bcb4cc3f344e2d5cd /scm/stagit-gopher/commit/a7dd8c5f08f3e5c30cafdd8bcb4cc3f344e2d5cd.gph bitreich.org 70 hAuthor: Hiltjo Posthuma URL:mailto:hiltjo@codemadness.org bitreich.org 70 iDate: Sat, 26 Dec 2015 12:57:14 +0100 Err bitreich.org 70 i Err bitreich.org 70 ihumanreadable filemodes (code from sbase ls) Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M urmoms.c | 44 ++++++++++++++++++++++++++++++- Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 43 insertions(+), 1 deletion(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/urmoms.c b/urmoms.c /scm/stagit-gopher/file/urmoms.c.gph bitreich.org 70 i@@ -633,6 +633,48 @@ writeblob(git_object *obj, const char *filename, git_off_t filesize) Err bitreich.org 70 i return 0; Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i+const char * Err bitreich.org 70 i+filemode(git_filemode_t m) Err bitreich.org 70 i+{ Err bitreich.org 70 i+ static char mode[11]; Err bitreich.org 70 i+ Err bitreich.org 70 i+ memset(mode, '-', sizeof(mode) - 1); Err bitreich.org 70 i+ mode[10] = '\0'; Err bitreich.org 70 i+ Err bitreich.org 70 i+ if (S_ISREG(m)) Err bitreich.org 70 i+ mode[0] = '-'; Err bitreich.org 70 i+ else if (S_ISBLK(m)) Err bitreich.org 70 i+ mode[0] = 'b'; Err bitreich.org 70 i+ else if (S_ISCHR(m)) Err bitreich.org 70 i+ mode[0] = 'c'; Err bitreich.org 70 i+ else if (S_ISDIR(m)) Err bitreich.org 70 i+ mode[0] = 'd'; Err bitreich.org 70 i+ else if (S_ISFIFO(m)) Err bitreich.org 70 i+ mode[0] = 'p'; Err bitreich.org 70 i+ else if (S_ISLNK(m)) Err bitreich.org 70 i+ mode[0] = 'l'; Err bitreich.org 70 i+ else if (S_ISSOCK(m)) Err bitreich.org 70 i+ mode[0] = 's'; Err bitreich.org 70 i+ else Err bitreich.org 70 i+ mode[0] = '?'; Err bitreich.org 70 i+ Err bitreich.org 70 i+ if (m & S_IRUSR) mode[1] = 'r'; Err bitreich.org 70 i+ if (m & S_IWUSR) mode[2] = 'w'; Err bitreich.org 70 i+ if (m & S_IXUSR) mode[3] = 'x'; Err bitreich.org 70 i+ if (m & S_IRGRP) mode[4] = 'r'; Err bitreich.org 70 i+ if (m & S_IWGRP) mode[5] = 'w'; Err bitreich.org 70 i+ if (m & S_IXGRP) mode[6] = 'x'; Err bitreich.org 70 i+ if (m & S_IROTH) mode[7] = 'r'; Err bitreich.org 70 i+ if (m & S_IWOTH) mode[8] = 'w'; Err bitreich.org 70 i+ if (m & S_IXOTH) mode[9] = 'x'; Err bitreich.org 70 i+ Err bitreich.org 70 i+ if (m & S_ISUID) mode[3] = (mode[3] == 'x') ? 's' : 'S'; Err bitreich.org 70 i+ if (m & S_ISGID) mode[6] = (mode[6] == 'x') ? 's' : 'S'; Err bitreich.org 70 i+ if (m & S_ISVTX) mode[9] = (mode[9] == 'x') ? 't' : 'T'; Err bitreich.org 70 i+ Err bitreich.org 70 i+ return mode; Err bitreich.org 70 i+} Err bitreich.org 70 i+ Err bitreich.org 70 i int Err bitreich.org 70 i writefilestree(FILE *fp, git_tree *tree, const char *path) Err bitreich.org 70 i { Err bitreich.org 70 i@@ -673,7 +715,7 @@ writefilestree(FILE *fp, git_tree *tree, const char *path) Err bitreich.org 70 i filesize = git_blob_rawsize((git_blob *)obj); Err bitreich.org 70 i Err bitreich.org 70 i fputs("", fp); Err bitreich.org 70 i- fprintf(fp, "%u", git_tree_entry_filemode_raw(entry)); Err bitreich.org 70 i+ fprintf(fp, "%s", filemode(git_tree_entry_filemode(entry))); Err bitreich.org 70 i fprintf(fp, "", fp); Err bitreich.org 70 .