af3a143571e5aa064eab75c34f9444b35413b562
chmalee
  Tue Nov 30 15:28:15 2021 -0800
Add snippet support to trix searching. Required changing the
wordPos from the first highest matching wordIndex to the
wordIndex of the actual span. Have trixContextIndex create a
second level index for fast retrieval of line offsets in
original text file used by ixIxx. Create a simple UI for navigating
hgFind search results.

diff --git src/hg/inc/cartJson.h src/hg/inc/cartJson.h
index 61f3b91..636bd24 100644
--- src/hg/inc/cartJson.h
+++ src/hg/inc/cartJson.h
@@ -1,51 +1,55 @@
 /* cartJson - parse and execute JSON commands to update cart and/or return cart data as JSON. */
 
 #ifndef CARTJSON_H
 #define CARTJSON_H
 
 #include "cart.h"
 #include "hash.h"
 #include "jsonWrite.h"
+#include "hgFind.h"
 
 #define CARTJSON_COMMAND "cjCmd"
 
 struct cartJson
     // Use the cart to perform commands dispatched from handlerHash; print results with jsonWrite.
     {
     struct cart *cart;
     struct hash *handlerHash;
     struct jsonWrite *jw;
     };
 
 typedef void CartJsonHandler(struct cartJson *cj, struct hash *paramHash);
 /* Implementation of some command; paramHash associates parameter names with
  * jsonElement values.  For use with cartJsonRegisterHandler. */
 
 struct cartJson *cartJsonNew(struct cart *cart);
 /* Allocate and return a cartJson object with default handlers.
  * cart must have "db" set already. */
 
 char *cartJsonParamDefault(struct hash *paramHash, char *name, char *defaultVal);
 /* Convenience function for a CartJsonHandler function: Look up name in paramHash.
  * Return the string contained in its jsonElement value, or defaultVal if not found. */
 
 char *cartJsonOptionalParam(struct hash *paramHash, char *name);
 /* Convenience function for a CartJsonHandler function: Look up name in paramHash.
  * Return the string contained in its jsonElement value, or NULL if not found. */
 
 char *cartJsonRequiredParam(struct hash *paramHash, char *name, struct jsonWrite *jw,
                             char *context);
 /* Convenience function for a CartJsonHandler function: Look up name in paramHash.
  * If found, return the string contained in its jsonElement value.
  * If not, write an error message (using context) and return NULL. */
 
 void cartJsonRegisterHandler(struct cartJson *cj, char *command, CartJsonHandler *handler);
 /* Associate handler with command; when javascript sends command, handler will be executed. */
 
 void cartJsonExecute(struct cartJson *cj);
 /* Get commands from cgi, print Content-type, execute commands, print results as JSON. */
 
 void cartJsonFree(struct cartJson **pCj);
 /* Close **pCj's contents and nullify *pCj. */
 
+void hgPositionsJson(struct jsonWrite *jw, char *db, struct hgPositions *hgp, struct cart *cart);
+/* Write out JSON description of multiple position matches. */
+
 #endif /* CARTJSON_H */