Lagrange [release]

LookupWidget: Fixed use of multiple search terms

a9e369123bb9df6a28169c777717fdd02f3bf8af
diff --git a/src/ui/lookupwidget.c b/src/ui/lookupwidget.c
index 7d6052e2..a7e950d3 100644
--- a/src/ui/lookupwidget.c
+++ b/src/ui/lookupwidget.c
@@ -321,12 +321,12 @@ static iThreadResult worker_LookupWidget_(iThread *thread) {
             iString *pattern = new_String();
             iRangecc word = iNullRange;
             iBool isFirst = iTrue;
+            iString wordStr;
+            init_String(&wordStr);
             while (nextSplit_Rangecc(range_String(&d->pendingTerm), " ", &word)) {
                 if (isEmpty_Range(&word)) continue;
                 if (!isFirst) appendCStr_String(pattern, ".*");
-                const iString wordStr = { iBlockLiteral(word.start,
-                                                        word.end - word.start,
-                                                        word.end - word.start) };
+                setRange_String(&wordStr, word);
                 iConstForEach(String, ch, &wordStr) {
                     /* Escape regular expression characters. */
                     if (isSyntaxChar_RegExp(ch.value)) {
@@ -336,6 +336,7 @@ static iThreadResult worker_LookupWidget_(iThread *thread) {
                 }
                 isFirst = iFalse;
             }
+            deinit_String(&wordStr);
             iAssert(!isEmpty_String(pattern));
             job->term = new_RegExp(cstr_String(pattern), caseInsensitive_RegExpOption);
             delete_String(pattern);