X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Frecord.C;h=d2247d57bd7d9e14a932eb704bff1b3da36fc4cb;hb=089f2be86316b88f72a6c359ab10e2b95539005b;hp=45e6b3d36e7fa5237e0f5d6960ad1f7e77368702;hpb=235c9cc4df8306babbbfda46189108fe262d44ef;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/record.C b/cinelerra-5.1/cinelerra/record.C index 45e6b3d3..d2247d57 100644 --- a/cinelerra-5.1/cinelerra/record.C +++ b/cinelerra-5.1/cinelerra/record.C @@ -1912,11 +1912,12 @@ int Record::stop_commercial_capture(int run_job) int Record:: spawn(const char *fmt, ...) { - char exe_path[BCTEXTLEN], cmd[BCTEXTLEN]; - get_exe_path(exe_path); + const char *exec_path = File::get_cinlib_path(); + char cmd[BCTEXTLEN], *cp = cmd, *ep = cp+sizeof(cmd)-1; va_list ap; va_start(ap, fmt); - int n = snprintf(cmd, sizeof(cmd), "exec %s/", exe_path); - vsnprintf(cmd+n, sizeof(cmd)-n, fmt, ap); va_end(ap); + cp += snprintf(cp, ep-cp, "exec %s/", exec_path); + cp += vsnprintf(cp, ep-cp, fmt, ap); va_end(ap); + *cp = 0; pid_t pid = vfork(); if( pid < 0 ) return -1; if( pid > 0 ) return pid;