[Turn off line numbering]
1: arg name, branch, definer, value;
2: var compiler, branches, msg, definer, b;
3:
4: (> .perms(sender()) <);
5: compiler = (| definer.get_msg_attr(name, 'compiler) |) || $compiler;
6: value = (> compiler.compile_cml(value) <);
7: branch ?= "general";
8: branches = definer.get_msg_attr(name, 'branches);
9: if (!find b in (branches) where (match_pattern(branch, b) != 0) && match_pattern(branch + ".", b))
10: throw(~badbranch, "Message branch \"" + branch + "\" is invalid.");
11: msgs ?= #[];
12: msg = dict_add((| msgs[name] |) || #[], branch, value);
13: msgs = dict_add(msgs, name, msg);
// Created 27-Mar-1995 as a part of ColdCore, see: @help Credit