v. 20200522 more info at https://notes.sagredo.eu/en/qmail-notes-185/qmailadmin-23.html * Roberto Puzzanghera's qmailadmin-skin patch Provides a new responsive skin to the control panel. It modifies everything under the html dir and many .c files in order to adjust the html code that the original author embedded into the source files. Added a stylesheet style.ccs in the images folder and some png files for the qmail logo. == Changelog * 2020.05.22 -mod_user.html: removed "required" attribute on password field, to allow modifications in case of no password change * 2020.05.05 First release of the patch =========================================================================================== diff -ruN ../qmailadmin-1.2.16-original/Makefile.am qmailadmin-1.2.16/Makefile.am --- ../qmailadmin-1.2.16-original/Makefile.am 2011-02-22 15:45:48.000000000 +0100 +++ qmailadmin-1.2.16/Makefile.am 2020-05-22 16:10:32.877023997 +0200 @@ -79,4 +79,4 @@ chmod 644 $(DESTDIR)@htmllibdir@/lang/* $(mkinstalldirs) $(DESTDIR)@imagedir@ cp $(srcdir)/images/*.png $(DESTDIR)@imagedir@ - + cp $(srcdir)/images/*.css $(DESTDIR)@imagedir@ diff -ruN ../qmailadmin-1.2.16-original/alias.c qmailadmin-1.2.16/alias.c --- ../qmailadmin-1.2.16-original/alias.c 2011-02-22 15:45:47.000000000 +0100 +++ qmailadmin-1.2.16/alias.c 2020-05-22 16:10:32.878023987 +0200 @@ -305,11 +305,11 @@ */ printf ("%s", HTML_ALIAS_ROW_START); - qmail_button (this_alias, "deldotqmail", user, dom, mytime, "trash.png"); + qmail_button (this_alias, "deldotqmail", user, dom, mytime, "delete_forever"); if (*curalias->alias_command == '#') printf ("%s", HTML_EMPTY_TD); /* don't allow modify on blackhole */ else - qmail_button (this_alias, "moddotqmail", user, dom, mytime, "modify.png"); + qmail_button (this_alias, "moddotqmail", user, dom, mytime, "create"); printh (HTML_ALIAS_NAME, this_alias); printf (HTML_ALIAS_DEST_START); @@ -715,7 +715,7 @@ *s = '\0'; if ((s = strrchr(user, '/')) == NULL) return NULL; - if (b != NULL) { snprinth (user, sizeof(user), "%H (%H)", s+1, b); } + if (b != NULL) { snprinth (user, sizeof(user), "%H (%H)", s+1, b); } else { snprinth (user, sizeof(user), "%H", s+1); } return (user); @@ -739,7 +739,7 @@ /* back up to pipe or first slash to remove path */ while (line[len] != '/' && line[len] != '|') len--; len++; /* len is now first char of program name */ - snprinth (command, sizeof(command), "%H", &line[len]); + snprinth (command, sizeof(command), "%H", &line[len]); return(command); } else { diff -ruN ../qmailadmin-1.2.16-original/autorespond.c qmailadmin-1.2.16/autorespond.c --- ../qmailadmin-1.2.16-original/autorespond.c 2011-02-22 15:45:47.000000000 +0100 +++ qmailadmin-1.2.16/autorespond.c 2020-05-22 16:37:27.916450314 +0200 @@ -77,17 +77,17 @@ for (i = 0; (addr = sort_get_entry(i)); ++i) { printf (""); - printf (""); + printf (""); printh ("", cgiurl("delautorespond"), addr); - printf ("", IMAGEURL); + printf ("delete_forever"); printf (""); - printf (""); + printf (""); printh ("", cgiurl("modautorespond"), addr); - printf ("", IMAGEURL); + printf ("create"); printf (""); - printh ("%H@%H", addr, Domain); + printh ("%H@%H", addr, Domain); printf ("\n"); } diff -ruN ../qmailadmin-1.2.16-original/html/add_autorespond.html qmailadmin-1.2.16/html/add_autorespond.html --- ../qmailadmin-1.2.16-original/html/add_autorespond.html 2011-02-22 15:45:47.000000000 +0100 +++ qmailadmin-1.2.16/html/add_autorespond.html 2020-05-22 16:10:32.878023987 +0200 @@ -1,76 +1,45 @@ - - + +
- - -
-

##S

- -
- - - - - - - - - - - -
- - ##X003 - -
- - - - - - -
-
- - - - - - - - - - - - - -
##X004 @##D
##X005 
##X006 
- - +

##X003

+ + + + +
+
+ + @##D +
+ + +
+
+ +
+ + +
+
+ +
+ +
+ +
+ +
-
-
- - [  - ##X077 -  |  - ##X001 -  |  -##x -  ] - -
-
-
- -
- -
- + +
+ +
+ +
diff -ruN ../qmailadmin-1.2.16-original/html/add_forward.html qmailadmin-1.2.16/html/add_forward.html --- ../qmailadmin-1.2.16-original/html/add_forward.html 2011-02-22 15:45:47.000000000 +0100 +++ qmailadmin-1.2.16/html/add_forward.html 2020-05-22 16:10:32.878023987 +0200 @@ -1,85 +1,35 @@ - - + +
- +

##X007

-
-

##S

- -
- - - - - - - - - - - - -
- - ##X007 - -
- - - - - - -
-
- - - - - - - - - - - - - - - - -
##X106 ##X305
- @##D - -  ##X306  - -
##X010 -
   - -
-
-
-
- - [  - ##X122 -  |  - ##X001 -  |  -##x -  ] - -
-
-
- -
- -
+
+ + +
+
+ @##D +
+ + +
+
+ + ##X010 +
+ + +
+ +
+ +
+ +
\ No newline at end of file diff -ruN ../qmailadmin-1.2.16-original/html/add_listdig.html qmailadmin-1.2.16/html/add_listdig.html --- ../qmailadmin-1.2.16-original/html/add_listdig.html 2011-02-22 15:45:47.000000000 +0100 +++ qmailadmin-1.2.16/html/add_listdig.html 2020-05-22 16:10:32.879023977 +0200 @@ -1,68 +1,34 @@ - - + - - -
-

##S

- -
- - - - - - - - - - - -
- - ##X241 - -
- - - - - - -
-

##X241 ##A@##D

-
- - - - - -
##X013 
- - -
-
-
- - [  - ##X080 -  |  - ##X001 -  |  -##x -  ] - -
-
-
- -
- -
+
+ +

##X241

+ +
##X241 ##A@##D
+ +
+ + +
+ + +
+ + + + +
+ +
+ + +
+ +
\ No newline at end of file diff -ruN ../qmailadmin-1.2.16-original/html/add_listmod.html qmailadmin-1.2.16/html/add_listmod.html --- ../qmailadmin-1.2.16-original/html/add_listmod.html 2011-02-22 15:45:47.000000000 +0100 +++ qmailadmin-1.2.16/html/add_listmod.html 2020-05-22 16:10:32.879023977 +0200 @@ -1,68 +1,34 @@ - - + - - -
-

##S

- -
- - - - - - - - - - - -
- - ##X011 - -
- - - - - - -
-

##X012 ##A@##D

-
- - - - - -
##X013 
- - -
-
-
- - [  - ##X080 -  |  - ##X001 -  |  -##x -  ] - -
-
-
- -
- -
+
+ +

##X011

+ +
##X012 ##A@##D
+ +
+ + +
+ + +
+ + + + +
+ +
+ + +
+ +
\ No newline at end of file diff -ruN ../qmailadmin-1.2.16-original/html/add_listuser.html qmailadmin-1.2.16/html/add_listuser.html --- ../qmailadmin-1.2.16-original/html/add_listuser.html 2011-02-22 15:45:47.000000000 +0100 +++ qmailadmin-1.2.16/html/add_listuser.html 2020-05-22 16:10:32.879023977 +0200 @@ -1,68 +1,34 @@ - - + - - -
-

##S

- -
- - - - - - - - - - - -
- - ##X014 - -
- - - - - - -
-

##X014 ##A@##D

-
- - - - - -
##X013 
- - -
-
-
- - [  - ##X080 -  |  - ##X001 -  |  -##x -  ] - -
-
-
- -
- -
+
+ +

##X014

+ +
##X014 ##A@##D
+ +
+ + +
+ + +
+ + + + +
+ +
+ + +
+ +
\ No newline at end of file diff -ruN ../qmailadmin-1.2.16-original/html/add_mailinglist-idx.html qmailadmin-1.2.16/html/add_mailinglist-idx.html --- ../qmailadmin-1.2.16-original/html/add_mailinglist-idx.html 2011-02-22 15:45:47.000000000 +0100 +++ qmailadmin-1.2.16/html/add_mailinglist-idx.html 2020-05-22 16:10:32.879023977 +0200 @@ -1,76 +1,45 @@ - - + + +
+ +

##X015

+ +
+ + +
+ + + @##D +
+ + +
+ + +
+ + +
+ + +
- - -
-

##S

- -
- - - - - - - - - - - -
- - ##X015 - -
- - - - - - -
- - - - - - - - - - - - - - -
##X016@##D
##X017
##X256
##E -
- -
-
- - [  - ##X080 -  |  - ##X001 -  |  -##x -  ] - -
-
-
- -
- -
+
+ + + +
+ +
+ +
\ No newline at end of file diff -ruN ../qmailadmin-1.2.16-original/html/add_mailinglist-no-idx.html qmailadmin-1.2.16/html/add_mailinglist-no-idx.html --- ../qmailadmin-1.2.16-original/html/add_mailinglist-no-idx.html 2011-02-22 15:45:47.000000000 +0100 +++ qmailadmin-1.2.16/html/add_mailinglist-no-idx.html 2020-05-22 16:10:32.880023968 +0200 @@ -1,73 +1,42 @@ - - + + +
+ +

##X015

- - -
-

##S

- -
- - - - - - - - - - - -
- - ##X015 - -
- - - - - - -
-
- - - - - - - - - - - -
##X016 
 ##X018
 ##X039
- -
-
-
- - [  - ##X080 -  |  - ##X001 -  |  -##x -  ] - -
-
-
- -
- -
+
+ + +
+ + + @##D +
+ + +
+ + +
+ +
+ + +
+ + + +
+ +
+ +
+ +
\ No newline at end of file diff -ruN ../qmailadmin-1.2.16-original/html/add_user.html qmailadmin-1.2.16/html/add_user.html --- ../qmailadmin-1.2.16-original/html/add_user.html 2011-02-22 15:45:47.000000000 +0100 +++ qmailadmin-1.2.16/html/add_user.html 2020-05-22 16:10:32.880023968 +0200 @@ -1,93 +1,66 @@ - - + +
- - -
-

##S

- -
- - - - - - - - - - - -
- - ##X090 - -
- - - - - - -
-
- - - - - + +

##D

+ + +
##X090
+ + + + +
+ + + @##D +
##tq - - - - + + +
+ + + ##X251 +
##tt - - - - - - - - - - - - + +
+ + +
+ + +
+ + +
+ + +
+ + +
##ts - - - - + +
+
+ +
##tt -
##X002: @##D
##X249:  ##X251
##X057: 
##X091 
##X092: 
##X304 - -
##c - -
-
-
- - [  - ##X061 -  |  - ##X001 -  |  -##x -  ] - -
-
-
- -
- -
+ + + +
+ +
+ +
\ No newline at end of file diff -ruN ../qmailadmin-1.2.16-original/html/change_password.html qmailadmin-1.2.16/html/change_password.html --- ../qmailadmin-1.2.16-original/html/change_password.html 2011-02-22 15:45:47.000000000 +0100 +++ qmailadmin-1.2.16/html/change_password.html 2020-05-22 16:10:32.880023968 +0200 @@ -1,36 +1,38 @@ - - -
-

##S

-
- - - - - - - - - - - - - - - - - - - - - - - -
##X013
##X057:
##X110:
##X091
- - - -
##R
-
-
+ +
+ +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + + + + + +
+ +
\ No newline at end of file diff -ruN ../qmailadmin-1.2.16-original/html/change_password_success.html qmailadmin-1.2.16/html/change_password_success.html --- ../qmailadmin-1.2.16-original/html/change_password_success.html 2011-02-22 15:45:47.000000000 +0100 +++ qmailadmin-1.2.16/html/change_password_success.html 2020-05-22 16:10:32.880023968 +0200 @@ -1,7 +1,9 @@ - - -
-

##X139

+ + +
+ +

##X139

+ ##R -
+ \ No newline at end of file diff -ruN ../qmailadmin-1.2.16-original/html/del_autorespond_confirm.html qmailadmin-1.2.16/html/del_autorespond_confirm.html --- ../qmailadmin-1.2.16-original/html/del_autorespond_confirm.html 2011-02-22 15:45:47.000000000 +0100 +++ qmailadmin-1.2.16/html/del_autorespond_confirm.html 2020-05-22 16:10:32.881023958 +0200 @@ -1,52 +1,27 @@ - - -
-

##S

- -
- - - - - - - - - - - -
- - ##X098 - -
- - - - - - -
-

##X098 ##A@##D?

-
+ + +
+ +

##X098

+ +
##X098 ##A@##D?
+ + - - -
-
- - [  - ##X077 -  |  - ##X001 -  |  -##x -  ] - -
-
-
- -
- -
+ + + + + +
+ +
\ No newline at end of file diff -ruN ../qmailadmin-1.2.16-original/html/del_forward_confirm.html qmailadmin-1.2.16/html/del_forward_confirm.html --- ../qmailadmin-1.2.16-original/html/del_forward_confirm.html 2011-02-22 15:45:47.000000000 +0100 +++ qmailadmin-1.2.16/html/del_forward_confirm.html 2020-05-22 16:10:32.881023958 +0200 @@ -1,52 +1,23 @@ - - -
-

##S

- -
- - - - - - - - - - - -
- - ##X100 - -
- - - - - - -
-

##X100 ##A@##D?

-
- - -
-
-
- - [  - ##X122 -  |  - ##X001 -  |  -##x -  ] - -
-
-
- -
- -
+ +
+ +

##X100

+ +
##X100 ##A@##D?
+ +
+ + +
+ +
+
+ +
\ No newline at end of file diff -ruN ../qmailadmin-1.2.16-original/html/del_listdig.html qmailadmin-1.2.16/html/del_listdig.html --- ../qmailadmin-1.2.16-original/html/del_listdig.html 2011-02-22 15:45:47.000000000 +0100 +++ qmailadmin-1.2.16/html/del_listdig.html 2020-05-22 16:10:32.881023958 +0200 @@ -1,58 +1,32 @@ - - -
-

##S

- -
- - - - - - - - - - - -
- - ##X243 - -
- - - - - - -
-

##X243 ##A@##D?

-
- - - - - -
##X013 
- - -
-
-
- - [  - ##X080 -  |  - ##X001 -  |  -##x -  ] - -
-
-
- -
- -
+ + +
+ +

##X243

+ +
##X243 ##A@##D?
+ +
+ + +
+ + +
+ + + +
+ +
+ +
+ +
\ No newline at end of file diff -ruN ../qmailadmin-1.2.16-original/html/del_listmod.html qmailadmin-1.2.16/html/del_listmod.html --- ../qmailadmin-1.2.16-original/html/del_listmod.html 2011-02-22 15:45:47.000000000 +0100 +++ qmailadmin-1.2.16/html/del_listmod.html 2020-05-22 16:10:32.881023958 +0200 @@ -1,58 +1,33 @@ - - -
-

##S

- -
- - - - - - - - - - - -
- - ##X196 - -
- - - - - - -
-

##X196 ##A@##D?

-
- - - - - -
##X013 
- - -
-
-
- - [  - ##X080 -  |  - ##X001 -  |  -##x -  ] - -
-
-
- -
- -
+ + +
+ +

##X196

+ +
##X196 ##A@##D?
+ +
+ + +
+ + +
+ + + + +
+ +
+ +
+ +
\ No newline at end of file diff -ruN ../qmailadmin-1.2.16-original/html/del_listuser.html qmailadmin-1.2.16/html/del_listuser.html --- ../qmailadmin-1.2.16-original/html/del_listuser.html 2011-02-22 15:45:47.000000000 +0100 +++ qmailadmin-1.2.16/html/del_listuser.html 2020-05-22 16:10:32.881023958 +0200 @@ -1,58 +1,31 @@ - - -
-

##S

- -
- - - - - - - - - - - -
- - ##X195 - -
- - - - - - -
-

##X195 ##A@##D?

-
- - - - - -
##X013 
- - -
-
-
- - [  - ##X080 -  |  - ##X001 -  |  -##x -  ] - -
-
-
- -
- -
+ + +
+ +

##X195

+ +
##X195 ##A@##D?
+ +
+ +
+
+ +
+ + + +
+ +
+ +
+ +
\ No newline at end of file diff -ruN ../qmailadmin-1.2.16-original/html/del_mailinglist_confirm.html qmailadmin-1.2.16/html/del_mailinglist_confirm.html --- ../qmailadmin-1.2.16-original/html/del_mailinglist_confirm.html 2011-02-22 15:45:47.000000000 +0100 +++ qmailadmin-1.2.16/html/del_mailinglist_confirm.html 2020-05-22 16:10:32.882023948 +0200 @@ -1,52 +1,25 @@ - - -
-

##S

- -
- - - - - - - - - - - -
- - ##X101 - -
- - - - - - -
-

##X101 ##A@##D?

-
- - -
-
-
- - [  - ##X080 -  |  - ##X001 -  |  -##x -  ] - -
-
-
- -
- -
+ + +
+ +

##X101

+ +
##X101 ##A@##D?
+ +
+ + +
+ +
+ +
+ +
\ No newline at end of file diff -ruN ../qmailadmin-1.2.16-original/html/del_user_confirm.html qmailadmin-1.2.16/html/del_user_confirm.html --- ../qmailadmin-1.2.16-original/html/del_user_confirm.html 2011-02-22 15:45:47.000000000 +0100 +++ qmailadmin-1.2.16/html/del_user_confirm.html 2020-05-22 16:10:32.882023948 +0200 @@ -1,59 +1,39 @@ - - -
-

##S

- -
- - - - - - - - - - - -
- - ##X102 - -
- - - - - - -
-

##X102 ##A@##D?

-
-  ##X103
- - - - - -
##X104 
- - -
-
-
- - [  - ##X061 -  |  - ##X001 -  |  -##x -  ] - -
-
-
- -
- -
+ + +
+

##X102

+ +
##X102 ##A@##D?
+ +
+ + +
+ + +
+ + + ##ta +
+ + +
+ + + +
+
+ +
+ +
\ No newline at end of file diff -ruN ../qmailadmin-1.2.16-original/html/footer.html qmailadmin-1.2.16/html/footer.html --- ../qmailadmin-1.2.16-original/html/footer.html 2011-02-22 15:45:47.000000000 +0100 +++ qmailadmin-1.2.16/html/footer.html 2020-05-22 16:10:32.882023948 +0200 @@ -1,2 +1,13 @@ - + + + + + + + + + + diff -ruN ../qmailadmin-1.2.16-original/html/header.html qmailadmin-1.2.16/html/header.html --- ../qmailadmin-1.2.16-original/html/header.html 2011-02-22 15:45:47.000000000 +0100 +++ qmailadmin-1.2.16/html/header.html 2020-05-22 16:10:32.882023948 +0200 @@ -1,6 +1,59 @@ - - - - QmailAdmin ##D - - + + + + + + + + + + + QmailAdmin ##D + + + + + + + + + + + +
+
+
+ +

##S

+
+
+
+ +
+
\ No newline at end of file diff -ruN ../qmailadmin-1.2.16-original/html/main_menu.html qmailadmin-1.2.16/html/main_menu.html --- ../qmailadmin-1.2.16-original/html/main_menu.html 2011-02-22 15:45:47.000000000 +0100 +++ qmailadmin-1.2.16/html/main_menu.html 2020-05-22 16:10:32.882023948 +0200 @@ -1,36 +1,9 @@ - - - -
-

##S

- - - - - - - - - - - -
- ##v -
-##X217 -
##x -
- ##ta -
-
- ##X124
- @##D
-   -
- ##tt -
-
+
+ + ##v +
  • ##x
+
+
+ + +
\ No newline at end of file diff -ruN ../qmailadmin-1.2.16-original/html/mod_autorespond.html qmailadmin-1.2.16/html/mod_autorespond.html --- ../qmailadmin-1.2.16-original/html/mod_autorespond.html 2011-02-22 15:45:47.000000000 +0100 +++ qmailadmin-1.2.16/html/mod_autorespond.html 2020-05-22 16:10:32.883023939 +0200 @@ -1,71 +1,55 @@ - - + - +template.c line 223 + value="%H@%H"> +
+ + // subject/alias +
+ + +
+ + // message +
+ +
+--> + + + + + +
-
-

##S

- - +
- - - - - - - - - - - -
- - ##X105 - -
- - - - - -
-
- - - - - - - - - - -
##X004 ##A@##D
##X005  - - -
-
- - [  - ##X077 -  |  - ##X001 -  |  -##x -  ] - -
-
-
- -
- - +
+ +
\ No newline at end of file diff -ruN ../qmailadmin-1.2.16-original/html/mod_dotqmail.html qmailadmin-1.2.16/html/mod_dotqmail.html --- ../qmailadmin-1.2.16-original/html/mod_dotqmail.html 2011-02-22 15:45:47.000000000 +0100 +++ qmailadmin-1.2.16/html/mod_dotqmail.html 2020-05-22 16:10:32.883023939 +0200 @@ -1,83 +1,41 @@ - - + +
- - -
-

##S

- -
- - - - - - - - - - - -
- - ##X071 - -
- - - - - - - ##I +

##X071

+ +
##X106##X305##X072
+ + + + + + + ##I +
##X106##X305##X072
- - - - - - - - - - - + - - - - -
- ##X108 - - ##X305
-
##X010 -
  + + + +
+
+ + ##X010 +
+ -
-
-
- - [  - ##X122 -  |  - ##X001 -  |  -##x -  ] - -
-
-
- -
- -
+ + +
+
+ +
diff -ruN ../qmailadmin-1.2.16-original/html/mod_mailinglist-idx.html qmailadmin-1.2.16/html/mod_mailinglist-idx.html --- ../qmailadmin-1.2.16-original/html/mod_mailinglist-idx.html 2011-02-22 15:45:47.000000000 +0100 +++ qmailadmin-1.2.16/html/mod_mailinglist-idx.html 2020-05-22 16:10:32.883023939 +0200 @@ -1,75 +1,41 @@ - - - - - - - -
-

##S

- -
- - - - - - - - - - - -
- - ##X225 ##A@##D - -
- - - - - - -
-
- - - - - - - - - -
##X017
##X256
+ + +
+ +

##X225 ##A@##D

+ + + + +
+ + +
+ + +
+ + +
+ ##E - -
- -
-
- - [  - ##X080 -  |  - ##X001 -  |  -##x -  ] - -
-
-
- -
- -
+ +
+ + + + + + + +
+ +
diff -ruN ../qmailadmin-1.2.16-original/html/mod_user.html qmailadmin-1.2.16/html/mod_user.html --- ../qmailadmin-1.2.16-original/html/mod_user.html 2011-02-22 15:45:47.000000000 +0100 +++ qmailadmin-1.2.16/html/mod_user.html 2020-05-22 16:26:06.763988049 +0200 @@ -1,151 +1,154 @@ - - - - - - -
-

##S

- -
- - - - - - - - - - - - -
- - ##X109: ##A@##D - -
- - - - - -
-
- - - - - - - - - - - - - - -##tq - - - +
+ + +

##X109: ##A@##D

+ + + + + +
+ + +
+ + +
+ + +
+ + +
+ + +
+##tq + + ##ta +
+ + + ##X251 +
+ ##tt + + ##tu +
+ + + ##Q ##q MB +
+ ##tt ##tt -
##X092:
##X110:
##X091
##X249: -##ta - -  ##X251 -##tt -##tu ##Q ##q ##tt -

- - - - - -
##X260: - ##X205 -
- ##X303 -
-  ##X211 
-    ##X210  -

- ##X212
- ##X213  -
##X214 
- -
- + + +

##X260

+ + +
+ + +
+ + +
+ + +
+ + +
+ + + +     + +
+ +
+ + +
+ + +
+ + +

+ + +
+ +
+ + +
+ + + ##ts - - - - +
+ + +
##tt - - - -
##X304: - -
- -
+
- -
-
-
- - [  -##ta - ##X061 -  |  - ##X001 -  |  + +
+ +
+
-
- -
- -
+ + ##x + + diff -ruN ../qmailadmin-1.2.16-original/html/setremotecatchall.html qmailadmin-1.2.16/html/setremotecatchall.html --- ../qmailadmin-1.2.16-original/html/setremotecatchall.html 2011-02-22 15:45:47.000000000 +0100 +++ qmailadmin-1.2.16/html/setremotecatchall.html 2020-05-22 16:10:32.884023929 +0200 @@ -1,66 +1,29 @@ - - + +
- - -
-

##S

- -
- - - - - - - - - - - -
- - ##X207 - -
- - - - - - -
-
- - - - - -
##X208 
- -
-
-
- - [  - ##X061 -  |  - ##X001 -  |  -##x -  ] - -
-
-
- -
- -
+

##X207

+ +
+ +
+ + +
+ + +
+ +
+ +
+ +
\ No newline at end of file diff -ruN ../qmailadmin-1.2.16-original/html/show_autorespond.html qmailadmin-1.2.16/html/show_autorespond.html --- ../qmailadmin-1.2.16-original/html/show_autorespond.html 2011-02-22 15:45:47.000000000 +0100 +++ qmailadmin-1.2.16/html/show_autorespond.html 2020-05-22 16:10:32.884023929 +0200 @@ -1,53 +1,32 @@ - - -
-

##S

- -
- - - - - - - - - - - - - - -
##D##X077[##X254 ##K]
- - - - - -
- - - - - - + + +
+ +

##D

+ +
##X077 ##X254 ##K
+ +
##X072##X071##X078
+ + + + + + ##g -
##X072##X071##X078
-
-
- - [  - ##X079 -  |  - ##X001 -  |  -##x -  ] - -
-
-
- -
-
+
+ + + +
+ +
\ No newline at end of file diff -ruN ../qmailadmin-1.2.16-original/html/show_digest_subscribers.html qmailadmin-1.2.16/html/show_digest_subscribers.html --- ../qmailadmin-1.2.16-original/html/show_digest_subscribers.html 2011-02-22 15:45:47.000000000 +0100 +++ qmailadmin-1.2.16/html/show_digest_subscribers.html 2020-05-22 16:10:32.884023929 +0200 @@ -1,55 +1,22 @@ - - -
-

##S

- -
- - - - - - - - - - - -
- - ##X247 - -
- - - - - - -
- - - - -
- ##X248 ##A@##D

- ##G -

-
-
- - [  - ##X080 -  |  - ##X001 -  |  -##x -  ] - -
-
-
- -
- -
+ + +
+ +

##X247

+ +
##X248 ##A@##D
+ + ##G + +
+ +
+ +
\ No newline at end of file diff -ruN ../qmailadmin-1.2.16-original/html/show_forwards.html qmailadmin-1.2.16/html/show_forwards.html --- ../qmailadmin-1.2.16-original/html/show_forwards.html 2011-02-22 15:45:47.000000000 +0100 +++ qmailadmin-1.2.16/html/show_forwards.html 2020-05-22 16:10:32.885023919 +0200 @@ -1,55 +1,32 @@ - - -
-

##S

- -
- - - - - - - - - - - - - -
##D##X074[##X254 ##k]
- - - - - - -
- - - - - - + +
+ +

##D

+ + +
##X074 ##X254 ##k
+ +
##X072##X071##X106##X305
+ + + + + + + ##d -
##X072##X071##X106##X305
-
-
- - [  - ##X076 -  |  - ##X001 -  |  -##x -  ] - -
-
-
- -
- -
+ + + +
+ +
diff -ruN ../qmailadmin-1.2.16-original/html/show_login.html qmailadmin-1.2.16/html/show_login.html --- ../qmailadmin-1.2.16-original/html/show_login.html 2011-02-22 15:45:47.000000000 +0100 +++ qmailadmin-1.2.16/html/show_login.html 2020-05-22 16:10:32.885023919 +0200 @@ -1,126 +1,26 @@ - - +
- - -
-

##S

- - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
- - -
-
- - -
-
- - -
-
- -
- - - - - - - - - - -
##X112
##X113
##X057
- - - -
##X316
-
- - -
- - -
-
- - - -
-
- - - -
-
- - - - -
-
- ##V -
-
-
- -##th - ##X257
- ##X258
- ##X259 -##tt -
- - -
-
- - -
-
- - -
-
- - -
-
-
+ + +

[ ##X316 ]

+ +
\ No newline at end of file diff -ruN ../qmailadmin-1.2.16-original/html/show_mailinglist.html qmailadmin-1.2.16/html/show_mailinglist.html --- ../qmailadmin-1.2.16-original/html/show_mailinglist.html 2011-02-22 15:45:47.000000000 +0100 +++ qmailadmin-1.2.16/html/show_mailinglist.html 2020-05-22 16:10:32.885023919 +0200 @@ -1,48 +1,23 @@ - - -
-

##S

- -
- - - - - - - - - - - - - -
##D##X080[##X254 ##j]
- - - - - - -
- - ##e -
-
-
- - [  - ##X089 -  |  - ##X001 -  |  -##x -  ] - -
-
-
- -
- -
+ + +
+ +

##D

+ +
##X080 ##X254 ##j
+ + + ##e +
+ +
+ + +
\ No newline at end of file diff -ruN ../qmailadmin-1.2.16-original/html/show_moderators.html qmailadmin-1.2.16/html/show_moderators.html --- ../qmailadmin-1.2.16-original/html/show_moderators.html 2011-02-22 15:45:47.000000000 +0100 +++ qmailadmin-1.2.16/html/show_moderators.html 2020-05-22 16:10:32.885023919 +0200 @@ -1,55 +1,24 @@ - - -
-

##S

- -
- - - - - - - - - - - -
- - ##X219 - -
- - - - - - -
- - - - -
- ##X191 ##A@##D

- ##o -

-
-
- - [  - ##X080 -  |  - ##X001 -  |  -##x -  ] - -
-
-
- -
- -
+ + +
+ +

##X219

+ +
##X191 ##A@##D
+ + + ##o + +
+ + +
+ +
\ No newline at end of file diff -ruN ../qmailadmin-1.2.16-original/html/show_subscribers.html qmailadmin-1.2.16/html/show_subscribers.html --- ../qmailadmin-1.2.16-original/html/show_subscribers.html 2011-02-22 15:45:47.000000000 +0100 +++ qmailadmin-1.2.16/html/show_subscribers.html 2020-05-22 16:10:32.885023919 +0200 @@ -1,55 +1,25 @@ - - -
-

##S

- -
- - - - - - - - - - - -
- - ##X221 - -
- - - - - - -
- - - - -
-

##X189 ##A@##D

- ##M -
-
-
- - [  - ##X080 -  |  - ##X001 -  |  -##x -  ] - -
-
-
- -
- -
+ + +
+ + +

##X221

+ + +
##X189 ##A@##D
+ + + ##M + +
+ +
+ +
diff -ruN ../qmailadmin-1.2.16-original/html/show_users.html qmailadmin-1.2.16/html/show_users.html --- ../qmailadmin-1.2.16-original/html/show_users.html 2011-02-22 15:45:47.000000000 +0100 +++ qmailadmin-1.2.16/html/show_users.html 2020-05-22 16:10:32.886023909 +0200 @@ -1,61 +1,37 @@ - - -
-

##S

- -
- - - - - - - - - - - - - -
##D##X061[##X254 ##B]
- - - - - - -
- - - - - - - - - - - - - - - ##p -
##s
##X002##X063##X250 / ##X249  ##X064##X065##X066
-
-
- - [  - ##X067 -  |  - ##X001 -  |  -##x -  ] - -
-
-
- -
- -
+ +
+ +

##D

+ + +
##X061 ##X254 ##B
+ +
##s
+ + + + + + + + + + + + + + ##p + +
##X002##X063##X250##X249##X064##X065##X066
+ +
+
+ +
\ No newline at end of file diff -ruN ../qmailadmin-1.2.16-original/html.h qmailadmin-1.2.16/html.h --- ../qmailadmin-1.2.16-original/html.h 2011-02-22 15:45:48.000000000 +0100 +++ qmailadmin-1.2.16/html.h 2020-05-22 16:10:32.886023909 +0200 @@ -18,47 +18,46 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ -#define HTML_MENU_START "[ " -#define HTML_MENU_SEP " | " -#define HTML_MENU_END " ]" +#define HTML_MENU_START "[ " +#define HTML_MENU_SEP " | " +#define HTML_MENU_END " ]" #define HTML_EMPTY_TD " " -#define HTML_BTN_GENERIC "" -#define HTML_BTN_DELETE "" +#define HTML_BTN_GENERIC "clear" +#define HTML_BTN_DELETE "delete_forever" #define HTML_ALIAS_ERROR "%s %s\n" #define HTML_ALIAS_ROW_START "" #define HTML_ALIAS_ROW_END "\n" -#define HTML_ALIAS_NAME "%H" +#define HTML_ALIAS_NAME "%H" // start of the list of destination addresses -#define HTML_ALIAS_DEST_START "" +#define HTML_ALIAS_DEST_START "" #define HTML_ALIAS_DEST_END "" // Possible destinations in list // BLACKHOLE uses text string 303 (All mail deleted) -#define HTML_ALIAS_BLACKHOLE "%s" +#define HTML_ALIAS_BLACKHOLE "%s" // LOCAL is for local addresses (no domain shown) #define HTML_ALIAS_LOCAL "%H" // INVALID is for local addresses that no longer exist (error condition) -#define HTML_ALIAS_INVALID "%H" +#define HTML_ALIAS_INVALID "%H" // REMOTE is for remote addresses (domain is shown) #define HTML_ALIAS_REMOTE "%H" #define HTML_ALIAS_SHOWPAGE "%s" #define HTML_ALIAS_DOSEARCH "%s" -#define HTML_ALIAS_FOOTER_START "" +#define HTML_ALIAS_FOOTER_START "" #define HTML_ALIAS_FOOTER_END "" // HTML from the "modify alias" page #define HTML_ALIAS_MOD_ROW_START "" #define HTML_ALIAS_MOD_ROW_END "" -#define HTML_ALIAS_MOD_NAME "%H" -#define HTML_ALIAS_MOD_DEST "%s\n" -#define HTML_ALIAS_MOD_DELETE "" \ +#define HTML_ALIAS_MOD_NAME "%H" +#define HTML_ALIAS_MOD_DEST "%s\n" +#define HTML_ALIAS_MOD_DELETE "" \ "" HTML_BTN_DELETE "\n" - diff -ruN ../qmailadmin-1.2.16-original/images/style.css qmailadmin-1.2.16/images/style.css --- ../qmailadmin-1.2.16-original/images/style.css 1970-01-01 01:00:00.000000000 +0100 +++ qmailadmin-1.2.16/images/style.css 2020-05-22 16:10:32.886023909 +0200 @@ -0,0 +1,77 @@ +.mt {margin-top: 40px;} +.mo {margin-left: 15px; margin-right: 15px;} +.mbc {margin-bottom: 90px;} +.p0, .p0 a {padding: 0px;} +footer { + font-size: 80%; + padding-top: 10px; + background-color: #ebebeb; + text-align: center; +} +h2 {margin-bottom: 40px;} +h5 {padding-bottom: 20px;} + +.form-signin { + width: 100%; + max-width: 330px; + padding: 15px; + margin: auto; +} +.form-signin .checkbox { + font-weight: 400; +} +.form-signin .form-control { + position: relative; + box-sizing: border-box; + height: auto; + padding: 10px; + font-size: 16px; +} +.form-signin .form-control:focus { + z-index: 2; +} +.form-signin input[type="password"] {margin-bottom: 10px;} +.my-input, input[type="text"] { + border: 1px solid #ced4da; + border-radius: .25rem; + padding-left: 5px; + padding-right: 5px; + margin-right: 10px; +} +.my-select { + padding: .1rem .1rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #ced4da; + border-radius: .25rem; + transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out; +} +td input[type="radio"] { + margin-left: 5px; + margin-right: 5px; +} +.btn-block, .btn-primary, .badge-primary { + background-color: #337ab7; + border-color: #2e6da4; +} +.d-flex div { + padding: .75rem 1.25rem; + margin-bottom: 20px; + margin-right: 20px; + border: 1px solid #ced4da; + border-radius: .25rem; + transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out; +} +.material-icons { + color:#555; + vertical-align:middle; +} + +.table.big thead th { + font-size: 0.8rem; + padding: .40rem; +} diff -ruN ../qmailadmin-1.2.16-original/lang/en qmailadmin-1.2.16/lang/en --- ../qmailadmin-1.2.16-original/lang/en 2011-02-22 15:45:48.000000000 +0100 +++ qmailadmin-1.2.16/lang/en 2020-05-22 16:10:32.886023909 +0200 @@ -8,7 +8,7 @@ 007 Add Forward Account: 008 Forward Email Address: 009 Local Name: -010 (Account name to forward to
OR
full email address if forwarding to another domain) +010 (Account name to forward to OR full email address if forwarding to another domain.) 011 Add List Moderator 012 Add Moderator to mailing list 013 Email Address: diff -ruN ../qmailadmin-1.2.16-original/lang/it qmailadmin-1.2.16/lang/it --- ../qmailadmin-1.2.16-original/lang/it 2011-02-22 15:45:48.000000000 +0100 +++ qmailadmin-1.2.16/lang/it 2020-05-22 16:10:32.886023909 +0200 @@ -8,7 +8,7 @@ 007 Aggiungi Forward: 008 Indirizzo Email Forward: 009 Casella locale: -010 L'indirizzo destinatario dell'inoltro deve essere indicato nella forma casella@dominio.xxx.
Il nome locale deve essere indicato nella forma: casella
Esempio:
Forward: remo@remo.it Nome locale: pluto
In questo modo tutto cio' che sara' inviato alla casella pluto del vostro dominio sara' inoltrato a remo@remo.it +010 L'indirizzo destinatario dell'inoltro deve essere indicato nella forma casella@dominio.xxx.
Il nome locale deve essere indicato nella forma: casella
Esempio:
Forward: remo@remo.it Nome locale: pluto
In questo modo tutto cio' che sara' inviato alla casella pluto del vostro dominio sara' inoltrato a remo@remo.it 011 Aggiungi moderatore della lista 012 Aggiungi moderatore alla Lista 013 Indirizzo Email: diff -ruN ../qmailadmin-1.2.16-original/mailinglist.c qmailadmin-1.2.16/mailinglist.c --- ../qmailadmin-1.2.16-original/mailinglist.c 2011-02-22 15:45:48.000000000 +0100 +++ qmailadmin-1.2.16/mailinglist.c 2020-05-22 16:10:32.887023900 +0200 @@ -110,24 +110,24 @@ } /* First display the title row */ - printf (""); - printf ("%s", html_text[72]); + printf ("\n"); + printf ("%s\n", html_text[72]); #ifdef EZMLMIDX - printf ("%s", html_text[71]); + printf ("%s\n", html_text[71]); #endif - printf ("%s", html_text[81]); - printf ("%s", html_text[83]); - printf ("%s", html_text[84]); - printf ("%s", html_text[85]); + printf ("%s\n", html_text[81]); + printf ("%s\n", html_text[83]); + printf ("%s\n", html_text[84]); + printf ("%s\n", html_text[85]); #ifdef EZMLMIDX - printf ("%s", html_text[86]); - printf ("%s", html_text[87]); - printf ("%s", html_text[88]); - printf ("%s", html_text[237]); - printf ("%s", html_text[238]); - printf ("%s", html_text[239]); + printf ("%s\n", html_text[86]); + printf ("%s\n", html_text[87]); + printf ("%s\n", html_text[88]); + printf ("%s\n", html_text[237]); + printf ("%s\n", html_text[238]); + printf ("%s\n", html_text[239]); #endif - printf ("\n"); + printf ("\n\n"); sort_init(); @@ -136,9 +136,9 @@ if ( strncmp(".qmail-", mydirent->d_name, 7) == 0 ) { if ( (fs=fopen(mydirent->d_name,"r"))==NULL) { #ifdef EZMLMIDX - printf ("%s %s\n", html_text[144], mydirent->d_name); + printf ("%s %s\n", html_text[144], mydirent->d_name); #else - printf ("%s %s\n", html_text[144], mydirent->d_name); + printf ("%s %s\n", html_text[144], mydirent->d_name); #endif continue; } @@ -158,34 +158,34 @@ str_replace (addr, ':', '.'); printf (""); - qmail_button(addr, "delmailinglist", user, dom, mytime, "trash.png"); + qmail_button(addr, "delmailinglist", user, dom, mytime, "delete_forever"); #ifdef EZMLMIDX - qmail_button(addr, "modmailinglist", user, dom, mytime, "modify.png"); + qmail_button(addr, "modmailinglist", user, dom, mytime, "create"); #endif - printh ("%H\n", addr); + printh ("%H\n", addr); - qmail_button(addr, "addlistuser", user, dom, mytime, "delete.png"); - qmail_button(addr, "dellistuser", user, dom, mytime, "delete.png"); - qmail_button(addr, "showlistusers", user, dom, mytime, "delete.png"); + qmail_button(addr, "addlistuser", user, dom, mytime, "radio_button_checked"); + qmail_button(addr, "dellistuser", user, dom, mytime, "radio_button_checked"); + qmail_button(addr, "showlistusers", user, dom, mytime, "radio_button_checked"); #ifdef EZMLMIDX - qmail_button(addr, "addlistmod", user, dom, mytime, "delete.png"); - qmail_button(addr, "dellistmod", user, dom, mytime, "delete.png"); - qmail_button(addr, "showlistmod", user, dom, mytime, "delete.png"); + qmail_button(addr, "addlistmod", user, dom, mytime, "radio_button_checked"); + qmail_button(addr, "dellistmod", user, dom, mytime, "radio_button_checked"); + qmail_button(addr, "showlistmod", user, dom, mytime, "radio_button_checked"); /* Is it a digest list? */ if ( (fs=fopen(testfn,"r"))==NULL) { /* not a digest list */ - printf (" "); + printf (" "); } else { - qmail_button(addr, "addlistdig", user, dom, mytime, "delete.png"); - qmail_button(addr, "dellistdig", user, dom, mytime, "delete.png"); - qmail_button(addr, "showlistdig", user, dom, mytime, "delete.png"); + qmail_button(addr, "addlistdig", user, dom, mytime, "radio_button_checked"); + qmail_button(addr, "dellistdig", user, dom, mytime, "radio_button_checked"); + qmail_button(addr, "showlistdig", user, dom, mytime, "radio_button_checked"); fclose(fs); } #endif - printf ("\n"); + printf ("\n\n"); } sort_cleanup(); } @@ -222,7 +222,7 @@ } if ( (mydir = opendir(".")) == NULL ) { - printf ("%s %d
\n", html_text[143], 1); + printf ("%s %d
\n", html_text[143], 1); return; } @@ -246,30 +246,27 @@ } closedir(mydir); + /* subscibe user to the following lists */ /* if there aren't any lists, don't display anything */ if (listcount == 0) { sort_cleanup(); return; } - printf ("
"); - printf (""); - printf ("\n", - html_text[95]); + printf ("

%s

\n", html_text[95]); sort_dosort(); - printf ("\n", listcount); + printf ("\n", listcount); + printf ("
    "); for (i = 0; i < listcount; ++i) { addr = sort_get_entry(i); str_replace (addr, ':', '.'); - printh ("
", i, addr); - printh ("", addr, Domain); + printh ("
  • ", i, addr); + printh ("%H@%H
  • ", addr, Domain); } - printf ("
    "); - printf ("%s
    %H@%H
    \n"); + printf ("\n"); sort_cleanup(); } @@ -715,16 +712,20 @@ /* strcpy(TmpBuf2, "084"); */ } strcpy(TmpBuf2, "072"); - printf ("\n"); - printf (" \n"); - printf (" \n", get_html_text(TmpBuf), subuser_count); - printf (" \n"); - printf (" \n", get_color_text("002")); - printf (" \n", get_html_text(TmpBuf2)); - printf (" \n", get_html_text(TmpBuf1)); - printf (" \n", get_html_text(TmpBuf2)); - printf (" \n", get_html_text(TmpBuf1)); - printf (" \n"); + /* total subscribers */ + printf ("

    %s %d

    ", get_html_text(TmpBuf), subuser_count); + + /* column names */ + /* + printf ("\n"); + printf ("\n", get_html_text(TmpBuf2)); + printf ("\n", get_html_text(TmpBuf1)); + printf ("\n", get_html_text(TmpBuf2)); + printf ("\n", get_html_text(TmpBuf1)); + printf ("\n"); + */ + + printf ("
    \n"); if(mod == 1) { strcpy(TmpBuf, "dellistmodnow"); @@ -733,25 +734,25 @@ } else { strcpy(TmpBuf, "dellistusernow"); } + for(z = 0; (addr = sort_get_entry(z)); ++z) { - printf ("
    "); - printh (" \n", - cgiurl(TmpBuf), ActionUser, addr, IMAGEURL); - printh (" \n", addr); + printh ("
    delete_forever ", + cgiurl(TmpBuf), ActionUser, addr); + printh ("%H
    \n", addr); ++z; if( (addr = sort_get_entry(z)) ) { - printh (" \n", - cgiurl(TmpBuf), ActionUser, addr, IMAGEURL); - printh (" \n", addr); + printh ("
    delete_forever ", + cgiurl(TmpBuf), ActionUser, addr); + printh ("%H
    \n", addr); } else { - printf (" "); + printf (" "); } - printf (" "); } + printf ("\n"); + sort_cleanup(); - printf ("
    %s %d

    %s%s%s%s
    %s%s%s%s
    %H%H
    "); fclose(fs); close(handles[0]); wait(&pid); snprintf (StatusMessage, sizeof(StatusMessage), "%s\n", html_text[190]); @@ -921,7 +922,7 @@ FILE *fs; if ( (mydir = opendir(".")) == NULL ) { - printf ("%s %d
    \n", html_text[143], 1); + printf ("%s %d
    \n", html_text[143], 1); printf (""); return; } @@ -1253,93 +1254,93 @@ snprinth (listname, sizeof(listname), "%H", dotqmail_name); str_replace (listname, ':', '.'); } else { - sprintf (listname, "%s", html_text[261]); + sprintf (listname, "%s", html_text[261]); } /* Posting Messages */ - printf ("

    %s
    \n", html_text[262]); - build_option_str ("RADIO", "opt1", "MU", html_text[263]); - printf ("
    \n"); - build_option_str ("RADIO", "opt1", "Mu", html_text[264]); - printf ("
    \n"); - build_option_str ("RADIO", "opt1", "mu", html_text[265]); - printf ("
    \n"); - build_option_str ("RADIO", "opt1", "mUo", html_text[266]); - printf ("
    \n"); - build_option_str ("RADIO", "opt1", "mUO", html_text[267]); - printf ("

    \n"); + printf ("

    %s

    \n

    \n", html_text[262]); + build_option_str ("radio", "opt1", "MU", html_text[263]); + printf ("
    \n"); + build_option_str ("radio", "opt1", "Mu", html_text[264]); + printf ("
    \n"); + build_option_str ("radio", "opt1", "mu", html_text[265]); + printf ("
    \n"); + build_option_str ("radio", "opt1", "mUo", html_text[266]); + printf ("
    \n"); + build_option_str ("radio", "opt1", "mUO", html_text[267]); + printf ("

    \n"); /* List Options */ - printf ("

    %s
    \n", html_text[268]); + printf ("

    %s

    \n

    \n", html_text[268]); /* this next option isn't necessary since we use the edit box to * set/delete the prefix sprintf (TmpBuf, html_text[269], listname); - build_option_str ("CHECKBOX", "opt3", "f", TmpBuf); - printf ("
    \n"); + build_option_str ("checkbox", "opt3", "f", TmpBuf); + printf ("

    \n"); */ - printf ("", + printf ("
    %s
    ", html_text[310]); - printf ("\n", - REPLYTO_SENDER, (replyto == REPLYTO_SENDER) ? " CHECKED" : "", html_text[311]); - printf ("\n", - REPLYTO_LIST, (replyto == REPLYTO_LIST) ? " CHECKED" : "", html_text[312]); - printf ("\n", + printf ("\n", + REPLYTO_SENDER, (replyto == REPLYTO_SENDER) ? " checked" : "", html_text[311]); + printf ("\n", + REPLYTO_LIST, (replyto == REPLYTO_LIST) ? " checked" : "", html_text[312]); + printf ("\n", replyto_addr); - printf ("
    %s%s
    %s
    %s ", - REPLYTO_ADDRESS, (replyto == REPLYTO_ADDRESS) ? " CHECKED" : "", html_text[313]); - printh ("
    %s
    %s
    %s ", + REPLYTO_ADDRESS, (replyto == REPLYTO_ADDRESS) ? " checked" : "", html_text[313]); + printh ("

    \n"); - build_option_str ("CHECKBOX", "opt4", "t", html_text[270]); - printf ("
    \n"); - build_option_str ("CHECKBOX", "opt5", "d", html_text[271]); + printf ("
    \n"); + build_option_str ("checkbox", "opt4", "t", html_text[270]); + printf ("
    \n"); + build_option_str ("checkbox", "opt5", "d", html_text[271]); sprintf (TmpBuf, html_text[272], listname); - printf ("(%s)", TmpBuf); - printf ("
    \n"); + printf ("(%s)", TmpBuf); + printf ("
    \n"); sprintf (TmpBuf, html_text[273], listname); - build_option_str ("CHECKBOX", "opt6", "q", TmpBuf); - printf ("
    \n"); + build_option_str ("checkbox", "opt6", "q", TmpBuf); + printf ("
    \n"); sprintf (TmpBuf, html_text[274], listname, listname, listname); - printf ("    (%s)

    ", TmpBuf); + printf ("    (%s)

    ", TmpBuf); /* Remote Administration */ - printf ("

    %s
    \n", html_text[275]); - build_option_str ("CHECKBOX", "opt7", "r", html_text[276]); - printf ("
    \n"); - build_option_str ("CHECKBOX", "opt8", "P", html_text[277]); - printf ("(%s)
    ", html_text[278]); - printf ("", + printf ("

    %s

    \n

    \n", html_text[275]); + build_option_str ("checkbox", "opt7", "r", html_text[276]); + printf ("
    \n"); + build_option_str ("checkbox", "opt8", "P", html_text[277]); + printf ("(%s)
    ", html_text[278]); + printf ("

    %s
    ", html_text[279]); - printf ("\n\n\n", html_text[282]); - printf ("
    %s"); - build_option_str ("CHECKBOX", "opt9", "l", html_text[280]); - printf ("
    "); - build_option_str ("CHECKBOX", "opt10", "n", html_text[281]); - printf ("(%s).
    \n

    \n"); - - printf ("

    %s
    \n", html_text[283]); - printf ("%s
    \n    ", html_text[284]); - build_option_str ("CHECKBOX", "opt11", "H", html_text[285]); - printf ("
    \n    "); - build_option_str ("CHECKBOX", "opt12", "s", html_text[286]); - printf ("
    \n%s
    \n    ", html_text[287]); - build_option_str ("CHECKBOX", "opt13", "J", html_text[285]); - printf ("
    \n"); - printf ("%s\n

    \n", html_text[288]); - - printf ("

    %s
    \n", html_text[289]); - build_option_str ("CHECKBOX", "opt14", "a", html_text[290]); - printf ("   %s\n."); - printf ("
    \n"); + printf (""); + build_option_str ("checkbox", "opt9", "l", html_text[280]); + printf ("\n\n"); + build_option_str ("checkbox", "opt10", "n", html_text[281]); + printf ("(%s).\n", html_text[282]); + printf ("\n

    \n"); + + printf ("

    %s

    \n

    \n", html_text[283]); + printf ("%s
    \n    ", html_text[284]); + build_option_str ("checkbox", "opt11", "H", html_text[285]); + printf ("
    \n    "); + build_option_str ("checkbox", "opt12", "s", html_text[286]); + printf ("
    \n%s
    \n    ", html_text[287]); + build_option_str ("checkbox", "opt13", "J", html_text[285]); + printf ("
    \n"); + printf ("%s\n

    \n", html_text[288]); + + printf ("

    %s

    \n

    \n", html_text[289]); + build_option_str ("checkbox", "opt14", "a", html_text[290]); + printf ("   %s\n."); + printf ("
    \n"); /* note that if user doesn't have ezmlm-cgi installed, it might be a good idea to default to having option i off. */ - build_option_str ("CHECKBOX", "opt16", "i", html_text[291]); - printf ("

    \n"); + build_option_str ("checkbox", "opt16", "i", html_text[291]); + printf ("

    \n"); /***********************/ /* begin MySQL options */ @@ -1361,15 +1362,15 @@ fclose(fs); } #ifdef ENABLE_MYSQL - printf ("

    %s
    \n", html_text[99]); + printf ("

    %s

    \n

    \n", html_text[99]); printf (" %s", - checked ? " CHECKED" : "", html_text[53]); + checked ? " checked" : "", html_text[53]); /* parse dir/sql file for SQL settings */ - printf (" \n"); + printf ("
    \n"); #else if (checked) - printf ("\n"); + printf ("\n"); #endif /* get hostname */ @@ -1383,12 +1384,12 @@ } #ifdef ENABLE_MYSQL - printf (" \n"); - printf (" \n", checked1); + printf ("\n"); + printf ("\n", checked1); #else - printh ("\n", checked1); + printh ("\n", checked1); #endif /* get port */ @@ -1401,12 +1402,12 @@ } } #ifdef ENABLE_MYSQL - printf (" \n", checked1); - printf (" \n"); + printf ("\n", checked1); + printf ("\n"); #else - printh ("\n", checked1); + printh ("\n", checked1); #endif /* get user */ @@ -1419,12 +1420,12 @@ } } #ifdef ENABLE_MYSQL - printf (" \n"); - printf (" \n", checked1); + printf ("\n"); + printf ("\n", checked1); #else - printh ("\n", checked1); + printh ("\n", checked1); #endif /* get password */ @@ -1437,12 +1438,12 @@ } } #ifdef ENABLE_MYSQL - printf (" \n", checked1); - printf (" \n"); + printf ("\n", checked1); + printf ("\n"); #else - printh ("\n", checked1); + printh ("\n", checked1); #endif /* get database name */ @@ -1455,12 +1456,12 @@ } } #ifdef ENABLE_MYSQL - printf (" \n"); - printf (" \n", checked1); + printf ("\n"); + printf ("\n", checked1); #else - printh ("\n", checked1); + printh ("\n", checked1); #endif /* get table name */ @@ -1473,13 +1474,13 @@ } } #ifdef ENABLE_MYSQL - printf (" \n", checked1); - printf (" \n"); - printf ("
    %s:\n", html_text[54]); - printf (" \n"); - printh ("
    %s:\n", html_text[54]); + printf ("\n"); + printh ("%s:\n", html_text[55]); - printf (" \n"); - printh ("
    %s:\n", html_text[55]); + printf ("\n"); + printh ("
    %s:\n", html_text[56]); - printf (" \n"); - printh ("
    %s:\n", html_text[56]); + printf ("\n"); + printh ("%s:\n", html_text[57]); - printf (" \n"); - printh ("
    %s:\n", html_text[57]); + printf ("\n"); + printh ("
    %s:\n", html_text[58]); - printf (" \n"); - printh ("
    %s:\n", html_text[58]); + printf ("\n"); + printh ("%s:\n", html_text[59]); - printf (" \n"); - printh ("
    \n"); + printf ("%s:\n", html_text[59]); + printf ("\n"); + printh ("\n", checked1); + printf ("\n"); + printf ("\n"); #else - printh ("\n", checked1); + printh ("\n", checked1); #endif } diff -ruN ../qmailadmin-1.2.16-original/template.c qmailadmin-1.2.16/template.c --- ../qmailadmin-1.2.16-original/template.c 2011-02-22 15:45:47.000000000 +0100 +++ qmailadmin-1.2.16/template.c 2020-05-22 16:10:32.888023890 +0200 @@ -92,11 +92,11 @@ snprintf(TmpBuf2, (sizeof(TmpBuf2) - 1), "%s/html/%s", tmpstr, filename); if (lstat(TmpBuf2, &mystat) == -1) { - printf("Warning: cannot lstat '%s', check permissions.
    \n", TmpBuf2); + printf("Warning: cannot lstat '%s', check permissions.
    \n", TmpBuf2); return(-1); } if (S_ISLNK(mystat.st_mode)) { - printf("Warning: '%s' is a symbolic link.
    \n", TmpBuf2); + printf("Warning: '%s' is a symbolic link.
    \n", TmpBuf2); return(-1); } @@ -217,9 +217,10 @@ TmpBuf3[j] = TmpBuf2[i]; } TmpBuf3[j] = '\0'; - printh ("value=\"%H@%H\">\n", TmpBuf3, Domain); + /* mod_autorespond.html */ + printh ("value=\"%H@%H\">\n", TmpBuf3, Domain); } else { - printh ("value=\"%H\">\n", &TmpBuf2[1]); + printh ("value=\"%H\">\n", &TmpBuf2[1]); } } upperit(ActionUser); @@ -229,19 +230,16 @@ fgets( TmpBuf2, sizeof(TmpBuf2), fs); fgets( TmpBuf2, sizeof(TmpBuf2), fs); - printf ("  \n"); - printf (" \n"); - printf (" \n"); - printf (" %s\n", html_text[6]); + printf("

    "); + printf("\n", html_text[6]); /* take off newline */ i = strlen(TmpBuf2); --i; TmpBuf2[i] = 0; - printh (" \n", + printh ("\n", &TmpBuf2[9]); - printf ("  \n"); - printf (" \n"); - printf (" \n"); - printf (" "); + printf ("\n
    \n"); fclose(fs); } break; @@ -469,7 +467,7 @@ GetValue (TmpCGI, value, "returntext=", sizeof(value)); GetValue (TmpCGI, value2, "returnhttp=", sizeof(value2)); if (*value != '\0') { - printh ("%H", value2, value); + printh ("%H", value2, value); } break; @@ -512,49 +510,52 @@ /* show version number */ case 'V': - printf("%s %s
    ", + printf("%s %s ~ ", QA_PACKAGE, QA_VERSION); - printf("%s %s
    ", + printf("%s %s", PACKAGE, VERSION); break; /* display the main menu */ /* move this to a function... */ case 'v': - printh ("%H

    ", + printh ("

    %H

    ", Domain); printf ( - "%s
    ", + "
    %s
    ", html_text[1]); + printf (""); } else { /* the quota code in here is kinda screwy and could use review * then again, with recent changes, the non-admin shouldn't @@ -565,53 +566,58 @@ char path[256]; vpw = vauth_getpw(Username, Domain); - printh ("", cgiurl("moduser"), Username); + printf(""); } if (AdminType == DOMAIN_ADMIN) { - printf ("
    "); + printf (""); } break; @@ -633,9 +639,9 @@ case 'x': strcpy (value, get_session_val("returntext=")); if(strlen(value) > 0) { - printh("%H", get_session_val("returnhttp="), value); + printh("%H", get_session_val("returnhttp="), value); } else { - printh("%s", cgiurl("logout"), html_text[218]); + printh("%s", cgiurl("logout"), html_text[218]); } printf("\n"); break; diff -ruN ../qmailadmin-1.2.16-original/user.c qmailadmin-1.2.16/user.c --- ../qmailadmin-1.2.16-original/user.c 2011-02-22 15:45:48.000000000 +0100 +++ qmailadmin-1.2.16/user.c 2020-05-22 16:10:32.888023890 +0200 @@ -48,7 +48,6 @@ #include "util.h" #include "vauth.h" - #define HOOKS 1 #ifdef HOOKS @@ -88,7 +87,7 @@ /* Get the default catchall box name */ if ((fs=fopen(".qmail-default","r")) == NULL) { /* report error opening .qmail-default and exit */ - printf ("%s .qmail-default", + printf ("%s .qmail-default\n", colspan, html_text[144]); vclose(); exit(0); @@ -160,8 +159,8 @@ } if (pw == NULL) { - printf ("%s\n", - colspan, get_color_text("000"), html_text[131]); + printf ("%s\n", + colspan, html_text[131]); moreusers = 0; } else { char path[256]; @@ -174,28 +173,28 @@ storage_t maxmsg = 0; /* display account name and user name */ - printf ("", get_color_text("000")); - printh ("%H", pw->pw_name); - printh ("%H", pw->pw_gecos); + printf ("\n"); + printh ("%H\n", pw->pw_name); + printh ("%H\n", pw->pw_gecos); /* display user's quota */ snprintf(path, sizeof(path), "%s/" MAILDIR, pw->pw_dir); readuserquota(path, &diskquota, &maxmsg); - printf ("%-2.2lf / ", ((double)diskquota)/1048576.0); /* Convert to MB */ + printf ("%-2.2lf / \n", ((double)diskquota)/1048576.0); /* Convert to MB */ if (strncmp(pw->pw_shell, "NOQUOTA", 2) != 0) { if(quota_to_megabytes(qconvert, pw->pw_shell)) { - printf ("(BAD)"); + printf ("(BAD)\n"); } - else { printf ("%s", qconvert); } + else { printf ("%s\n", qconvert); } } - else { printf ("%s", html_text[229]); } + else { printf ("%s", html_text[229]); } /* display button to modify user */ - printf (""); + printf (""); printh ("", cgiurl("moduser"), pw->pw_name); - printf ("", IMAGEURL); - printf (""); - + printf ("create"); + printf ("\n"); + /* if the user has admin privileges and pw->pw_name is not * the user or postmaster, allow deleting */ @@ -210,32 +209,29 @@ } /* display trashcan for delete, or nothing if delete not allowed */ - printf (""); + printf (""); if (allowdelete) { printh ("", cgiurl("deluser"), pw->pw_name); - printf ("", IMAGEURL); + printf ("delete_forever"); } else { - /* printf ("", IMAGEURL); */ + /* printf ("flash_off"); */ } - printf (""); + printf ("\n"); /* display button in the 'set catchall' column */ - printf (""); + printf (""); if (bounced==0 && strncmp(pw->pw_name,TmpBuf3,sizeof(TmpBuf3)) == 0) { - printf ("", - IMAGEURL); + printf ("radio_button_checked"); #ifdef CATCHALL_ENABLED } else if (AdminType==DOMAIN_ADMIN) { printh ("", cgiurl("setdefault"), pw->pw_name, Pagenumber); - printf ("", - IMAGEURL); + printf ("radio_button_unchecked"); #endif } else { - printf ("", - IMAGEURL); + printf ("flash_off"); } - printf (""); + printf ("\n"); printf ("\n"); } pw = vauth_getall(dom,0,0); @@ -246,9 +242,8 @@ if (AdminType == DOMAIN_ADMIN) { print_user_index ("showusers", colspan, user, dom, mytime); - printf ("", get_color_text("000")); - printf ("", colspan); - printf (""); + printf ("\n"); + printf ("", colspan); printf ("[ "); bars = 0; #ifdef USER_INDEX @@ -276,8 +271,7 @@ printh ("%s", cgiurl("setremotecatchall"), html_text[206]); #endif printf (" ]"); - printf (""); - printf ("\n"); + printf ("\n\n"); } return 0; } @@ -491,7 +485,7 @@ } else { /* otherwise, report error */ - snprinth (StatusMessage, sizeof(StatusMessage), "%s %H@%H (%H) %s", + snprinth (StatusMessage, sizeof(StatusMessage), "%s %H@%H (%H) %s", html_text[2], Newu, Domain, Gecos, html_text[120]); } @@ -673,7 +667,7 @@ /* Get the default catchall box name */ if ((fs=fopen(".qmail-default","r")) == NULL) { - printf ("%s %s\n", + printf ("%s %s\n", html_text[144], ".qmail-default"); vclose(); exit(0); @@ -682,19 +676,19 @@ fclose(fs); if (strstr(TmpBuf, " bounce-no-mailbox\n") != NULL) { - printf ("%s", html_text[130]); + printf ("%s", html_text[130]); } else if (strstr(TmpBuf, " delete\n") != NULL) { - printf ("%s", html_text[236]); + printf ("%s", html_text[236]); } else if ( strstr(TmpBuf, "@") != NULL ) { i=strlen(TmpBuf); for(;TmpBuf[i-1]!=' ';--i); if (strncmp (&TmpBuf[i], "$EXT@", 5) == 0) { /* forward to an entire domain */ - printh ("%s user%H", html_text[62], &TmpBuf[i+4]); + printh ("%s user%H", html_text[62], &TmpBuf[i+4]); } else { - printh ("%s %H", html_text[62], &TmpBuf[i]); + printh ("%s %H", html_text[62], &TmpBuf[i]); } } else { i = strlen(TmpBuf) - 1; @@ -704,7 +698,7 @@ /* take off newline */ i = strlen(TmpBuf2); --i; TmpBuf2[i] = 0;/* take off newline */ - printh ("%s %H", html_text[62], TmpBuf2); + printh ("%s %H", html_text[62], TmpBuf2); } return 0; } diff -ruN ../qmailadmin-1.2.16-original/util.c qmailadmin-1.2.16/util.c --- ../qmailadmin-1.2.16-original/util.c 2011-02-22 15:45:47.000000000 +0100 +++ qmailadmin-1.2.16/util.c 2020-05-22 16:10:32.889023880 +0200 @@ -123,9 +123,10 @@ void qmail_button(char *modu, char *command, char *user, char *dom, time_t mytime, char *png) { - printf (""); + printf (""); printh ("", cgiurl(command), modu); - printf ("", IMAGEURL, png); +/* printf ("", IMAGEURL, png); */ + printf ("%s", png); printf ("\n"); } @@ -160,10 +161,10 @@ count_autoresponders(); count_mailinglists(); - printf ("%s = %d
    \n", html_text[61], CurPopAccounts); - printf ("%s = %d
    \n", html_text[74], CurForwards); - printf ("%s = %d
    \n", html_text[77], CurAutoResponders); - printf ("%s = %d
    \n", html_text[80], CurMailingLists); + printf ("%s = %d
    \n", html_text[61], CurPopAccounts); + printf ("%s = %d
    \n", html_text[74], CurForwards); + printf ("%s = %d
    \n", html_text[77], CurAutoResponders); + printf ("%s = %d
    \n", html_text[80], CurMailingLists); } /* check_email_addr( char *addr ) @@ -232,7 +233,7 @@ char *extra; { printf ("%s %s\n", get_html_text(msg), extra); - printf ("\n"); + printf ("\n"); vclose(); exit(0); } @@ -399,10 +400,10 @@ #ifdef USER_INDEX int k; - printf ("", get_color_text("000")); - printf ("", colspan); + printf (""); + printf ("", colspan); printf ("
    "); - printf ("%s   ", html_text[133]); + printf ("%s ", html_text[133]); for (k = 0; k < 10; k++) { printh ("%d\n", cgiurl(action), k, k); } @@ -412,17 +413,15 @@ printf (""); printf ("\n"); - printf ("", get_color_text("000")); - printf ("", colspan); - printf (""); + printf ("

    "); + printf ("
    ", colspan); printf ("
    ", CGIPATH, action); printh ("", user); printh ("", dom); printf ("", (unsigned int) mytime); - printh (" ", SearchUser); - printf ("", html_text[204]); + printh (" ", SearchUser); + printf ("", html_text[204]); printf ("
    "); - printf ("
    "); printf ("
    "); printf ("\n");