]> git.madduck.net Git - etc/mailfilter.git/blobdiff - procmail/msgid-index

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

properly mime-decode subject lines
[etc/mailfilter.git] / procmail / msgid-index
index 1d31f0a9a264ad5773633bfd3bcb623403cbbd66..caccf830e28f34e44c1788b40339d06485e9c369 100644 (file)
@@ -1,27 +1,24 @@
-# create table logfiles (sender text not null, recipient text not null,
-# subject text not null, msgid text unique not null, filename text primary key
-# not null unique, timestamp timestamp with time zone, dest text not null);
+# create table messages (sender text not null, recipient text not null,
+# subject text not null, msgid text not null, filename text primary key
+# not null unique, timestamp integer, dest text not null);
 #
-# create trigger insert_logfiles_timestamp after insert on logfiles begin
-# update logfiles set timestamp = datetime('now') where filename
+# create trigger insert_messages_timestamp after insert on messages begin
+# update messages set timestamp = strftime('%s', 'now') where filename
 # = new.filename; end;
 
-SQLITE=/usr/bin/sqlite3
 MSGID_INDEX_DB=$PMVAR/msgid-index.sqlite
 
 DO_QUERY="$SQLITE $MSGID_INDEX_DB"
 
-SQ="'\\''"
-SQE="'\\\''"
-FIELDS="$FROM$NL$ORIGINAL_TO$NL$SUBJECT$NL$MSGID"
-QUERY="insert into logfiles (sender, recipient, subject, msgid, filename, dest) values (
-  `echo \"$FIELDS\" | sed -e 's,'\'','$SQE$SQE',g; s/^.*$/'\$SQE'&'\$SQE',/'`
-  $SQ$THISLOGFILE_REL$SQ, '\\'\$DEST\\'')"
-TRAP="$TRAP; $DO_QUERY '$QUERY'"
+DATA="$FROM,$NL$ORIGINAL_TO,$NL$SUBJECT,$NL$MSGID"
+INCLUDERC=$PMDIR/sql-escape
+
+QUERY="insert into messages (sender, recipient, subject, msgid, filename, dest) values (
+  $DATA, '$THISLOGFILE_REL', '\$DESTFILE');"
+TRAP="$TRAP; OUT=\"$(echo \"$QUERY\" | $DO_QUERY 2>&1)\";
+      [ -n \"\$OUT\" ] && echo \"msgid-index: failed to insert reference into database: \$OUT\""
 
 QUERY
-FIELDS
-SQE
-SQ
+DATA
 DO_QUERY
 MSGID_INDEX_DB