Gibt es in der Standardbibilothek eine Funktion, die mir Strings zum Ausführen auf der Shell quotet?

  • Hallo Leute,


    seit VDR 1.3.47 werden Hochkommas in Aufnahmenamen nicht mehr umgeformt. Im meinem ExtRecMenu-Plugin rufe ich ein Skript mit dem Aufnahmenamen als Parameter auf, was dann natürlich zu Problemen führt. Gibt es in der Standardbibliothek eine Funktion, die mir einen String entsprechend umwandelt (\ vor Sonderzeichen), so dass ich ihn ohne Probleme auf der Shell als Parameter übergeben kann? Oder muss ich mir selber was zusammenbasteln?


    Gruß
    Nordlicht

  • Zitat

    Originally posted by nordlicht
    Hallo Leute,


    seit VDR 1.3.47 werden Hochkommas in Aufnahmenamen nicht mehr umgeformt. Im meinem ExtRecMenu-Plugin rufe ich ein Skript mit dem Aufnahmenamen als Parameter auf, was dann natürlich zu Problemen führt. Gibt es in der Standardbibliothek eine Funktion, die mir einen String entsprechend umwandelt (\ vor Sonderzeichen), so dass ich ihn ohne Probleme auf der Shell als Parameter übergeben kann? Oder muss ich mir selber was zusammenbasteln?


    Warum machst du es nicht einfach so wie VDR selber?


    Code
    char *cmd;
    asprintf(&cmd, "%s %ld %ld %d \"%s\" %d", Shutdown, Next, Delta, Channel, *strescape(File, "\"$"), UserShutdown);
    isyslog("executing '%s'", cmd);
    SystemExec(cmd);
    free(cmd);


    Was du machen willst ist strescape(File, "\"$").


    <EDIT>
    Hmm, da fällt mir ein, daß es wohl auch mit


    Code
    asprintf(&cmd, "%s %ld %ld %d '%s' %d", Shutdown, Next, Delta, Channel, strescape(File, "'"), UserShutdown);


    gehen müsste - muß ich direkt mal ausprobieren...
    </EDIT>


    Klaus

  • Hi Klaus,


    dankeschön. Scheint genau das zu sein, was ich suche. Habe mir zwar schon viel von dem Code von VDR angeschaut, aber in der Ecke bin ich noch nicht gelandet. Und wenn man nicht genau weiß, wo bzw. wonach man sucht ... sind dann ja doch ein paar Zeilen mehr ;) Man lernt halt nie aus - und das ist auch gut so, sonst wird es ja langweilig :D


    Gruß
    Nordlicht

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!