Provided by: allegro5-doc_5.2.8.0+dfsg-1_all bug

NAME

       al_fixsub - Allegro 5 API

SYNOPSIS

              #include <allegro5/allegro.h>

              al_fixed al_fixsub(al_fixed x, al_fixed y);

DESCRIPTION

       Although  fixed  point  numbers can be subtracted with the normal - integer operator, that
       doesn’t provide any protection against overflow.  If overflow is a problem, you should use
       this  function  instead.   It  is  slower than using integer operators, but if an overflow
       occurs it will set Allegro’s errno and clamp the result, rather than just letting it wrap.

       Example:

              al_fixed result;

              /* This will put 4965 into `result'. */
              result = al_fixsub(al_itofix(5000), al_itofix(35));

              /* Sets errno and puts -32768 into `result'. */
              result = al_fixsub(al_itofix(-31000), al_itofix(3000));
              assert(!al_get_errno()); /* This will fail. */

RETURN VALUE

       Returns the clamped result of subtracting y from x, setting Allegro’s errno to  ERANGE  if
       there was an overflow.

SEE ALSO

       al_fixadd(3alleg5), al_fixmul(3alleg5), al_fixdiv(3alleg5), al_get_errno(3alleg5).