Version 0.73p2 is a maintenance release of version 0.73.
It is the second maintenance release in that series.
+ Major changes:
+ * Implement attribute value access by %<name> [AEJ]
+
Fixes:
* Add 'Command' lock to list of exemptions to Pass_Locks power [AEJ]
safe_chr(savec, buff, bp);
(*str)++;
switch (savec) {
+ case '<':
+ savec = **str;
+ if (!savec)
+ goto exit_sequence;
+ for (savec = **str; savec && savec != '>'; savec = **str) {
+ safe_chr(savec, buff, bp);
+ (*str)++;
+ }
+ if(!savec)
+ goto exit_sequence;
+ safe_chr(savec, buff, bp);
+ (*str)++;
+ break;
case 'Q':
case 'q':
savec = **str;
gender = get_gender(enactor);
safe_str(poss[gender], buff, bp);
break;
+ case '<':
+ if (!**str)
+ goto exit_sequence;
+ {
+ const char *tmp;
+ char atrname[BUFFER_LEN];
+ ATTR *atr;
+
+ for(tmp = *str; *tmp && *tmp != '>'; tmp++)
+ ;
+ if(!*tmp || tmp == *str) {
+ (*str)--;
+ goto exit_sequence;
+ }
+ strncpy(atrname, *str, tmp - *str);
+ atrname[tmp - *str] = '\0';
+
+ atr = atr_get(executor, strupper(atrname));
+ if(atr)
+ safe_str(atr_value(atr), buff, bp);
+ *str = tmp + 1;
+ }
+ break;
case 'Q':
case 'q': /* temporary storage */
nextc = **str;