]> sigrok.org Git - sigrok-cli.git/blobdiff - session.c
input: make read from stdin work with the presence of -I specs
[sigrok-cli.git] / session.c
index 5d92362e714bf87175b616495a3f3a3e5c844e78..60f253f766d7f4a01e101608452c934abeb2528f 100644 (file)
--- a/session.c
+++ b/session.c
@@ -130,9 +130,6 @@ const struct sr_transform *setup_transform_module(const struct sr_dev_inst *sdi)
        GHashTable *fmtargs, *fmtopts;
        char *fmtspec;
 
-       if (!opt_transform_module)
-               opt_transform_module = "nop";
-
        fmtargs = parse_generic_arg(opt_transform_module, TRUE);
        fmtspec = g_hash_table_lookup(fmtargs, "sigrok_key");
        if (!fmtspec)
@@ -580,12 +577,18 @@ void run_session(void)
                }
        }
 
+       /* This is unlikely to happen but it makes static analyzers stop complaining. */
+       if (!devices) {
+               g_critical("No real devices found.");
+               return;
+       }
+
        sdi = devices->data;
        g_slist_free(devices);
        g_slist_free(real_devices);
 
        sr_session_new(sr_ctx, &session);
-       sr_session_datafeed_callback_add(session, datafeed_in, NULL);
+       sr_session_datafeed_callback_add(session, datafeed_in, session);
 
        if (sr_dev_open(sdi) != SR_OK) {
                g_critical("Failed to open device.");
@@ -684,8 +687,10 @@ void run_session(void)
                }
        }
 
-       if (!(t = setup_transform_module(sdi)))
-               g_critical("Failed to initialize transform module.");
+       if (opt_transform_module) {
+               if (!(t = setup_transform_module(sdi)))
+                       g_critical("Failed to initialize transform module.");
+       }
 
        main_loop = g_main_loop_new(NULL, FALSE);