]> gitweb.ps.run Git - ps-cgit/blobdiff - html.c
Minor style fixes
[ps-cgit] / html.c
diff --git a/html.c b/html.c
index fab67bd0b16b5c43bab558e20c7ecd7764d14711..957b3268be1a49a5a1d336d3412a4e71d4ca5959 100644 (file)
--- a/html.c
+++ b/html.c
@@ -65,6 +65,34 @@ void html_txt(char *txt)
                html(txt);
 }
 
+void html_ntxt(int len, char *txt)
+{
+       char *t = txt;
+       while(*t && len--){
+               int c = *t;
+               if (c=='<' || c=='>' || c=='&') {
+                       *t = '\0';
+                       html(txt);
+                       *t = c;
+                       if (c=='>')
+                               html("&gt;");
+                       else if (c=='<')
+                               html("&lt;");
+                       else if (c=='&')
+                               html("&amp;");
+                       txt = t+1;
+               }
+               t++;
+       }
+       if (t!=txt) {
+               char c = *t;
+               *t = '\0';
+               html(txt);
+               *t = c;
+       }
+       if (len<0)
+               html("...");
+}
 
 void html_attr(char *txt)
 {
@@ -108,3 +136,23 @@ void html_link_close(void)
 {
        html("</a>");
 }
+
+void html_fileperm(unsigned short mode)
+{
+       htmlf("%c%c%c", (mode & 4 ? 'r' : '-'), 
+             (mode & 2 ? 'w' : '-'), (mode & 1 ? 'x' : '-'));
+}
+
+void html_filemode(unsigned short mode)
+{
+       if (S_ISDIR(mode))
+               html("d");
+       else if (S_ISLNK(mode))
+               html("l");
+       else
+               html("-");
+       html_fileperm(mode >> 6);
+       html_fileperm(mode >> 3);
+       html_fileperm(mode);
+}
+