+static void get_first_snippet_from_rset(ZebraHandle zh,
+ RSET rset, zebra_snippets *snippets,
+ zint *sysno)
+{
+ struct it_key key;
+ RSFD rfd;
+ TERMID termid;
+ size_t sysno_mem_index = 0;
+
+ if (zh->m_staticrank)
+ sysno_mem_index = 1;
+
+ yaz_log(YLOG_DEBUG, "get_first_snippet_from_rset");
+
+ rfd = rset_open(rset, RSETF_READ);
+ *sysno = 0;
+ while (rset_read(rfd, &key, &termid))
+ {
+ if (key.mem[sysno_mem_index] != *sysno)
+ {
+ if (*sysno)
+ break;
+ *sysno = key.mem[sysno_mem_index];
+ }
+ if (termid)
+ {
+ struct ord_list *ol;
+ for (ol = termid->ol; ol; ol = ol->next)
+ {
+ zebra_snippets_append(snippets, key.mem[key.len-1], 0,
+ ol->ord, termid->name);
+ }
+ }
+ }
+ rset_close(rfd);
+}
+