Switch to side-by-side view

--- a/src/index/recollindex.cpp
+++ b/src/index/recollindex.cpp
@@ -1,5 +1,5 @@
 #ifndef lint
-static char rcsid[] = "@(#$Id: recollindex.cpp,v 1.27 2006-11-08 07:22:14 dockes Exp $ (C) 2004 J.F.Dockes";
+static char rcsid[] = "@(#$Id: recollindex.cpp,v 1.28 2006-12-20 09:41:37 dockes Exp $ (C) 2004 J.F.Dockes";
 #endif
 /*
  *   This program is free software; you can redistribute it and/or modify
@@ -215,6 +215,7 @@
 #define OPT_S     0x40
 #define OPT_m     0x80
 #define OPT_D     0x100
+#define OPT_e     0x200
 
 static const char usage [] =
 "\n"
@@ -227,6 +228,8 @@
 "recollindex -m [-D]\n"
 "    Perform real time indexation. Don't become a daemon if -D is set\n"
 #endif
+"recollindex -e <filename [filename ...]>\n"
+"    Purge data for individual files. No stem database updates\n"
 "recollindex -i <filename [filename ...]>\n"
 "    Index individual files. No database purge or stem database updates\n"
 "recollindex -s <lang>\n"
@@ -265,6 +268,7 @@
 #ifdef RCL_MONITOR
 	    case 'D': op_flags |= OPT_D; break;
 #endif
+	    case 'e': op_flags |= OPT_e; break;
 	    case 'h': op_flags |= OPT_h; break;
 	    case 'i': op_flags |= OPT_i; break;
 #ifdef RCL_MONITOR
@@ -281,7 +285,7 @@
     }
     if (op_flags & OPT_h)
 	Usage();
-    if ((op_flags & OPT_z) && (op_flags & OPT_i))
+    if ((op_flags & OPT_z) && (op_flags & (OPT_i|OPT_e)))
 	Usage();
 
     string reason;
@@ -294,8 +298,9 @@
 	exit(1);
     }
     
-    if (op_flags & OPT_i) {
+    if (op_flags & (OPT_i|OPT_e)) {
 	list<string> filenames;
+
 	if (argc == 0) {
 	    // Read from stdin
 	    char line[1024];
@@ -309,7 +314,12 @@
 		filenames.push_back(*argv++);
 	    }
 	}
-	exit(!indexfiles(config, filenames));
+
+	if (op_flags & OPT_i)
+	    exit(!indexfiles(config, filenames));
+	else 
+	    exit(!purgefiles(config, filenames));
+
     } else if (op_flags & OPT_s) {
 	if (argc != 1) 
 	    Usage();