+ if (browseListFields != NULL) {
+ while (browseListFields[count] != NULL) {
+ count ++;
+ }
+ Handler->HeaderCount = count;
+ Handler->MessageFieldList = (eMessageField*) malloc(sizeof(eMessageField) * count);
+ Handler->FetchMessageList = NewStrBufPlain(NULL, 5 * count + 4 + 5);
+ StrBufPlain(Handler->FetchMessageList, HKEY("time\n"));
+ for (i = 0; i < count; i++) {
+ if (!GetFieldFromMnemonic(&Handler->MessageFieldList[i], browseListFields[i])) {
+ fprintf(stderr, "Unknown message header: %s\n", browseListFields[i]);
+ exit(1);
+ }
+ StrBufAppendBufPlain(Handler->FetchMessageList, browseListFields[i], 4, 0);
+ StrBufAppendBufPlain(Handler->FetchMessageList, HKEY("\n"), 0);
+ }
+ StrBufAppendBufPlain(Handler->FetchMessageList, HKEY("000"), 0);
+ }
+ else {
+ Handler->FetchMessageList = NULL;
+ Handler->MessageFieldList = NULL;
+ }
+
+ Put(ReadLoopHandler, IKEY(RoomType), Handler, FreeReadLoopHandlerSet);