diff src/plugins/fts-solr/fts-backend-solr.c @ 8848:dd441977c578 HEAD

fts-solr: Solr breaks when it sees control characters, so replace them with spaces.
author Timo Sirainen <tss@iki.fi>
date Mon, 23 Mar 2009 16:33:11 -0400
parents b9faf4db2a9f
children e81dfb69bfc5
line wrap: on
line diff
--- a/src/plugins/fts-solr/fts-backend-solr.c	Mon Mar 23 12:51:30 2009 -0400
+++ b/src/plugins/fts-solr/fts-backend-solr.c	Mon Mar 23 16:33:11 2009 -0400
@@ -64,8 +64,20 @@
 		case '>':
 			str_append(dest, "&gt;");
 			break;
+		case '\t':
+		case '\n':
+		case '\r':
+			/* exceptions to the following control char check */
+			str_append_c(dest, data[i]);
+			break;
 		default:
-			str_append_c(dest, data[i]);
+			if (data[i] < 32) {
+				/* SOLR doesn't like control characters.
+				   replace them with spaces. */
+				str_append_c(dest, ' ');
+			} else {
+				str_append_c(dest, data[i]);
+			}
 			break;
 		}
 	}