Simple curiosidad
bgdc cuando falla y no compila devuelve 2, y pxtb también
en cambio cuando no falla y compila
bgdc devuelve 1 y pxtb 0
¿Algún motivo para cambiarlo?
Corresponde al infierno mental que supone que en programación Verdadero es 1, Falso es 0, pero cuando haces un programa el "error de salida" 0 es una salida correcta y la incorrecta >0.
Pónselo a Joseba en el BitBucket y lo corregirá en el momento.
no se... creo que es correcto que devuelva 0 si todo salio bien...
Quote from: SplinterGU on November 15, 2016, 09:06:06 PM
no se... creo que es correcto que devuelva 0 si todo salio bien...
Cierto, porque es la salida de un programa. ¿Pero y si fuera la salida de una función?
En ese caso debería retornar 1, o true.
He ahí el lío mental... (sino me equivoco)
Quote from: panreyes on November 15, 2016, 09:15:57 PM
Quote from: SplinterGU on November 15, 2016, 09:06:06 PM
no se... creo que es correcto que devuelva 0 si todo salio bien...
Cierto, porque es la salida de un programa. ¿Pero y si fuera la salida de una función?
En ese caso debería retornar 1, o true.
He ahí el lío mental... (sino me equivoco)
salida de funcion depende de la funcion y de lo que busque el usuario...
salida de programa, en general 0 es todo ok, otros valores representa error o advertencia de algo...
en todo caso, habria que corregir bennugd... me parece...
Por esto mismo es que si yo ejecuto
bgdc main.prg && bgdi main.dcb
el segundo comando nunca se llega a ejecutar, porque toma la salida del primero como errónea, cierto? (aunque haya compilado correctamente)
Cambié los valores de retorno de pxtb para poder hacer justo lo que dice gecko (de acuerdo con los valores de retorno normales en Unix/Linux (https://en.wikipedia.org/wiki/Exit_status#C_language)).
Con PixTudio se puede hacer:
pxtb main.prg && pxtp main.dcb
y se comporta como uno esperaría.
mmm... es cierto, entonces 1 es ok...
Quote from: SplinterGU on November 20, 2016, 11:03:30 PM
mmm... es cierto, entonces 1 es ok...
Según la documentación, EXIT_SUCCESS es 0 en sistemas POSIX. De forma que si el proceso de compilado funciona bien, debería devolver 0.
yo lo arreglo tal que así
set GAME_NAME=bbardero
bgdc.exe %GAME_NAME%.prg -o %GAME_NAME%.dcb
IF %ERRORLEVEL% EQU 1 bgdi %GAME_NAME%
pause
Y santas pascuas, pa pixtudio habria que poner un 0.