diff --git a/c/auxiliary b/c/auxiliary index 95039864846ec2a86bfa8ec4cc151b94b0ce687a..628d90f42a02730b7b94823b6e94c6267bf98d5f 100644 --- a/c/auxiliary +++ b/c/auxiliary @@ -90,11 +90,28 @@ extern _kernel_oserror *menu_update_size(MenuInternal *menu_int) { if (entry->icon_flags & wimp_ICONFLAGS_TEXT) { width = (entry->icon_data.indirect_text.buff_len+1)<<4; } else { - regs.r[0] = os_SpriteOp_ReadInfo; - regs.r[2] = (int) entry->icon_data.indirect_sprite.sprite.name; + /* IDJ: 22-May-95: bug-fix AQU-01264: look in user sprite area if + one is defined first, then in wimp sprite area as a + fall-back. + */ + e = NULL; + + if (entry->icon_data.indirect_sprite.sprite_area != (void *)1 /* user area */) + { + regs.r[0] = os_SpriteOp_ReadInfo + 256; + regs.r[1] = (int) entry->icon_data.indirect_sprite.sprite_area; + regs.r[2] = (int) entry->icon_data.indirect_sprite.sprite.name; + + e = _kernel_swi (OS_SpriteOp, ®s, ®s); + } - if ((e = _kernel_swi (Wimp_SpriteOp, ®s, ®s)) != NULL) { - return e; + if (e != NULL || entry->icon_data.indirect_sprite.sprite_area == (void *)1 /* WIMP area */) + { + regs.r[0] = os_SpriteOp_ReadInfo; + regs.r[2] = (int) entry->icon_data.indirect_sprite.sprite.name; + + if ((e = _kernel_swi (Wimp_SpriteOp, ®s, ®s)) != NULL) + return e; } width = regs.r[3]; mode = regs.r[6]; diff --git a/cmhg/Modhdr b/cmhg/Modhdr index e259f005bc4eda0a0db0fc7d491964efef6e33d0..71288fd538a669061001f8f28cd788b838c459fc 100644 --- a/cmhg/Modhdr +++ b/cmhg/Modhdr @@ -33,7 +33,7 @@ service-call-handler: Menu_services 0x44ec1, 0x44ec2, 0x44ec3 title-string: Menu -help-string: Menu 0.23 +help-string: Menu 0.24 command-keyword-table: Menu_commands Menu_Memory() diff --git a/cmhg/Modhdr_NoD b/cmhg/Modhdr_NoD index 3c033a702e545ffa1f6f2ffcec9c56fcbbf3ad34..66c33465d38fc1b03bd7f163ef2340706dc6a8eb 100644 --- a/cmhg/Modhdr_NoD +++ b/cmhg/Modhdr_NoD @@ -33,7 +33,7 @@ service-call-handler: Menu_services 0x44ec1, 0x44ec2, 0x44ec3 title-string: Menu -help-string: Menu 0.23 +help-string: Menu 0.24 swi-chunk-base-number: 0x828c0