/* TextureStudio ARexx script **************************************/

/* Allow commands to return results */

options results

/* On error, goto ERROR:. Comment out this line if you wish to */
/* perform your own error checking. */

signal on error

/* BEGIN PROGRAM *************************************************/

address "TEXTURESTUDIO"















/* END PROGRAM ***************************************************/

exit

/* On ERROR */

ERROR:

/* If we get here, either an error occurred with the command's */
/* execution or there was an error with the command itself. */
/* In the former case, rc2 contains the error message and in */
/* the latter, rc2 contains an error number. SIGL contains */
/* the line number of the command which caused the jump */
/* to ERROR: */

if datatype(rc2,'NUMERIC') == 1 then do
	/* See if we can describe the error with a string */

	select
		when rc2 == 103 then
			err_string = "ERROR 103, "||,
				"out of memory at line "||SIGL
		when rc2 == 114 then
			err_string = "ERROR 114, "||,
				"bad command template at line "||SIGL
		when rc2 == 115 then
			err_string = "ERROR 115, "||,
				"bad number for /N argument at line "||SIGL
		when rc2 == 116 then
			err_string = "ERROR 116, "||,
				"required argument missing at line "||SIGL
		when rc2 == 117 then
			err_string = "ERROR 117, "||,
				"value after keywork missing at line "||SIGL
		when rc2 == 118 then
			err_string = "ERROR 118, "||,
				"wrong number of arguments at line "||SIGL
		when rc2 == 119 then
			err_string = "ERROR 119, "||,
				"unmatched quotes at line "||SIGL
		when rc2 == 120 then
			err_string = "ERROR 120, "||,
				"line too long at line "||SIGL
		when rc2 == 236 then
			err_string = "ERROR 236, "||,
				"unknown command at line "||SIGL
		otherwise
			err_string = "ERROR "||rc2||" at line "||SIGL
		end
        end
else if rc2 == 'RC2' then do
	err_string = "ERROR in command at line "||SIGL
	end
else do
        err_string = rc2||", line "||SIGL
        end

say err_string

/* Unblock windows, just incase they are still blocked by the program being */
/* terminated mid-way */

GUI_UNBLOCK

exit
