+static int cmd_zebra_stop( char *args[], char *outbuff)
+{
+ if (!zs)
+ strcat(outbuff,"zebra seems not to have been started, "
+ "stopping anyway\n");
+ zebra_stop(zs);
+ zs=0;
+ return 0; /* ok */
+}
+
+static int cmd_zebra_open( char *args[], char *outbuff)
+{
+ if (!zs)
+ strcat(outbuff,"zebra seems not to have been started, "
+ "trying anyway\n");
+ zh=zebra_open(zs);
+ return 0; /* ok */
+}
+
+static int cmd_zebra_close( char *args[], char *outbuff)
+{
+ if (!zh)
+ strcat(outbuff,"Seems like you have not called zebra_open,"
+ "trying anyway\n");
+ zebra_close(zh);
+ return 0; /* ok */
+}
+
+static int cmd_quickstart( char *args[], char *outbuff)
+{
+ char tmp[128];
+ int rc=0;
+ if (!rc)
+ rc=onecommand("yaz_log_file zebrash.log",outbuff,"");
+ if (!rc)
+ rc=onecommand("yaz_log_prefix ZebraSh", outbuff,"");
+ sprintf(tmp, "yaz_log_level 0x%x", LOG_DEFAULT_LEVEL | LOG_APP);
+ if (!rc)
+ rc=onecommand(tmp,outbuff,"");
+ logf(LOG_APP,"quickstart");
+ if (!rc)
+ rc=onecommand("zebra_start",outbuff,"");
+ if (!rc)
+ rc=onecommand("zebra_open",outbuff,"");
+ if (!rc)
+ rc=onecommand("select_database Default",outbuff,"");
+ return rc;
+}
+
+/**************************************
+ * Log file handling
+ */
+
+static int cmd_yaz_log_file( char *args[], char *outbuff)
+{
+ char *fn = defarg(args[1],0);
+ char tmp[255];
+ sprintf(tmp, "sending yaz-log to %s\n",fn);
+ strcat(outbuff, tmp);
+ yaz_log_init_file(fn);
+ return 0; /* ok */
+}
+
+static int cmd_yaz_log_level( char *args[], char *outbuff)
+{
+ int lev = defargint(args[1],LOG_DEFAULT_LEVEL);
+ char tmp[255];
+ sprintf(tmp, "setting yaz-log to level %d (ox%x)\n",lev,lev);
+ strcat(outbuff, tmp);
+ yaz_log_init_level(lev);
+ return 0; /* ok */
+}
+
+static int cmd_yaz_log_prefix( char *args[], char *outbuff)
+{
+ char *pref = defarg(args[1],"ZebraSh");
+ char tmp[255];
+ sprintf(tmp, "setting yaz-log prefix to %s\n",pref);
+ strcat(outbuff, tmp);
+ yaz_log_init_prefix(pref);
+ return 0; /* ok */
+}
+
+static int cmd_logf( char *args[], char *outbuff)
+{
+ int lev = defargint(args[1],0);
+ char tmp[MAX_OUT_BUFF]="";
+ int i=1;
+ if (lev)
+ i=2;
+ else
+ lev=LOG_LOG; /* this is in the default set!*/
+ while (args[i])
+ {
+ strcat(tmp, args[i++]);
+ strcat(tmp, " ");
+ }
+ logf(lev,tmp);
+ return 0; /* ok */
+}
+
+/****************
+ * Error handling
+ */
+static int cmd_err ( char *args[], char *outbuff)
+{
+ char tmp[MAX_OUT_BUFF];
+ sprintf(tmp, "errCode: %d \nerrStr: %s\nerrAdd: %s \n",
+ zebra_errCode (zh),
+ zebra_errString (zh),
+ zebra_errAdd (zh) );
+ strcat(outbuff, tmp);
+ return 0; /* ok */
+}
+static int cmd_errcode ( char *args[], char *outbuff)
+{
+ char tmp[MAX_OUT_BUFF];
+ sprintf(tmp, "errCode: %d \n",
+ zebra_errCode (zh));
+ strcat(outbuff, tmp);
+ return 0; /* ok */
+}
+static int cmd_errstr ( char *args[], char *outbuff)
+{
+ char tmp[MAX_OUT_BUFF];
+ sprintf(tmp, "errStr: %s\n",
+ zebra_errString (zh));
+ strcat(outbuff, tmp);
+ return 0; /* ok */
+}
+static int cmd_erradd ( char *args[], char *outbuff)
+{
+ char tmp[MAX_OUT_BUFF];
+ sprintf(tmp, "errAdd: %s \n",
+ zebra_errAdd (zh) );
+ strcat(outbuff, tmp);
+ return 0; /* ok */
+}
+