Merge pull request #2831 from DavidPL1:fix-sample-compile-exitcodes

PiperOrigin-RevId: 852832955
Change-Id: Iddc7c9366f6e81800ed48a0790336db7dfa3e9d1
This commit is contained in:
Copybara-Service
2026-01-06 10:18:43 -08:00
+8 -8
View File
@@ -39,7 +39,7 @@ mjtNum gettm(void) {
} }
// deallocate and print message // deallocate and print message
int finish(const char* msg = 0, mjModel* m = 0) { int finish(const char* msg = 0, int exitcode = EXIT_SUCCESS, mjModel* m = 0) {
// deallocated everything // deallocated everything
if (m) { if (m) {
mj_deleteModel(m); mj_deleteModel(m);
@@ -50,7 +50,7 @@ int finish(const char* msg = 0, mjModel* m = 0) {
std::cout << msg << std::endl; std::cout << msg << std::endl;
} }
return EXIT_SUCCESS; return exitcode;
} }
@@ -109,7 +109,7 @@ int main(int argc, char** argv) {
// print help if arguments are missing // print help if arguments are missing
if (argc!=3 && argc!=2) { if (argc!=3 && argc!=2) {
return finish(helpstring); return finish(helpstring, EXIT_FAILURE);
} }
// determine file types // determine file types
@@ -119,7 +119,7 @@ int main(int argc, char** argv) {
// check types // check types
if (type1==typeUNKNOWN || type1==typeTXT || if (type1==typeUNKNOWN || type1==typeTXT ||
type2==typeUNKNOWN || (type1==typeMJB && type2==typeXML)) { type2==typeUNKNOWN || (type1==typeMJB && type2==typeXML)) {
return finish("Illegal combination of file formats"); return finish("Illegal combination of file formats", EXIT_FAILURE);
} }
// check if output file exists // check if output file exists
@@ -153,16 +153,16 @@ int main(int argc, char** argv) {
// check error // check error
if (!m) { if (!m) {
if (type1==typeXML) { if (type1==typeXML) {
return finish(error, 0); return finish(error, EXIT_FAILURE);
} else { } else {
return finish("Could not load model", 0); return finish("Could not load model", EXIT_FAILURE);
} }
} }
// save model // save model
if (type2==typeXML) { if (type2==typeXML) {
if (!mj_saveLastXML(argv[2], m, error, 1000)) { if (!mj_saveLastXML(argv[2], m, error, 1000)) {
return finish(error, m); return finish(error, EXIT_FAILURE, m);
} }
} else if (type2==typeMJB) { } else if (type2==typeMJB) {
mj_saveModel(m, argv[2], 0, 0); mj_saveModel(m, argv[2], 0, 0);
@@ -181,5 +181,5 @@ int main(int argc, char** argv) {
snprintf(msg, sizeof(msg), "Done."); snprintf(msg, sizeof(msg), "Done.");
} }
return finish(msg, m); return finish(msg, EXIT_SUCCESS, m);
} }