Bennu Game Development

Foros en Español => Otros DIV-likes => PixTudio => Topic started by: DCelso on November 15, 2016, 05:54:19 PM

Title: ¿Por qué pxtb no devuelve lo mismo que bgdc?
Post by: DCelso on November 15, 2016, 05:54:19 PM
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?
Title: Re:¿Por qué pxtb no devuelve lo mismo que bgdc?
Post by: panreyes on November 15, 2016, 06:04:10 PM
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.
Title: Re:¿Por qué pxtb no devuelve lo mismo que bgdc?
Post by: SplinterGU on November 15, 2016, 09:06:06 PM
no se... creo que es correcto que devuelva 0 si todo salio bien...
Title: Re:¿Por qué pxtb no devuelve lo mismo que bgdc?
Post by: 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)
Title: Re:¿Por qué pxtb no devuelve lo mismo que bgdc?
Post by: SplinterGU on November 15, 2016, 09:20:14 PM
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...
Title: Re:¿Por qué pxtb no devuelve lo mismo que bgdc?
Post by: gecko on November 18, 2016, 04:49:57 PM
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)
Title: Re:¿Por qué pxtb no devuelve lo mismo que bgdc?
Post by: josebita on November 20, 2016, 07:22:20 PM
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.
Title: Re:¿Por qué pxtb no devuelve lo mismo que bgdc?
Post by: SplinterGU on November 20, 2016, 11:03:30 PM
mmm... es cierto, entonces 1 es ok...
Title: Re:¿Por qué pxtb no devuelve lo mismo que bgdc?
Post by: josebita on November 21, 2016, 09:53:48 AM
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.
Title: Re:¿Por qué pxtb no devuelve lo mismo que bgdc?
Post by: DCelso on November 21, 2016, 06:10:46 PM
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.