--- quicknet-v3_50pre4/qnmultifwd.cc 2014-05-05 19:06:47.000000000 -0700 +++ quicknet-v3_50pre4-janinfix/qnmultifwd.cc 2014-10-27 16:14:00.705717056 -0700 @@ -296,8 +296,13 @@ QN_InFtrStream** str_ptr) { QN_InFtrStream* ftr_str = NULL; // Temporary stream holder. - int index = 1; + // Adam Janin 10/27/14. Seems like index needs to be 0 if we want + // to read from stdin. If index is 1 (as it used to be), then the + // index is always generated and therefore the stream needs to be + // seekable. + + int index = 0; ftr_str = QN_build_ftrstream(debug, dbgname, filename, format, width, index, normfile, @@ -308,11 +313,17 @@ norm_mode, norm_am, norm_av); // Using range strings - QN_InFtrStream_CutRange* fwd_ftr_str + + // Adam Janin 10/27/14. Do not use range if none provided. This + // allows use of non-seekable streams. + + if (fwd_sent_range != NULL) { + QN_InFtrStream_CutRange* fwd_ftr_str = new QN_InFtrStream_CutRange(debug, dbgname, *ftr_str, fwd_sent_range); - ftr_str = (QN_InFtrStream*)fwd_ftr_str; - + ftr_str = (QN_InFtrStream*)fwd_ftr_str; + } + // Create window. size_t bot_margin = window_extent - window_offset - window_len; QN_InFtrStream_SeqWindow* winftr_str =