On Tuesday 09 April 2002 4:24 pm, Herbert Voss wrote: > Angus Leeming wrote: > > Alternatively, rotate it by 270.1 degs. > > this is not possible yet, only 4 characters. I'll send a > fix together with some other more or less small changes > > > Herbert
and just to show we really are nice people, this patch should fix your xforms library! Not tested of course... Angus
--- image_rotate.c Mon Apr 1 18:51:21 2002 +++ image_rotate.c_new Tue Apr 9 15:31:03 2002 @@ -226,7 +226,8 @@ int nrow = row, ncol = col; void *mm; - if (deg == 90 || deg == -90) + /* deg lies in the range 0 <= deg < 360 */ + if (deg == 90 || deg == 270) { nrow = col; ncol = row; @@ -235,29 +236,29 @@ if (!(mm = fl_get_matrix(nrow, ncol, e))) return 0; - if (deg == 90) - { + switch (deg) { + case 90: if (e == 2) DO_90(unsigned short, mm, m); else DO_90(unsigned char, mm, m); - } - else if (deg == -90) - { - if (e == 2) - DO_M90(unsigned short, mm, m); - else - DO_M90(unsigned char, mm, m); - } - else if (deg == 180 || deg == -180) - { + break; + + case 180: if (e == 2) DO_180(unsigned short, mm, m); else DO_180(unsigned char, mm, m); - } - else - { + break; + + case 270: + if (e == 2) + DO_M90(unsigned short, mm, m); + else + DO_M90(unsigned char, mm, m); + break; + + default: M_err("RotateMatrix", "InternalError: bad special angle\n"); return 0; }