--- src/store.c.orig 2004-07-11 15:18:56.000000000 -0400 +++ src/store.c 2004-07-11 17:45:15.000000000 -0400 @@ -3303,6 +3303,7 @@ { int i; int item; + bool browse; object_type *o_ptr; @@ -3359,11 +3360,21 @@ /* Describe */ msg_format("Examining %s...", o_name); - /* Describe it fully */ - if (o_ptr->tval < TV_BOOK) + /* Should we read it like a spellbook or describe it normally? */ + browse = FALSE; + if (o_ptr->tval == TV_INSTRUMENT || o_ptr->tval == TV_DAEMON_BOOK) + { + browse = get_check("Browse spells in this item? "); + } + else if (o_ptr->tval >= TV_BOOK) + { + browse = TRUE; + } + + /* Describe it fully, or browse its spells, as specified above */ + if (!browse) { if (!object_out_desc(o_ptr, NULL, FALSE, TRUE)) msg_print("You see nothing special."); - /* Books are read */ } else {