]> gitweb.ps.run Git - ps-cgit/blobdiff - html.c
Merge branch 'stable'
[ps-cgit] / html.c
diff --git a/html.c b/html.c
index 33a956fd5db8140eed9c1a237d3db31337d76918..339bf0043aceafae6cd5894046c9e676742432b3 100644 (file)
--- a/html.c
+++ b/html.c
@@ -48,9 +48,7 @@ void html_txt(char *txt)
        while(t && *t){
                int c = *t;
                if (c=='<' || c=='>' || c=='&') {
-                       *t = '\0';
-                       html(txt);
-                       *t = c;
+                       write(htmlfd, txt, t - txt);
                        if (c=='>')
                                html("&gt;");
                        else if (c=='<')
@@ -71,9 +69,7 @@ void html_ntxt(int len, char *txt)
        while(t && *t && len--){
                int c = *t;
                if (c=='<' || c=='>' || c=='&') {
-                       *t = '\0';
-                       html(txt);
-                       *t = c;
+                       write(htmlfd, txt, t - txt);
                        if (c=='>')
                                html("&gt;");
                        else if (c=='<')
@@ -84,12 +80,8 @@ void html_ntxt(int len, char *txt)
                }
                t++;
        }
-       if (t!=txt) {
-               char c = *t;
-               *t = '\0';
-               html(txt);
-               *t = c;
-       }
+       if (t!=txt)
+               write(htmlfd, txt, t - txt);
        if (len<0)
                html("...");
 }
@@ -100,9 +92,7 @@ void html_attr(char *txt)
        while(t && *t){
                int c = *t;
                if (c=='<' || c=='>' || c=='\'') {
-                       *t = '\0';
-                       html(txt);
-                       *t = c;
+                       write(htmlfd, txt, t - txt);
                        if (c=='>')
                                html("&gt;");
                        else if (c=='<')
@@ -126,6 +116,18 @@ void html_hidden(char *name, char *value)
        html("'/>");
 }
 
+void html_option(char *value, char *text, char *selected_value)
+{
+       html("<option value='");
+       html_attr(value);
+       html("'");
+       if (selected_value && !strcmp(selected_value, value))
+               html(" selected='selected'");
+       html(">");
+       html_txt(text);
+       html("</option>\n");
+}
+
 void html_link_open(char *url, char *title, char *class)
 {
        html("<a href='");
@@ -158,7 +160,7 @@ void html_filemode(unsigned short mode)
                html("d");
        else if (S_ISLNK(mode))
                html("l");
-       else if (S_ISDIRLNK(mode))
+       else if (S_ISGITLINK(mode))
                html("m");
        else
                html("-");