diff options
author | Rong-En Fan <rafan@FreeBSD.org> | 2009-08-09 04:15:27 +0000 |
---|---|---|
committer | Rong-En Fan <rafan@FreeBSD.org> | 2009-08-09 04:15:27 +0000 |
commit | 0891cf7567990ea771c7eb49cf74a47d30347bdd (patch) | |
tree | 836d6f991756abc9653d2f1c765142ef11a65cfc /mail | |
parent | 876fafcc9b0029cee86dc9c8edd62f19505cab95 (diff) | |
download | ports-0891cf7567990ea771c7eb49cf74a47d30347bdd.tar.gz ports-0891cf7567990ea771c7eb49cf74a47d30347bdd.zip |
Notes
Diffstat (limited to 'mail')
-rw-r--r-- | mail/courier/files/extra-patch-webmail__folder.c | 102 | ||||
-rw-r--r-- | mail/courier/files/extra-patch-webmail__images__sqwebmail.css | 28 | ||||
-rw-r--r-- | mail/courier/files/extra-patch-webmail__maildir.c | 75 | ||||
-rw-r--r-- | mail/courier/files/extra-patch-webmail__maildir.h | 18 |
4 files changed, 223 insertions, 0 deletions
diff --git a/mail/courier/files/extra-patch-webmail__folder.c b/mail/courier/files/extra-patch-webmail__folder.c new file mode 100644 index 000000000000..d1a6139cbcd3 --- /dev/null +++ b/mail/courier/files/extra-patch-webmail__folder.c @@ -0,0 +1,102 @@ +--- webmail/folder.c.orig 2008-07-20 19:00:33.000000000 +0200 ++++ webmail/folder.c 2009-06-04 08:32:54.000000000 +0200 +@@ -247,6 +247,18 @@ + return (maildir_msgmovefile(folder, file, cgi("moveto"), pos)); + } + ++static int groupmark(const char *folder, const char *file, size_t pos) ++{ ++ maildir_msgmarkfile(folder, file, pos); ++ return (0); ++} ++ ++static int groupunmark(const char *folder, const char *file, size_t pos) ++{ ++ maildir_msgunmarkfile(folder, file, pos); ++ return (0); ++} ++ + void folder_delmsgs(const char *dir, size_t pos) + { + int rc=0; +@@ -317,6 +329,16 @@ + rc=group_movedel( dir, &groupmove ); + maildir_savefoldermsgs(dir); + } ++ else if (*cgi("cmdmark")) ++ { ++ rc=group_movedel( dir, &groupmark ); ++ maildir_savefoldermsgs(dir); ++ } ++ else if (*cgi("cmdunmark")) ++ { ++ rc=group_movedel( dir, &groupunmark ); ++ maildir_savefoldermsgs(dir); ++ } + + maildir_cleanup(); + +@@ -441,7 +463,7 @@ + + folder_navigate(dir, pos, highend, morebefore, moreafter); + +- printf("<table width=\"100%%\" border=\"0\" cellspacing=\"0\" cellpadding=\"4\"><tr class=\"folder-index-header\"><th align=\"center\">%s</th><th> </th><th>%s</th><th>%s</th><th>%s</th><th>%s</th></tr>\n", ++ printf("<table width=\"100%%\" border=\"0\" cellspacing=\"0\" cellpadding=\"4\"><tr class=\"folder-index-header\"><th align=\"center\">%s</th><th> </th><th> </th><th> </th><th>%s</th><th>%s</th><th>%s</th><th>%s</th></tr>\n", + getarg("NUM"), + getarg("DATE"), + (strncmp(dir, INBOX "." SENT, sizeof(INBOX)+sizeof(SENT)-1) && +@@ -486,12 +508,13 @@ + if ((q=strrchr(p, '/')) != 0) + p=q+1; + +- printf("<tr class=\"folder-index-bg-%d\" id=\"row%d\"><td align=\"right\" class=\"message-number\">%s%ld.%s</td><td class=\"message-status\"><input type=\"checkbox\" name=\"MOVE-%ld\" id=\"MOVE-%ld", ++ printf("<tr class=\"folder-index-bg-%d\" id=\"row%d\"><td align=\"right\" class=\"message-number\">%s%ld.%s</td><td class=\"message-flag\">%s</td><td class=\"message-select\"><input type=\"checkbox\" name=\"MOVE-%ld\" id=\"MOVE-%ld", + (i & 1)+1, + i, + folder_index_entry_start, + (long)(i+pos+1), + folder_index_entry_end, ++ maildirfile_flag(MSGINFO_FILENAME(contents[i])) ? "<font color=\"red\">!</font>" : "", + (long) (pos+i), + (long) (pos+i)); + printf("\" onchange=\"setsel('MOVE-%ld', 'row%d', 'folder-index-bg-%d');\"%s /><input type=\"hidden\" name=\"MOVEFILE-%ld\" value=\"", +@@ -499,7 +522,7 @@ + (type[0] == MSGTYPE_DELETED ? " disabled=\"disabled\"":""), + (long)(pos+i)); + output_attrencoded(p); +- printf("\" /> %s%s%s</td><td class=\"message-date\">%s", ++ printf("\" /></td><td class=\"message-status\">%s%s%s</td><td class=\"message-date\">%s", + folder_index_entry_start, + type, + folder_index_entry_end, +@@ -545,9 +568,9 @@ + + if (found) + { +- puts("<tr class=\"folder-index-bg-1\"><td colspan=\"6\"><hr /></td></tr>"); +- puts("<tr class=\"folder-index-bg-2\"><td> </td>"); +- puts("<td colspan=\"5\">"); ++ puts("<tr class=\"folder-index-bg-3\"><td colspan=\"8\"><hr /></td></tr>"); ++ puts("<tr class=\"folder-index-bg-4\"><td> </td>"); ++ puts("<td colspan=\"7\">"); + + puts("<script type=\"text/javascript\">"); + puts("/* <![CDATA[ */"); +@@ -578,7 +601,7 @@ + } + if (!found && nomsg) + { +- puts("<tr class=\"folder-index-bg-1\"><td colspan=\"6\" align=\"left\"><p>"); ++ puts("<tr class=\"folder-index-bg-1\"><td colspan=\"8\" align=\"left\"><p>"); + puts(nomsg); + puts("<br /></p></td></tr>"); + printf("</table>\n"); +@@ -3364,7 +3387,7 @@ + if ((strcmp(sqwebmail_folder, INBOX "." TRASH) == 0) && (strlen(getarg("PURGEALL")))) + printf("<input type=\"submit\" name=\"cmdpurgeall\" value=\"%s\" onclick=\"javascript: return deleteAll();\" />", + getarg("PURGEALL")); +- printf("<input type=\"submit\" name=\"cmddel\" value=\"%s\" />%s<select name=\"moveto\">", ++ printf("<input type=\"submit\" name=\"cmddel\" value=\"%s\" />, <input type=\"submit\" name=\"cmdmark\" value=\"Mark\" />, <input type=\"submit\" name=\"cmdunmark\" value=\"Unmark\" />%s<select name=\"moveto\">", + strcmp(sqwebmail_folder, INBOX "." TRASH) == 0 + ? purgelab:deletelab, + movelab); diff --git a/mail/courier/files/extra-patch-webmail__images__sqwebmail.css b/mail/courier/files/extra-patch-webmail__images__sqwebmail.css new file mode 100644 index 000000000000..62bb52989227 --- /dev/null +++ b/mail/courier/files/extra-patch-webmail__images__sqwebmail.css @@ -0,0 +1,28 @@ +--- webmail/images/sqwebmail.css.orig 2009-06-04 08:27:30.000000000 +0200 ++++ webmail/images/sqwebmail.css 2009-06-04 08:33:54.000000000 +0200 +@@ -142,6 +142,9 @@ + .folder-index-bg-1:hover { background-color: #bbbbbb } + .folder-index-bg-2 { background-color: #ddddbb } + .folder-index-bg-2:hover { background-color: #bbbbbb } ++/* for <HR> and buttons under message list */ ++.folder-index-bg-3 { background-color: #ffffff } ++.folder-index-bg-4 { background-color: #eeeecc } + + /* Selected message */ + +@@ -159,11 +162,13 @@ + */ + + .message-number { } +-.message-status { } ++.message-flag { padding: 0} ++.message-select { padding: 0 } ++.message-status { padding: 0 } + .message-date { } + .message-from { } + .message-subject { } +-.message-size { font-family: monospace} ++.message-size { font-family: monospace } + + /***************************** Folder permissions ***********************/ + diff --git a/mail/courier/files/extra-patch-webmail__maildir.c b/mail/courier/files/extra-patch-webmail__maildir.c new file mode 100644 index 000000000000..dfd1f2a1e132 --- /dev/null +++ b/mail/courier/files/extra-patch-webmail__maildir.c @@ -0,0 +1,75 @@ +--- webmail/maildir.c.orig 2008-07-20 05:15:08.000000000 +0200 ++++ webmail/maildir.c 2009-06-03 22:41:49.000000000 +0200 +@@ -1091,6 +1091,42 @@ + return (rc); + } + ++void maildir_msgmarkfile(const char *folder, const char *file, size_t pos) ++{ ++char *filename=maildir_find(folder, file); ++char *new_filename; ++ ++ if (filename) ++ { ++ if ((new_filename=maildir_addflagfilename(filename, 'F')) != 0) ++ { ++ rename(filename, new_filename); ++ update_foldermsgs(folder, new_filename, pos); ++ free(new_filename); ++ } ++ ++ free(filename); ++ } ++} ++ ++void maildir_msgunmarkfile(const char *folder, const char *file, size_t pos) ++{ ++char *filename=maildir_find(folder, file); ++char *new_filename; ++ ++ if (filename) ++ { ++ if ((new_filename = strdup(filename)) != 0) ++ { ++ maildir_remflagname(new_filename, 'F'); ++ rename(filename, new_filename); ++ update_foldermsgs(folder, new_filename, pos); ++ free(new_filename); ++ } ++ free(filename); ++ } ++} ++ + static char *foldercountfilename(const char *folder) + { + char *f=malloc(sizeof(MAILDIRCURCACHE "/cnt.") + strlen(folder)); +@@ -1604,6 +1640,29 @@ + return (MSGTYPE_NEW); + } + ++/* ++** maildirfile_flag(directory, filename) - boolean: ++** ++*/ ++ ++int maildirfile_flag(const char *p) ++{ ++const char *q=strrchr(p, '/'); ++int seen_flag=0; ++ ++ if (q) p=q; ++ ++ if ( !(p=strchr(p, ':')) || *++p != '2' || *++p != ',') ++ return (0); /* No :2,info */ ++ ++ ++p; ++ while (p && isalpha((int)(unsigned char)*p)) ++ if (*p++ == 'F') ++ seen_flag=1; ++ ++ return (seen_flag); ++} ++ + static int docount(const char *fn, unsigned *new_cnt, unsigned *other_cnt) + { + const char *filename=strrchr(fn, '/'); diff --git a/mail/courier/files/extra-patch-webmail__maildir.h b/mail/courier/files/extra-patch-webmail__maildir.h new file mode 100644 index 000000000000..71d4700415cc --- /dev/null +++ b/mail/courier/files/extra-patch-webmail__maildir.h @@ -0,0 +1,18 @@ +--- webmail/maildir.h.orig 2004-02-17 01:58:24.000000000 +0100 ++++ webmail/maildir.h 2009-06-04 08:40:43.000000000 +0200 +@@ -35,12 +35,15 @@ + extern int maildir_name2pos(const char *, const char *, size_t *); + + extern char maildirfile_type(const char *); ++extern int maildirfile_flag(const char *); + extern void maildir_markread(const char *, size_t); + extern void maildir_markreplied(const char *, const char *); + extern void maildir_msgdeletefile(const char *, const char *, size_t); + extern void maildir_msgpurge(const char *, size_t); + extern void maildir_msgpurgefile(const char *, const char *); + extern void maildir_purgemimegpg(); ++extern void maildir_msgmarkfile(const char *, const char *, size_t); ++extern void maildir_msgunmarkfile(const char *, const char *, size_t); + + extern int maildir_msgmove(const char *, size_t, const char *); + extern int maildir_msgmovefile(const char *, const char *, const char *, size_t); |