#include "version.hh"
#include "warn.hh"
-using std::string;
-using std::vector;
-
/* Declaration of log function(s) */
SCM ly_progress (SCM, SCM);
char *ptr = result;
for (vsize i = 0; i < results.size (); i++)
{
- strncpy (ptr, results[i].c_str (), results[i].size ());
+ // strcpy and strncpy cannot be used here
+ // because std::string may contain '\0' in its contents.
+ results[i].copy (ptr, results[i].size ());
ptr += results[i].size ();
}
*ptr = '\0';
standard_output, standard_error,
&exit_status, &error))
{
- fprintf (stderr, "failed (%d): %s: %s\n", exit_status, argv[0], error->message);
+ warning (_f ("g_spawn_sync failed (%d): %s: %s",
+ exit_status, argv[0], error->message));
g_error_free (error);
if (!exit_status)
exit_status = -1;
// Always get the pointer to the stdout/stderr messages
int exit_status = ly_run_command (argv, &standard_output, &standard_error);
- // Print out stdout and stderr only in debug mode
- debug_output (string ("\n") + standard_output + standard_error, true);
+ if (standard_output && standard_error)
+ {
+ // Print out stdout and stderr only in debug mode
+ debug_output (string ("\n") + standard_output + standard_error, true);
+ }
+
+ g_free (standard_error);
+ g_free (standard_output);
for (int i = 0; i < n; i++)
free (argv[i]);