I just wrote this code a couple of days a ago, so I could easily ban
inappropriate names online. So here you go :)
in act.wizard.c:
add these towards the top
	extern FILE *player_fl;
	void Read_Invalid_List(void);
then add this somewhere in the same file
ACMD(do_xname)
{
   char tempname[MAX_INPUT_LENGTH];
   int i = 0;
   FILE *fp;
   *buf = '\0';
   one_argument(argument, buf);
   if(!*buf)
      send_to_char("Xname which name?\r\n", ch);
   if(!(fp = fopen(XNAME_FILE, "a"))) {
      perror("Problems opening xname file for do_xname");
      return;
   }
   strcpy(tempname, buf);
   for (i = 0; tempname[i]; i++)
      tempname[i] = LOWER(tempname[i]);
   fprintf(fp, "%s\n", tempname);
   fclose(fp);
   sprintf(buf1, "%s has been xnamed!", tempname);
   send_to_char(buf1, ch);
   Read_Invalid_List();
}
finally in interpreter.c add:
	ACMD(do_xname);
and
	{ "xname"  , POS_DEAD  , do_xname, LVL_IMPL, 0 },
This is basically how mine is set up...Note that code doesn't include
very many checks and this is the main reason I only let Imps use this code.
If you decide to add on please send me your additions :)
Or if you have any problems or questions about this code mail me at
Bodega@petstore.staffairs.andrews.edu
Good Luck,
	David Endre (Bodega)
	Petstore Mud running at petstore.staffairs.andrews.edu 4000
	Note: Mud is still in the building process, and not open for play.
+-----------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
|   http://cspo.queensu.ca/~fletcher/Circle/list_faq.html   |
+-----------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/07/00 PST