[PENNMUSH-ANNOUNCE] 1.7.4-patch04
dunemush@pennmush.org
dunemush at pennmush.org
Thu, 24 May 2001 16:12:10 -0500
This is patch04 to PennMUSH 1.7.4. After applying this patch, you will
have version 1.7.4p4
To apply this patch, save it to a file in your top-level MUSH directory,
and do the following:
patch -p1 < 1.7.4-patch04
make install
If you use GNU patch 2.2, you probably want the above to be 'patch -b -p1',
not just 'patch -p1'.
Then @shutdown and restart your MUSH.
- Alan/Javelin
In this patch:
Minor changes:
* Internally, the /folder switch is now /folders, which prefix-matches
to /folder and also lets @mail/folders work as syntactic sugar.
* fun_ansi has been rewritten to use less buffer space by consolidating
ansi codes. New codes for turning off ansi attributes (like hilite)
also added. Patch by Luke@M*U*S*H.
* /silent switch to give suppresses default messages when giving
money to players. Suggested by 8BitMUSH.
* Old port concentrator code removed. [SW]
* On linux, @uptime reads /proc files instead of running 'uptime' [SW]
* Code that uses strdup and then adds a MEM_CHECK record for "string"
now use a wrapper function that does it automatically. [SW]
Fixes:
* Paging a page-locked player didn't give the appropriate messages.
Reported by Steven@Champions.
* left, right, and mid are now ansi-aware. Patch by Luke@M*U*S*H.
* Help fixes to lexits(), name() (Noltar@Korongil), 1.7.4p3 (Matrim@M*U*S*H).
* win32/cmds.h updated with prototypes for dismiss and desert by
Noltar@Korongil. And hdrs/externs.h, too, by [SW].
* Memory leak with using alphabetic q-registers in queued commands fixed.
Report by Jayvin@Dynamix [SW]
* Added hints/openbsd.sh to distribution.
* Mac portability linting. [DW]
* Several memory leaks in @malias code fixed. [SW]
Prereq: 1.7.4p3
*** 1_7_4.82/Patchlevel Fri, 06 Apr 2001 15:24:09 -0500 dunemush (pennmush/5_Patchlevel 1.21 600)
--- 1_7_4.93(w)/Patchlevel Tue, 24 Apr 2001 12:03:11 -0500 dunemush (pennmush/5_Patchlevel 1.22 600)
***************
*** 1,2 ****
Do not edit this file. It is maintained by the official PennMUSH patches.
! This is PennMUSH 1.7.4p3
--- 1,2 ----
Do not edit this file. It is maintained by the official PennMUSH patches.
! This is PennMUSH 1.7.4p4
*** 1_7_4.82/CHANGES Mon, 23 Apr 2001 18:06:35 -0500 dunemush (pennmush/8_CHANGES 1.204 600)
--- 1_7_4.93(w)/CHANGES Tue, 15 May 2001 15:59:37 -0500 dunemush (pennmush/8_CHANGES 1.212 600)
***************
*** 17,27 ****
==========================================================================
Version 1.7.4 patchlevel 3 April 23, 2001
Commands:
* unfollow with no args now stops you from following everyone.
! dismiss command stops people from followig you.
desert command stops people from following you or leading you.
Idea by Oriens@Alexandria. Names suggested by Noltar@Korongil
Minor changes:
--- 17,54 ----
==========================================================================
+ Version 1.7.4 patchlevel 4 May 13, 2001
+
+ Minor changes:
+ * Internally, the /folder switch is now /folders, which prefix-matches
+ to /folder and also lets @mail/folders work as syntactic sugar.
+ * fun_ansi has been rewritten to use less buffer space by consolidating
+ ansi codes. New codes for turning off ansi attributes (like hilite)
+ also added. Patch by Luke@M*U*S*H.
+ * /silent switch to give suppresses default messages when giving
+ money to players. Suggested by 8BitMUSH.
+ * Old port concentrator code removed. [SW]
+ * On linux, @uptime reads /proc files instead of running 'uptime' [SW]
+ * Code that uses strdup and then adds a MEM_CHECK record for "string"
+ now use a wrapper function that does it automatically. [SW]
+ Fixes:
+ * Paging a page-locked player didn't give the appropriate messages.
+ Reported by Steven@Champions.
+ * left, right, and mid are now ansi-aware. Patch by Luke@M*U*S*H.
+ * Help fixes to lexits(), name() (Noltar@Korongil), 1.7.4p3 (Matrim@M*U*S*H).
+ * win32/cmds.h updated with prototypes for dismiss and desert by
+ Noltar@Korongil. And hdrs/externs.h, too, by [SW].
+ * Memory leak with using alphabetic q-registers in queued commands fixed.
+ Report by Jayvin@Dynamix [SW]
+ * Added hints/openbsd.sh to distribution.
+ * Mac portability linting. [DW]
+ * Several memory leaks in @malias code fixed. [SW]
+
Version 1.7.4 patchlevel 3 April 23, 2001
Commands:
* unfollow with no args now stops you from following everyone.
! dismiss command stops people from following you.
desert command stops people from following you or leading you.
Idea by Oriens@Alexandria. Names suggested by Noltar@Korongil
Minor changes:
*** 1_7_4.82/game/txt/hlp/pennvers.hlp Mon, 23 Apr 2001 18:06:35 -0500 dunemush (pennmush/12_pennvers.h 1.153 600)
--- 1_7_4.93(w)/game/txt/hlp/pennvers.hlp Thu, 24 May 2001 16:10:23 -0500 dunemush (pennmush/12_pennvers.h 1.162 600)
***************
*** 1,5 ****
& changes
! & 1.7.4p3
This is a list of changes in this patchlevel which are probably of
interest to players. More information about new commands and functions
can probably be gotten via 'help <name of whatever>'. 'help credits'
--- 1,5 ----
& changes
! & 1.7.4p4
This is a list of changes in this patchlevel which are probably of
interest to players. More information about new commands and functions
can probably be gotten via 'help <name of whatever>'. 'help credits'
***************
*** 11,21 ****
A list of the patchlevels associated with each release can
be read in 'help patchlevels'.
Version 1.7.4 patchlevel 3 April 23, 2001
Commands:
* unfollow with no args now stops you from following everyone.
! dismiss command stops people from followig you.
desert command stops people from following you or leading you.
Idea by Oriens@Alexandria. Names suggested by Noltar@Korongil
Minor changes:
--- 11,49 ----
A list of the patchlevels associated with each release can
be read in 'help patchlevels'.
+ Version 1.7.4 patchlevel 4 May 13, 2001
+
+ Minor changes:
+ * Internally, the /folder switch is now /folders, which prefix-matches
+ to /folder and also lets @mail/folders work as syntactic sugar.
+ * fun_ansi has been rewritten to use less buffer space by consolidating
+ ansi codes. New codes for turning off ansi attributes (like hilite)
+ also added. Patch by Luke@M*U*S*H.
+ * /silent switch to give suppresses default messages when giving
+ money to players. Suggested by 8BitMUSH.
+ * Old port concentrator code removed. [SW]
+ * On linux, @uptime reads /proc files instead of running 'uptime' [SW]
+ * Code that uses strdup and then adds a MEM_CHECK record for "string"
+ now use a wrapper function that does it automatically. [SW]
+ Fixes:
+ * Paging a page-locked player didn't give the appropriate messages.
+ Reported by Steven@Champions.
+ * left, right, and mid are now ansi-aware. Patch by Luke@M*U*S*H.
+ * Help fixes to lexits(), name() (Noltar@Korongil), 1.7.4p3 (Matrim@M*U*S*H).
+ * win32/cmds.h updated with prototypes for dismiss and desert by
+ Noltar@Korongil. And hdrs/externs.h, too, by [SW].
+ * Memory leak with using alphabetic q-registers in queued commands fixed.
+ Report by Jayvin@Dynamix [SW]
+ * Added hints/openbsd.sh to distribution.
+ * Mac portability linting. [DW]
+ * Several memory leaks in @malias code fixed. [SW]
+
+ & 1.7.4p3
Version 1.7.4 patchlevel 3 April 23, 2001
Commands:
* unfollow with no args now stops you from following everyone.
! dismiss command stops people from following you.
desert command stops people from following you or leading you.
Idea by Oriens@Alexandria. Names suggested by Noltar@Korongil
Minor changes:
***************
*** 4618,4624 ****
is configurable.
& patchlevels
! 1.7.4: 0, 1, 2, 3
1.7.3: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
1.7.2: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35
--- 4646,4655 ----
is configurable.
& patchlevels
! For information on a specific patchlevel of one of the versions listed,
! type 'help <version>p<patchlevel>'. For example, 'help 1.7.2p3'
!
! 1.7.4: 0, 1, 2, 3, 4
1.7.3: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
1.7.2: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35
*** 1_7_4.82/game/txt/hlp/pennfunc.hlp Wed, 04 Apr 2001 13:10:52 -0500 dunemush (pennmush/16_pennfunc.h 1.2.1.50.1.1.1.1.1.2.1.3 600)
--- 1_7_4.93(w)/game/txt/hlp/pennfunc.hlp Wed, 25 Apr 2001 14:22:13 -0500 dunemush (pennmush/16_pennfunc.h 1.2.1.50.1.1.1.1.1.2.1.7 600)
***************
*** 290,302 ****
& ANSI()
ansi(<codes>,<string>)
! This allows you to highlight a string using ANSI terminal effects. The
! string is terminated with a "return to normal" code, and the codes are
! utilized in the order they are specified. The codes are:
!
! f - flash i - inverse
! h - hilite n - normal
! u - underscore
x - black foreground X - black background
r - red foreground R - red background
--- 290,303 ----
& ANSI()
ansi(<codes>,<string>)
! This allows you to highlight a string using ANSI terminal effects.
! The codes are:
!
! f - flash F - not flash
! h - hilite H - not hilite
! u - underscore U - not underscore
! i - inverse I - not inverse
! n - normal
x - black foreground X - black background
r - red foreground R - red background
***************
*** 1477,1485 ****
& LEXITS()
lexits(<object>)
! Returns a list of the dbrefs of all the non-dark exits in the room.
! If you are not in the room, you must control it in order to get the
! list of exits.
& LJUST()
ljust(<string>,<length>[,<fill>])
--- 1478,1486 ----
& LEXITS()
lexits(<object>)
! Returns a list of the dbrefs of all the exits in the room visible to
! the executor. If you are not in the room, you must control it in order
! to get the list of exits.
& LJUST()
ljust(<string>,<length>[,<fill>])
***************
*** 2011,2022 ****
need an unprivileged who-list.
& NAME()
name(<object>[,<new name>])
Name returns the name of object <object>. For exits, name returns
the displayed name of the exit.
If function side effects are allowed, this function, given two arguments,
! will rename <object> to <new name>.
Related functions: FULLNAME()
& NAND()
--- 2012,2025 ----
need an unprivileged who-list.
& NAME()
name(<object>[,<new name>])
+ name(<player>[,<new name> <password>])
Name returns the name of object <object>. For exits, name returns
the displayed name of the exit.
If function side effects are allowed, this function, given two arguments,
! acts just like @name <object>=<new name>. Consequently, if renaming
! a player, you must use the player's password or be God.
Related functions: FULLNAME()
& NAND()
*** 1_7_4.82/game/txt/hlp/penncmd.hlp Sat, 07 Apr 2001 13:33:48 -0500 dunemush (pennmush/18_penncmd.hl 1.2.1.1.1.47.1.1.1.1.1.2 600)
--- 1_7_4.93(w)/game/txt/hlp/penncmd.hlp Fri, 11 May 2001 15:35:56 -0500 dunemush (pennmush/18_penncmd.hl 1.2.1.1.1.47.1.1.1.1.1.3 600)
***************
*** 3193,3208 ****
See also: @lock, ENTER_OK, give, drop, @success, inventory
& give
! give <player>=<pennies/object>
! Gives player the specified number of pennies or <object>. You can't give
someone pennies if their new total would be greater than 10000 pennies.
! (No reason to get greedy) You may also give players objects, but the
! other player must be set ENTER_OK in order to receive something you give.
!
Giving money to an object gives the money to the object's owner. Some
! MUSHes may have @lock/give enabled, which determines who is allowed to
! give an object.
See also: @pay, @cost, @lock, inventory, @receive, @give
& go
--- 3193,3213 ----
See also: @lock, ENTER_OK, give, drop, @success, inventory
& give
! give[/silent] <player>=<number>
! give <player>=<object>
! Gives player the specified <number> of pennies or <object>. You can't give
someone pennies if their new total would be greater than 10000 pennies.
! (No reason to get greedy). The /silent switch suppresses the default
! message indicating how many pennies were given. Wizards may "give"
! a negative number of pennies.
!
! You may also give players objects, but the other player must be set
! ENTER_OK in order to receive something you give.
!
Giving money to an object gives the money to the object's owner. Some
! MUSHes may have @lock/give enabled, which determines who is allowed
! to give an object.
See also: @pay, @cost, @lock, inventory, @receive, @give
& go
*** 1_7_4.82/src/SWITCHES Tue, 09 Jan 2001 17:56:37 -0600 dunemush (pennmush/b/22_SWITCHES 1.9 600)
--- 1_7_4.93(w)/src/SWITCHES Tue, 24 Apr 2001 12:36:47 -0500 dunemush (pennmush/b/22_SWITCHES 1.10 600)
***************
*** 36,43 ****
FILE
FIRST
FLAGS
! FOLDER
! FOO
FORWARD
FSTATS
FULL
--- 36,42 ----
FILE
FIRST
FLAGS
! FOLDERS
FORWARD
FSTATS
FULL
*** 1_7_4.82/src/wiz.c Thu, 29 Mar 2001 15:36:57 -0600 dunemush (pennmush/b/23_wiz.c 1.44 660)
--- 1_7_4.93(w)/src/wiz.c Sun, 13 May 2001 08:36:13 -0500 dunemush (pennmush/b/23_wiz.c 1.44.1.1.1.1 660)
***************
*** 81,89 ****
int tport_dest_ok _((dbref player, dbref victim, dbref dest));
int tport_control_ok _((dbref player, dbref victim, dbref loc));
- #ifdef CONCENTRATOR
- int parse_conc_descriptor _((char *str, int cport, int port));
- #endif
static int mem_usage _((dbref thing));
#ifdef INFO_SLAVE
--- 81,86 ----
***************
*** 193,199 ****
if (limit < owned) /* always have enough quota for your objects */
limit = owned;
! (void) atr_add(Owner(who), "RQUOTA", tprintf("%d", limit - owned), GOD, NOTHING);
notify(player, tprintf(T("Objects: %d Limit: %d"), owned, limit));
}
--- 190,197 ----
if (limit < owned) /* always have enough quota for your objects */
limit = owned;
! (void) atr_add(Owner(who), "RQUOTA", tprintf("%d", limit - owned), GOD,
! NOTHING);
notify(player, tprintf(T("Objects: %d Limit: %d"), owned, limit));
}
***************
*** 253,259 ****
if (limit <= owned)
(void) atr_add(who, "RQUOTA", "0", GOD, NOTHING);
else
! (void) atr_add(who, "RQUOTA", tprintf("%d", limit - owned), GOD, NOTHING);
}
}
if (limit == -1)
--- 251,258 ----
if (limit <= owned)
(void) atr_add(who, "RQUOTA", "0", GOD, NOTHING);
else
! (void) atr_add(who, "RQUOTA", tprintf("%d", limit - owned), GOD,
! NOTHING);
}
}
if (limit == -1)
***************
*** 518,524 ****
destination);
if ((victim != player) && !(Puppet(victim) &&
(Owner(victim) == Owner(player))))
! notify(player, T("Teleported."));
return;
}
/* we can't do it */
--- 517,523 ----
destination);
if ((victim != player) && !(Puppet(victim) &&
(Owner(victim) == Owner(player))))
! notify(player, T("Teleported."));
return;
}
/* we can't do it */
***************
*** 678,684 ****
(T
("%d objects = %d rooms, %d exits, %d things, %d players, %d garbage."),
si->total, si->rooms, si->exits, si->things, si->players,
! si->garbage));
if (first_free != NOTHING)
notify(player, tprintf(T("The next object to be created will be #%d."),
first_free));
--- 677,683 ----
(T
("%d objects = %d rooms, %d exits, %d things, %d players, %d garbage."),
si->total, si->rooms, si->exits, si->things, si->players,
! si->garbage));
if (first_free != NOTHING)
notify(player, tprintf(T("The next object to be created will be #%d."),
first_free));
***************
*** 737,745 ****
/* 2, self boot */
{
dbref victim;
- #ifdef CONCENTRATOR
- int cport, port;
- #endif
DESC *d = NULL;
victim = NOTHING;
--- 736,741 ----
***************
*** 750,764 ****
break;
case 1:
/* boot by descriptor */
- #ifdef CONCENTRATOR
- if (!parse_conc_descriptor(name, &cport, &port)) {
- notify(player, "Invalid descriptor specification (use d,d).");
- return;
- }
- victim = find_player_by_desc(cport, port);
- #else
victim = find_player_by_desc(atoi(name));
- #endif
if (victim == NOTHING) {
notify(player, "There is no one connected on that descriptor.");
return;
--- 746,752 ----
***************
*** 766,773 ****
break;
case 0:
/* boot by name */
! if (
! (victim =
noisy_match_result(player, name, TYPE_PLAYER,
MAT_LIMITED | MAT_ME)) == NOTHING) {
notify(player, T("No such connected player."));
--- 754,760 ----
break;
case 0:
/* boot by name */
! if ((victim =
noisy_match_result(player, name, TYPE_PLAYER,
MAT_LIMITED | MAT_ME)) == NOTHING) {
notify(player, T("No such connected player."));
***************
*** 792,802 ****
d = player_desc(victim);
break;
case 1:
- #ifdef CONCENTRATOR
- d = port_desc(cport, port);
- #else
d = port_desc(atoi(name));
- #endif
break;
case 2:
d = inactive_desc(victim);
--- 779,785 ----
***************
*** 823,852 ****
}
}
- #ifdef CONCENTRATOR
- int
- parse_conc_descriptor(str, cport, port)
- char *str;
- int *cport;
- int *port;
- {
- char *p, *q;
-
- p = str;
- q = str;
- while (p && *p && (*p != ','))
- p++;
- if (!p || !*p)
- return 0;
- *p = 0;
- if (!(p + 1) || !*(p + 1))
- return 0;
- *cport = atoi(q);
- *port = atoi(p + 1);
- return 1;
- }
- #endif /* CONCENTRATOR */
-
void
do_chownall(player, name, target)
dbref player;
--- 806,811 ----
***************
*** 869,878 ****
if (!target || !*target) {
n_target = player;
} else {
! if (
! (n_target =
noisy_match_result(player, target, TYPE_PLAYER,
! MAT_LIMITED)) == NOTHING) return;
}
for (i = 0; i < db_top; i++) {
--- 828,837 ----
if (!target || !*target) {
n_target = player;
} else {
! if ((n_target =
noisy_match_result(player, target, TYPE_PLAYER,
! MAT_LIMITED)) == NOTHING)
! return;
}
for (i = 0; i < db_top; i++) {
***************
*** 1101,1107 ****
return;
}
if ((thing = noisy_match_result(player, name, NOTYPE, MAT_EVERYTHING)) ==
! NOTHING) return;
#ifdef ONLINE_REG
if (Unregistered(thing)) {
notify(player, T("You can't grant powers to unregistered players."));
--- 1060,1067 ----
return;
}
if ((thing = noisy_match_result(player, name, NOTYPE, MAT_EVERYTHING)) ==
! NOTHING)
! return;
#ifdef ONLINE_REG
if (Unregistered(thing)) {
notify(player, T("You can't grant powers to unregistered players."));
***************
*** 1500,1506 ****
sclass = S_FLAG;
if (restrict && *restrict &&
!convert_flags(player, (char *) restrict, &restrict_flags,
! &restrict_toggles, &restrict_type)) return -1;
} else {
notify(player, T("Unknown search class."));
return -1;
--- 1460,1467 ----
sclass = S_FLAG;
if (restrict && *restrict &&
!convert_flags(player, (char *) restrict, &restrict_flags,
! &restrict_toggles, &restrict_type))
! return -1;
} else {
notify(player, T("Unknown search class."));
return -1;
***************
*** 2050,2061 ****
if (player == NOTHING) {
flag_broadcast(0, 0,
T
! ("GAME: Reboot w/o disconnect from game account, please wait."));}
! else {
flag_broadcast(0, 0,
T
("GAME: Reboot w/o disconnect by %s, please wait."),
! Name(Owner(player)));}
if (flag) {
paranoid_dump = 1;
paranoid_checkpt = db_top / 5;
--- 2011,2023 ----
if (player == NOTHING) {
flag_broadcast(0, 0,
T
! ("GAME: Reboot w/o disconnect from game account, please wait."));
! } else {
flag_broadcast(0, 0,
T
("GAME: Reboot w/o disconnect by %s, please wait."),
! Name(Owner(player)));
! }
if (flag) {
paranoid_dump = 1;
paranoid_checkpt = db_top / 5;
*** 1_7_4.82/src/warnings.c Sat, 06 Jan 2001 12:01:09 -0600 dunemush (pennmush/b/25_warnings.c 1.16 660)
--- 1_7_4.93(w)/src/warnings.c Sun, 13 May 2001 08:36:13 -0500 dunemush (pennmush/b/25_warnings.c 1.17 660)
***************
*** 104,110 ****
return W_UNLOCKED;
if (l->type == BOOLEXP_CONST ||
l->type == BOOLEXP_CARRY ||
! l->type == BOOLEXP_IS || l->type == BOOLEXP_OWNER) return W_LOCKED;
return (W_LOCKED | W_UNLOCKED);
}
--- 104,111 ----
return W_UNLOCKED;
if (l->type == BOOLEXP_CONST ||
l->type == BOOLEXP_CARRY ||
! l->type == BOOLEXP_IS || l->type == BOOLEXP_OWNER)
! return W_LOCKED;
return (W_LOCKED | W_UNLOCKED);
}
*** 1_7_4.82/src/unparse.c Mon, 30 Oct 2000 13:34:40 -0600 dunemush (pennmush/b/28_unparse.c 1.16 660)
--- 1_7_4.93(w)/src/unparse.c Sun, 13 May 2001 08:36:13 -0500 dunemush (pennmush/b/28_unparse.c 1.16.1.1 660)
***************
*** 95,101 ****
couldunparse = 0;
if (!(GoodObject(loc) || (loc == NOTHING) || (loc == AMBIGUOUS) ||
! (loc == HOME))) return T("*NOTHING*");
switch (loc) {
case NOTHING:
return T("*NOTHING*");
--- 95,102 ----
couldunparse = 0;
if (!(GoodObject(loc) || (loc == NOTHING) || (loc == AMBIGUOUS) ||
! (loc == HOME)))
! return T("*NOTHING*");
switch (loc) {
case NOTHING:
return T("*NOTHING*");
*** 1_7_4.82/src/help.c Sun, 04 Mar 2001 18:27:45 -0600 dunemush (pennmush/f/32_help.c 1.4.1.2.1.1.1.3.2.2.1.1 660)
--- 1_7_4.93(w)/src/help.c Tue, 15 May 2001 15:58:44 -0500 dunemush (pennmush/f/32_help.c 1.4.1.2.1.1.1.3.2.2.1.1.2.1 660)
***************
*** 87,109 ****
return;
}
! h = mush_malloc(sizeof *h, "help_file_entry");
! h->command = strdup(strupper(command_name));
! #ifdef MEM_CHECK
! add_check("string");
! #endif
! h->file = strdup(filename);
! #ifdef MEM_CHECK
! add_check("string");
! #endif
h->entries = 0;
h->indx = NULL;
h->admin = admin;
help_build_index(h, h->admin);
if (!h->indx) {
! mush_free(h->command, "string");
! mush_free(h->file, "string");
! mush_free(h, "help_file_entry");
return;
}
command_add(h->command, CMD_T_ANY | CMD_T_NOPARSE, 0, 0, 0, NULL,
--- 87,103 ----
return;
}
! h = mush_malloc(sizeof *h, "help_file.entry");
! h->command = mush_strdup(strupper(command_name), "help_file.command");
! h->file = mush_strdup(filename, "help_file.filename");
h->entries = 0;
h->indx = NULL;
h->admin = admin;
help_build_index(h, h->admin);
if (!h->indx) {
! mush_free(h->command, "help_file.command");
! mush_free(h->file, "help_file.filename");
! mush_free(h, "help_file.entry");
return;
}
command_add(h->command, CMD_T_ANY | CMD_T_NOPARSE, 0, 0, 0, NULL,
*** 1_7_4.82/src/switchinc.c Mon, 26 Mar 2001 15:33:20 -0600 dunemush (pennmush/b/32_switchinc. 1.3.1.2.1.6.1.18.1.2.1.2.2.5.1.4.2.4 660)
--- 1_7_4.93(w)/src/switchinc.c Sun, 13 May 2001 08:36:13 -0500 dunemush (pennmush/b/32_switchinc. 1.3.1.2.1.6.1.18.1.2.1.2.2.5.1.4.2.4.1.1 660)
***************
*** 1,259 ****
--- 1,388 ----
{
"ACCESS", SWITCH_ACCESS}
+
, {
"ADD", SWITCH_ADD}
+
, {
"ALL", SWITCH_ALL}
+
, {
"ATTRIBS", SWITCH_ATTRIBS}
+
, {
"BAN", SWITCH_BAN}
+
, {
"BLIND", SWITCH_BLIND}
+
, {
"BRIEF", SWITCH_BRIEF}
+
, {
"CHECK", SWITCH_CHECK}
+
, {
"CHOWN", SWITCH_CHOWN}
+
, {
"CLEAR", SWITCH_CLEAR}
+
, {
"CMD", SWITCH_CMD}
+
, {
"COMMANDS", SWITCH_COMMANDS}
+
, {
"CONN", SWITCH_CONN}
+
, {
"CONNECT", SWITCH_CONNECT}
+
, {
"CONNECTED", SWITCH_CONNECTED}
+
, {
"CONTENTS", SWITCH_CONTENTS}
+
, {
"COSTS", SWITCH_COSTS}
+
, {
"COUNT", SWITCH_COUNT}
+
, {
"CREATE", SWITCH_CREATE}
+
, {
"DATABASE", SWITCH_DATABASE}
+
, {
"DB", SWITCH_DB}
+
, {
"DEBUG", SWITCH_DEBUG}
+
, {
"DECOMPILE", SWITCH_DECOMPILE}
+
, {
"DEFAULTS", SWITCH_DEFAULTS}
+
, {
"DELETE", SWITCH_DELETE}
+
, {
"DELIM", SWITCH_DELIM}
+
, {
"DESC", SWITCH_DESC}
+
, {
"DESTROY", SWITCH_DESTROY}
+
, {
"DISABLE", SWITCH_DISABLE}
+
, {
"DOWN", SWITCH_DOWN}
+
, {
"DSTATS", SWITCH_DSTATS}
+
, {
"EMIT", SWITCH_EMIT}
+
, {
"ENABLE", SWITCH_ENABLE}
+
, {
"ERR", SWITCH_ERR}
+
, {
"EXITS", SWITCH_EXITS}
+
, {
"FILE", SWITCH_FILE}
+
, {
"FIRST", SWITCH_FIRST}
+
, {
"FLAGS", SWITCH_FLAGS}
+
, {
"FOLDER", SWITCH_FOLDER}
+
, {
"FOO", SWITCH_FOO}
+
, {
"FORWARD", SWITCH_FORWARD}
+
, {
"FSTATS", SWITCH_FSTATS}
+
, {
"FULL", SWITCH_FULL}
+
, {
"FUNCTIONS", SWITCH_FUNCTIONS}
+
, {
"FWD", SWITCH_FWD}
+
, {
"GAG", SWITCH_GAG}
+
, {
"GLOBALS", SWITCH_GLOBALS}
+
, {
"HEADER", SWITCH_HEADER}
+
, {
"HERE", SWITCH_HERE}
+
, {
"HIDE", SWITCH_HIDE}
+
, {
"ILIST", SWITCH_ILIST}
+
, {
"INVENTORY", SWITCH_INVENTORY}
+
, {
"IPRINT", SWITCH_IPRINT}
+
, {
"JOIN", SWITCH_JOIN}
+
, {
"LIST", SWITCH_LIST}
+
, {
"LOWERCASE", SWITCH_LOWERCASE}
+
, {
"ME", SWITCH_ME}
+
, {
"MEMBERS", SWITCH_MEMBERS}
+
, {
"MOD", SWITCH_MOD}
+
, {
"MORTAL", SWITCH_MORTAL}
+
, {
"MOTD", SWITCH_MOTD}
+
, {
"MUTE", SWITCH_MUTE}
+
, {
"NAME", SWITCH_NAME}
+
, {
"NO", SWITCH_NO}
+
, {
"NOEVAL", SWITCH_NOEVAL}
+
, {
"NOFLAGCOPY", SWITCH_NOFLAGCOPY}
+
, {
"NOISY", SWITCH_NOISY}
+
, {
"NOSIG", SWITCH_NOSIG}
+
, {
"NOSPACE", SWITCH_NOSPACE}
+
, {
"NOTIFY", SWITCH_NOTIFY}
+
, {
"NUKE", SWITCH_NUKE}
+
, {
"OFF", SWITCH_OFF}
+
, {
"ON", SWITCH_ON}
+
, {
"OUTSIDE", SWITCH_OUTSIDE}
+
, {
"OVERRIDE", SWITCH_OVERRIDE}
+
, {
"PANIC", SWITCH_PANIC}
+
, {
"PARANOID", SWITCH_PARANOID}
+
, {
"PLAYERS", SWITCH_PLAYERS}
+
, {
"PORT", SWITCH_PORT}
+
, {
"POSE", SWITCH_POSE}
+
, {
"PRESERVE", SWITCH_PRESERVE}
+
, {
"PRINT", SWITCH_PRINT}
+
, {
"PRIVS", SWITCH_PRIVS}
+
, {
"PURGE", SWITCH_PURGE}
+
, {
"QUICK", SWITCH_QUICK}
+
, {
"QUIET", SWITCH_QUIET}
+
, {
"READ", SWITCH_READ}
+
, {
"REBOOT", SWITCH_REBOOT}
+
, {
"REGISTER", SWITCH_REGISTER}
+
, {
"REMOVE", SWITCH_REMOVE}
+
, {
"RENAME", SWITCH_RENAME}
+
, {
"RESTORE", SWITCH_RESTORE}
+
, {
"RESTRICT", SWITCH_RESTRICT}
+
, {
"RETROACTIVE", SWITCH_RETROACTIVE}
+
, {
"ROOM", SWITCH_ROOM}
+
, {
"ROOMS", SWITCH_ROOMS}
+
, {
"ROYALTY", SWITCH_ROYALTY}
+
, {
"SEE", SWITCH_SEE}
+
, {
"SEEFLAG", SWITCH_SEEFLAG}
+
, {
"SELF", SWITCH_SELF}
+
, {
"SEND", SWITCH_SEND}
+
, {
"SET", SWITCH_SET}
+
, {
"SILENT", SWITCH_SILENT}
+
, {
"SKIPDEFAULTS", SWITCH_SKIPDEFAULTS}
+
, {
"SPEAK", SWITCH_SPEAK}
+
, {
"STATS", SWITCH_STATS}
+
, {
"SUMMARY", SWITCH_SUMMARY}
+
, {
"TABLES", SWITCH_TABLES}
+
, {
"TAG", SWITCH_TAG}
+
, {
"TELEPORT", SWITCH_TELEPORT}
+
, {
"TF", SWITCH_TF}
+
, {
"THINGS", SWITCH_THINGS}
+
, {
"TITLE", SWITCH_TITLE}
+
, {
"TRACE", SWITCH_TRACE}
+
, {
"UNCLEAR", SWITCH_UNCLEAR}
+
, {
"UNFOLDER", SWITCH_UNFOLDER}
+
, {
"UNGAG", SWITCH_UNGAG}
+
, {
"UNHIDE", SWITCH_UNHIDE}
+
, {
"UNMUTE", SWITCH_UNMUTE}
+
, {
"UNTAG", SWITCH_UNTAG}
+
, {
"UNTIL", SWITCH_UNTIL}
+
, {
"URGENT", SWITCH_URGENT}
+
, {
"USEFLAG", SWITCH_USEFLAG}
+
, {
"WHAT", SWITCH_WHAT}
+
, {
"WIPE", SWITCH_WIPE}
+
, {
"WIZ", SWITCH_WIZ}
+
, {
"WIZARD", SWITCH_WIZARD}
+
, {
"YES", SWITCH_YES}
+
, {
"ZONE", SWITCH_ZONE}
+
,
*** 1_7_4.82/src/strutil.c Fri, 23 Mar 2001 14:12:35 -0600 dunemush (pennmush/b/33_strutil.c 1.28.1.3.1.1 660)
--- 1_7_4.93(w)/src/strutil.c Tue, 15 May 2001 15:58:44 -0500 dunemush (pennmush/b/33_strutil.c 1.28.1.3.1.3.1.1 660)
***************
*** 38,43 ****
--- 38,67 ----
char *next_token _((char *str, char sep));
static int format_long _((long val, char *buff, char **bp, int maxlen));
+
+ char *
+ mush_strdup(s, check)
+ const char *s;
+ const char *check;
+ {
+ char *x;
+
+ #ifdef HAS_STRDUP
+ x = strdup(s);
+ #ifdef MEM_CHECK
+ if (x)
+ add_check(check);
+ #endif
+ #else
+
+ Size_t len = strlen(s) + 1;
+ x = mush_malloc(len, check);
+ if (x)
+ memcpy(x, s, len);
+ #endif
+ return x;
+ }
+
/* Return the string chopped at lim characters */
char *
chopstr(str, lim)
***************
*** 598,614 ****
p++;
i++;
}
- i++;
} else if (*p == TAG_START) {
while ((*p) && (*p != TAG_END)) {
p++;
i++;
}
! i++;
! }
i++;
p++;
- numchars--;
}
return i;
}
--- 622,636 ----
p++;
i++;
}
} else if (*p == TAG_START) {
while ((*p) && (*p != TAG_END)) {
p++;
i++;
}
! } else
! numchars--;
i++;
p++;
}
return i;
}
***************
*** 696,715 ****
if (!orig)
return NULL;
! for (q = (char *) orig; *q; q++) {
switch (*q) {
case ESC_CHAR:
/* Skip over ansi */
! while (*q && *q != 'm')
! q++;
break;
case TAG_START:
/* Skip over HTML */
! while (*q && *q != TAG_END)
! q++;
break;
default:
! safe_chr(*q, buff, &bp);
}
}
*bp = '\0';
--- 718,735 ----
if (!orig)
return NULL;
! for (q = (char *) orig; *q;) {
switch (*q) {
case ESC_CHAR:
/* Skip over ansi */
! while (*q && *q++ != 'm') ;
break;
case TAG_START:
/* Skip over HTML */
! while (*q && *q++ != TAG_END) ;
break;
default:
! safe_chr(*q++, buff, &bp);
}
}
*bp = '\0';
***************
*** 814,817 ****
--- 834,896 ----
}
return 0;
+ }
+
+ int
+ ansi_save(string, length, buff, bp)
+ const char *string;
+ int length;
+ char *buff, **bp;
+ {
+ const char *p;
+ int i = 0;
+ p = string;
+ if (!p)
+ return 0;
+ while (*p && (length != 0)) {
+ if (*p == ESC_CHAR) {
+ while ((*p) && (*p != 'm')) {
+ safe_chr(*p, buff, bp);
+ p++;
+ i++;
+ }
+ safe_chr(*p, buff, bp);
+ i++;
+ } else if (*p == TAG_START) {
+ while ((*p) && (*p != TAG_END)) {
+ safe_chr(*p, buff, bp);
+ p++;
+ i++;
+ }
+ safe_chr(*p, buff, bp);
+ i++;
+ } else if (length != -1)
+ length--;
+ i++;
+ p++;
+ }
+ safe_chr('\0', buff, bp);
+ return 1;
+ }
+
+ int
+ ansi_align(string, length)
+ const char *string;
+ int length;
+ {
+ if (!string)
+ return length;
+ if ((Size_t) length > strlen(string))
+ return strlen(string);
+ string += length;
+ for (; *string;)
+ if (*string == ESC_CHAR)
+ while ((*string) && (*string != 'm'))
+ ++string, ++length;
+ else if (*string == TAG_START)
+ while ((*string) && (*string != TAG_END))
+ ++string, ++length;
+ else
+ break;
+ return length;
}
*** 1_7_4.82/src/speech.c Fri, 23 Mar 2001 14:12:35 -0600 dunemush (pennmush/b/35_speech.c 1.21.1.2.1.3.1.5.1.1.1.7 660)
--- 1_7_4.93(w)/src/speech.c Tue, 15 May 2001 15:58:44 -0500 dunemush (pennmush/b/35_speech.c 1.21.1.2.1.3.1.5.1.1.1.7.1.3 660)
***************
*** 69,75 ****
return 1;
if ((player != target) &&
(IsPlayer(target) &&
! (Haven(target) || !eval_lock(player, target, Page_Lock)))) return 0;
else
return 1;
}
--- 69,76 ----
return 1;
if ((player != target) &&
(IsPlayer(target) &&
! (Haven(target) || !eval_lock(player, target, Page_Lock))))
! return 0;
else
return 1;
}
***************
*** 888,896 ****
if (Dark(target))
page_return(player, target, "Away", "AWAY",
T("That player is not connected."));
! } else if (!eval_lock(player, target, Page_Lock)) {
! page_return(player, target, "Haven", "HAVEN",
! T("That player is not accepting your pages."));
safe_chr(' ', tbuf, &tp);
safe_str(current, tbuf, &tp);
bcount++;
--- 889,897 ----
if (Dark(target))
page_return(player, target, "Away", "AWAY",
T("That player is not connected."));
! else
! page_return(player, target, "Haven", "HAVEN",
! T("That player is not accepting your pages."));
safe_chr(' ', tbuf, &tp);
safe_str(current, tbuf, &tp);
bcount++;
***************
*** 1073,1082 ****
else
safe_format(dest, &bp, "[%s:] ", spname(speaker));
*bp = '\0';
! ret = strdup(dest);
! #ifdef MEM_CHECK
! add_check("string");
! #endif
return ret;
}
--- 1074,1080 ----
else
safe_format(dest, &bp, "[%s:] ", spname(speaker));
*bp = '\0';
! ret = mush_strdup(dest, "string");
return ret;
}
*** 1_7_4.82/src/set.c Sat, 07 Apr 2001 09:19:53 -0500 dunemush (pennmush/b/38_set.c 1.26 660)
--- 1_7_4.93(w)/src/set.c Sun, 13 May 2001 08:36:12 -0500 dunemush (pennmush/b/38_set.c 1.26.1.1 660)
***************
*** 694,707 ****
safe_str(r, tbuf1, &tbufp);
if (safe_format(tbuf_ansi, &tbufap, "%s%s%s%s", s, ANSI_HILITE, r,
! ANSI_NORMAL)) ansi_long_flag = 1;
} else if (!strcmp(val, "^")) {
/* prepend */
safe_str(r, tbuf1, &tbufp);
safe_str(s, tbuf1, &tbufp);
if (safe_format(tbuf_ansi, &tbufap, "%s%s%s%s", ANSI_HILITE, r, ANSI_NORMAL,
! s)) ansi_long_flag = 1;
} else {
/* find and replace */
char *p, *start = s;
--- 694,709 ----
safe_str(r, tbuf1, &tbufp);
if (safe_format(tbuf_ansi, &tbufap, "%s%s%s%s", s, ANSI_HILITE, r,
! ANSI_NORMAL))
! ansi_long_flag = 1;
} else if (!strcmp(val, "^")) {
/* prepend */
safe_str(r, tbuf1, &tbufp);
safe_str(s, tbuf1, &tbufp);
if (safe_format(tbuf_ansi, &tbufap, "%s%s%s%s", ANSI_HILITE, r, ANSI_NORMAL,
! s))
! ansi_long_flag = 1;
} else {
/* find and replace */
char *p, *start = s;
***************
*** 734,740 ****
}
if (!ansi_long_flag) {
if (safe_format(tbuf_ansi, &tbufap, "%s%s%s", ANSI_HILITE, r,
! ANSI_NORMAL)) ansi_long_flag = 1;
}
}
/* No more val's in the string */
--- 736,743 ----
}
if (!ansi_long_flag) {
if (safe_format(tbuf_ansi, &tbufap, "%s%s%s", ANSI_HILITE, r,
! ANSI_NORMAL))
! ansi_long_flag = 1;
}
}
/* No more val's in the string */
***************
*** 853,860 ****
/* if we pass the use key, do it */
! if (
! (thing =
noisy_match_result(player, what, TYPE_THING,
MAT_NEAR_THINGS)) != NOTHING) {
if (!eval_lock(player, thing, Use_Lock)) {
--- 856,862 ----
/* if we pass the use key, do it */
! if ((thing =
noisy_match_result(player, what, TYPE_THING,
MAT_NEAR_THINGS)) != NOTHING) {
if (!eval_lock(player, thing, Use_Lock)) {
*** 1_7_4.82/src/services.c Fri, 17 Nov 2000 09:24:35 -0600 dunemush (pennmush/b/39_services.c 1.10 660)
--- 1_7_4.93(w)/src/services.c Sun, 13 May 2001 08:36:12 -0500 dunemush (pennmush/b/39_services.c 1.11 660)
***************
*** 612,625 ****
Now create the service definition.
*/
! service =
! CreateService(SCmanager, THIS_SERVICE, THIS_SERVICE_DISPLAY,
! SERVICE_ALL_ACCESS, SERVICE_WIN32_OWN_PROCESS,
! SERVICE_AUTO_START, SERVICE_ERROR_NORMAL, fullfilename, NULL, /* no load ordering group */
! NULL, /* no tag identifier */
! NULL, /* no dependencies */
! NULL, /* LocalSystem account */
! NULL); /* no password */
if (!service)
return service_error(GetLastError(), T("Unable to create service"));
--- 612,622 ----
Now create the service definition.
*/
! service = CreateService(SCmanager, THIS_SERVICE, THIS_SERVICE_DISPLAY, SERVICE_ALL_ACCESS, SERVICE_WIN32_OWN_PROCESS, SERVICE_AUTO_START, SERVICE_ERROR_NORMAL, fullfilename, NULL, /* no load ordering group */
! NULL, /* no tag identifier */
! NULL, /* no dependencies */
! NULL, /* LocalSystem account */
! NULL); /* no password */
if (!service)
return service_error(GetLastError(), T("Unable to create service"));
*** 1_7_4.82/src/rob.c Tue, 20 Mar 2001 12:21:04 -0600 dunemush (pennmush/b/42_rob.c 1.18.1.1 660)
--- 1_7_4.93(w)/src/rob.c Sun, 13 May 2001 08:36:12 -0500 dunemush (pennmush/b/42_rob.c 1.18.1.2 660)
***************
*** 22,28 ****
void do_kill _((dbref player, const char *what, int cost, int slay));
! void do_give _((dbref player, char *recipient, char *amnt));
void
do_kill(player, what, cost, slay)
--- 22,28 ----
void do_kill _((dbref player, const char *what, int cost, int slay));
! void do_give _((dbref player, char *recipient, char *amnt, int silent));
void
do_kill(player, what, cost, slay)
***************
*** 122,131 ****
}
void
! do_give(player, recipient, amnt)
dbref player;
char *recipient;
char *amnt;
{
dbref who;
int amount;
--- 122,132 ----
}
void
! do_give(player, recipient, amnt, silent)
dbref player;
char *recipient;
char *amnt;
+ int silent;
{
dbref who;
int amount;
***************
*** 264,270 ****
((abs(amount) == 1) ? MONEY : MONIES),
Name(who)));
}
! if (IsPlayer(who)) {
if (amount > 0) {
notify(who, tprintf(T("%s gives you %d %s."), Name(player),
amount, ((amount == 1) ? MONEY : MONIES)));
--- 265,271 ----
((abs(amount) == 1) ? MONEY : MONIES),
Name(who)));
}
! if (IsPlayer(who) && !silent) {
if (amount > 0) {
notify(who, tprintf(T("%s gives you %d %s."), Name(player),
amount, ((amount == 1) ? MONEY : MONIES)));
*** 1_7_4.82/src/predicat.c Mon, 26 Mar 2001 15:33:20 -0600 dunemush (pennmush/b/44_predicat.c 1.1.1.34.1.1.1.3 660)
--- 1_7_4.93(w)/src/predicat.c Sun, 13 May 2001 08:36:12 -0500 dunemush (pennmush/b/44_predicat.c 1.1.1.34.1.1.1.3.1.1 660)
***************
*** 346,352 ****
* 'look' 3) unconnected (sleeping) players aren't listed in a 'look'
*/
if (player == thing || IsExit(thing) ||
! (IsPlayer(thing) && !Connected(thing))) return 0;
/* if the room is lit, you can see any non-dark objects */
else if (can_see_loc)
--- 346,353 ----
* 'look' 3) unconnected (sleeping) players aren't listed in a 'look'
*/
if (player == thing || IsExit(thing) ||
! (IsPlayer(thing) && !Connected(thing)))
! return 0;
/* if the room is lit, you can see any non-dark objects */
else if (can_see_loc)
***************
*** 389,398 ****
if ((Zone(what) != NOTHING) &&
(!IsPlayer(what)) &&
! !Inheritable(what) && (eval_lock(who, Zone(what), Zone_Lock))) return 1;
if (ZMaster(Owner(what)) && !IsPlayer(what) &&
! (eval_lock(who, Owner(what), Zone_Lock))) return 1;
return 0;
}
--- 390,401 ----
if ((Zone(what) != NOTHING) &&
(!IsPlayer(what)) &&
! !Inheritable(what) && (eval_lock(who, Zone(what), Zone_Lock)))
! return 1;
if (ZMaster(Owner(what)) && !IsPlayer(what) &&
! (eval_lock(who, Owner(what), Zone_Lock)))
! return 1;
return 0;
}
***************
*** 632,638 ****
const char *scan, *good;
if (!ok_name(name) || forbidden_name(name) ||
! strlen(name) >= PLAYER_NAME_LIMIT) return 0;
good = PLAYER_NAME_SPACES ? " `$_-.,'" : "`$_-.,'";
--- 635,642 ----
const char *scan, *good;
if (!ok_name(name) || forbidden_name(name) ||
! strlen(name) >= PLAYER_NAME_LIMIT)
! return 0;
good = PLAYER_NAME_SPACES ? " `$_-.,'" : "`$_-.,'";
***************
*** 709,715 ****
/* now try a wild card match of buff with stuff in coms */
for (a = 1;
! !(first && any) && (a < (MAX_ARG - 1)) && argv[a] && argv[a + 1]; a += 2) {
/* eval expression */
ap = argv[a];
bp = buff;
--- 713,720 ----
/* now try a wild card match of buff with stuff in coms */
for (a = 1;
! !(first && any) && (a < (MAX_ARG - 1)) && argv[a] && argv[a + 1];
! a += 2) {
/* eval expression */
ap = argv[a];
bp = buff;
***************
*** 1081,1087 ****
/* now we've got the object. match for it. */
if ((thing = noisy_match_result(player, obj, NOTYPE, MAT_EVERYTHING)) ==
! NOTHING) return;
if (!Can_Examine(player, thing)) {
notify(player, T("Permission denied."));
return;
--- 1086,1093 ----
/* now we've got the object. match for it. */
if ((thing = noisy_match_result(player, obj, NOTYPE, MAT_EVERYTHING)) ==
! NOTHING)
! return;
if (!Can_Examine(player, thing)) {
notify(player, T("Permission denied."));
return;
*** 1_7_4.82/src/player.c Thu, 05 Apr 2001 11:06:39 -0500 dunemush (pennmush/b/47_player.c 1.15.1.1.1.1 660)
--- 1_7_4.93(w)/src/player.c Sun, 13 May 2001 08:36:12 -0500 dunemush (pennmush/b/47_player.c 1.15.1.1.1.1.1.1 660)
***************
*** 396,402 ****
#endif
#endif
#ifdef USE_MAILER
! (void) atr_add(player, "MAILCURF", "0", GOD, AF_LOCKED | AF_NOPROG | AF_WIZARD);
add_folder_name(player, 0, "inbox");
#endif
/* link him to PLAYER_START */
--- 396,403 ----
#endif
#endif
#ifdef USE_MAILER
! (void) atr_add(player, "MAILCURF", "0", GOD,
! AF_LOCKED | AF_NOPROG | AF_WIZARD);
add_folder_name(player, 0, "inbox");
#endif
/* link him to PLAYER_START */
*** 1_7_4.82/src/move.c Sat, 07 Apr 2001 13:33:48 -0500 dunemush (pennmush/b/51_move.c 1.1.1.18.1.5.1.13.1.3 660)
--- 1_7_4.93(w)/src/move.c Sun, 13 May 2001 08:36:09 -0500 dunemush (pennmush/b/51_move.c 1.1.1.18.1.5.1.13.1.3.1.1 660)
***************
*** 461,467 ****
dbref loc;
if ((thing = noisy_match_result(player, what, TYPE_EXIT, MAT_EXIT)) ==
! NOTHING) return;
loc = Home(thing);
if (!controls(player, loc)) {
--- 461,468 ----
dbref loc;
if ((thing = noisy_match_result(player, what, TYPE_EXIT, MAT_EXIT)) ==
! NOTHING)
! return;
loc = Home(thing);
if (!controls(player, loc)) {
***************
*** 744,750 ****
if (can_move(player, command))
do_move(player, command, 0);
else if ((Zone(Location(player)) != NOTHING) &&
! remote_exit(player, command)) do_move(player, command, 2);
else if ((Location(player) != MASTER_ROOM) && global_exit(player, command))
do_move(player, command, 1);
else
--- 745,752 ----
if (can_move(player, command))
do_move(player, command, 0);
else if ((Zone(Location(player)) != NOTHING) &&
! remote_exit(player, command))
! do_move(player, command, 2);
else if ((Location(player) != MASTER_ROOM) && global_exit(player, command))
do_move(player, command, 1);
else
***************
*** 978,984 ****
/* Let's take it apart and put it back together w/o follower */
strcpy(flwr, unparse_dbref(follower));
strcpy(tbuf1, uncompress(AL_STR(a)));
! (void) atr_add(leader, "FOLLOWERS", remove_word(tbuf1, flwr, ' '), GOD, NOTHING);
}
/* Delete someone from a player's FOLLOWING attribute */
--- 980,987 ----
/* Let's take it apart and put it back together w/o follower */
strcpy(flwr, unparse_dbref(follower));
strcpy(tbuf1, uncompress(AL_STR(a)));
! (void) atr_add(leader, "FOLLOWERS", remove_word(tbuf1, flwr, ' '), GOD,
! NOTHING);
}
/* Delete someone from a player's FOLLOWING attribute */
***************
*** 997,1003 ****
/* Let's take it apart and put it back together w/o leader */
strcpy(ldr, unparse_dbref(leader));
strcpy(tbuf1, uncompress(AL_STR(a)));
! (void) atr_add(follower, "FOLLOWING", remove_word(tbuf1, ldr, ' '), GOD, NOTHING);
}
static void
--- 1000,1007 ----
/* Let's take it apart and put it back together w/o leader */
strcpy(ldr, unparse_dbref(leader));
strcpy(tbuf1, uncompress(AL_STR(a)));
! (void) atr_add(follower, "FOLLOWING", remove_word(tbuf1, ldr, ' '), GOD,
! NOTHING);
}
static void
*** 1_7_4.82/src/malias.c Sat, 07 Apr 2001 10:14:58 -0500 dunemush (pennmush/c/3_malias.c 1.29 660)
--- 1_7_4.93(w)/src/malias.c Tue, 15 May 2001 15:58:44 -0500 dunemush (pennmush/c/3_malias.c 1.30 660)
***************
*** 57,64 ****
#include "mymalloc.h"
#include "flags.h"
#include "pueblo.h"
- #include "confmagic.h"
#include "log.h"
#ifdef MAIL_ALIASES
--- 57,68 ----
#include "mymalloc.h"
#include "flags.h"
#include "pueblo.h"
#include "log.h"
+ #ifdef MEM_CHECK
+ #include "memcheck.h"
+ #endif
+ #include "confmagic.h"
+
#ifdef MAIL_ALIASES
***************
*** 154,167 ****
ma_size = MA_INC;
malias =
(struct mail_alias *) mush_malloc(sizeof(struct mail_alias) *
! ma_size, "malias");
} else if (ma_top >= ma_size) {
ma_size += MA_INC;
m =
(struct mail_alias *) mush_malloc(sizeof(struct mail_alias) *
! (ma_size), "malias");
memcpy(m, malias, sizeof(struct mail_alias) * ma_top);
! mush_free((Malloc_t) malias, "malias");
malias = m;
}
i = 0;
--- 158,171 ----
ma_size = MA_INC;
malias =
(struct mail_alias *) mush_malloc(sizeof(struct mail_alias) *
! ma_size, "malias_list");
} else if (ma_top >= ma_size) {
ma_size += MA_INC;
m =
(struct mail_alias *) mush_malloc(sizeof(struct mail_alias) *
! (ma_size), "malias_list");
memcpy(m, malias, sizeof(struct mail_alias) * ma_top);
! mush_free((Malloc_t) malias, "malias_list");
malias = m;
}
i = 0;
***************
*** 225,238 ****
return;
}
m = &malias[ma_top];
! m->members = (dbref *) mush_malloc(sizeof(dbref) * i, "malias");
memcpy(m->members, alist, sizeof(dbref) * i);
na = alias + 1;
m->size = i;
m->owner = player;
! m->name = u_strdup(na);
m->desc = u_strdup(compress(na));
m->nflags = ALIAS_OWNER | ALIAS_MEMBERS;
m->mflags = ALIAS_OWNER;
ma_top++;
--- 229,245 ----
return;
}
m = &malias[ma_top];
! m->members = (dbref *) mush_malloc(sizeof(dbref) * i, "malias_members");
memcpy(m->members, alist, sizeof(dbref) * i);
na = alias + 1;
m->size = i;
m->owner = player;
! m->name = mush_strdup(na, "malias_name");
m->desc = u_strdup(compress(na));
+ #ifdef MEM_CHECK
+ add_check("malias_desc");
+ #endif
m->nflags = ALIAS_OWNER | ALIAS_MEMBERS;
m->mflags = ALIAS_OWNER;
ma_top++;
***************
*** 321,327 ****
notify(player, tprintf(T("MAIL: Alias %s not found."), alias));
return;
} else if (Wizard(player) || (player == m->owner)) {
! free(m->desc);
m->desc = u_strdup(compress(desc));
notify(player, T("MAIL: Description changed."));
} else
--- 328,335 ----
notify(player, tprintf(T("MAIL: Alias %s not found."), alias));
return;
} else if (Wizard(player) || (player == m->owner)) {
! if (m->desc)
! free(m->desc); /* No need to update MEM_CHECK records here */
m->desc = u_strdup(compress(desc));
notify(player, T("MAIL: Description changed."));
} else
***************
*** 385,392 ****
notify(player, T("MAIL: Permission denied."));
return;
}
! free(m->name);
! m->name = u_strdup(newname + 1);
notify(player, T("MAIL: Mail Alias renamed."));
}
--- 393,401 ----
notify(player, T("MAIL: Permission denied."));
return;
}
!
! free(m->name); /* No need to update MEM_CHECK records here. */
! m->name = strdup(newname + 1);
notify(player, T("MAIL: Mail Alias renamed."));
}
***************
*** 409,415 ****
if (Wizard(player) || (m->owner == player)) {
notify(player, T("MAIL: Alias Destroyed."));
if (m->members)
! mush_free((Malloc_t) m->members, "malias");
*m = malias[--ma_top];
} else {
notify(player, T("MAIL: Permission denied!"));
--- 418,428 ----
if (Wizard(player) || (m->owner == player)) {
notify(player, T("MAIL: Alias Destroyed."));
if (m->members)
! mush_free((Malloc_t) m->members, "malias_members");
! if (m->name)
! mush_free(m->name, "malias_name");
! if (m->desc)
! mush_free(m->desc, "malias_desc");
*m = malias[--ma_top];
} else {
notify(player, T("MAIL: Permission denied!"));
***************
*** 506,513 ****
return;
}
if (m->members)
! mush_free((Malloc_t) m->members, "malias");
! m->members = (dbref *) mush_malloc(sizeof(dbref) * i, "malias");
memcpy(m->members, alist, sizeof(dbref) * i);
m->size = i;
notify(player, T("MAIL: Alias list set."));
--- 519,526 ----
return;
}
if (m->members)
! mush_free((Malloc_t) m->members, "malias_members");
! m->members = (dbref *) mush_malloc(sizeof(dbref) * i, "malias_members");
memcpy(m->members, alist, sizeof(dbref) * i);
m->size = i;
notify(player, T("MAIL: Alias list set."));
***************
*** 571,583 ****
for (i = 0; i < ma_top; i++) {
m = &malias[i];
if (m->name)
! free(m->name);
if (m->desc)
! free(m->desc);
if (m->members)
! mush_free((Malloc_t) m->members, "malias");
}
! mush_free((Malloc_t) malias, "malias");
}
ma_size = ma_top = 0;
notify(player, T("MAIL: All mail aliases destroyed!"));
--- 584,596 ----
for (i = 0; i < ma_top; i++) {
m = &malias[i];
if (m->name)
! mush_free(m->name, "malias_name");
if (m->desc)
! mush_free(m->desc, "malias_desc");
if (m->members)
! mush_free((Malloc_t) m->members, "malias_members");
}
! mush_free((Malloc_t) malias, "malias_list");
}
ma_size = ma_top = 0;
notify(player, T("MAIL: All mail aliases destroyed!"));
***************
*** 772,782 ****
notify(player, T("MAIL: No valid recipients for alias-list!"));
return;
}
! members = (dbref *) mush_malloc(sizeof(dbref) * (i + m->size), "malias");
memcpy(members, m->members, sizeof(dbref) * m->size);
memcpy(&members[m->size], alist, sizeof(dbref) * i);
! mush_free((Malloc_t) m->members, "malias");
m->members = members;
m->size += i;
--- 785,795 ----
notify(player, T("MAIL: No valid recipients for alias-list!"));
return;
}
! members = (dbref *) mush_malloc(sizeof(dbref) * (i + m->size), "malias_members");
memcpy(members, m->members, sizeof(dbref) * m->size);
memcpy(&members[m->size], alist, sizeof(dbref) * i);
! mush_free((Malloc_t) m->members, "malias_members");
m->members = members;
m->size += i;
***************
*** 1033,1039 ****
if (ma_top > 0)
malias =
(struct mail_alias *) mush_malloc(sizeof(struct mail_alias) *
! ma_size, "malias");
else
malias = NULL;
--- 1046,1052 ----
if (ma_top > 0)
malias =
(struct mail_alias *) mush_malloc(sizeof(struct mail_alias) *
! ma_size, "malias_list");
else
malias = NULL;
***************
*** 1041,1055 ****
m = &malias[i];
m->owner = getref(fp);
! m->name = u_strdup(getstring_noalloc(fp));
m->desc = u_strdup(compress(getstring_noalloc(fp)));
m->nflags = getref(fp);
m->mflags = getref(fp);
m->size = getref(fp);
if (m->size > 0) {
! m->members = (dbref *) mush_malloc(m->size * sizeof(dbref), "malias");
for (j = 0; j < m->size; j++) {
m->members[j] = getref(fp);
}
--- 1054,1071 ----
m = &malias[i];
m->owner = getref(fp);
! m->name = mush_strdup(getstring_noalloc(fp), "malias_name");
m->desc = u_strdup(compress(getstring_noalloc(fp)));
+ #ifdef MEM_CHECK
+ add_check("malias_desc");
+ #endif
m->nflags = getref(fp);
m->mflags = getref(fp);
m->size = getref(fp);
if (m->size > 0) {
! m->members = (dbref *) mush_malloc(m->size * sizeof(dbref), "malias_members");
for (j = 0; j < m->size; j++) {
m->members[j] = getref(fp);
}
*** 1_7_4.82/src/look.c Mon, 11 Dec 2000 20:10:38 -0600 dunemush (pennmush/c/4_look.c 1.21 660)
--- 1_7_4.93(w)/src/look.c Sun, 13 May 2001 08:36:09 -0500 dunemush (pennmush/c/4_look.c 1.21.1.1 660)
***************
*** 649,658 ****
}
real_name = (char *) name;
/* look it up */
! if (
! (thing =
noisy_match_result(player, real_name, NOTYPE,
! MAT_EVERYTHING)) == NOTHING) return;
}
/* can't examine destructed objects */
if (IsGarbage(thing)) {
--- 649,658 ----
}
real_name = (char *) name;
/* look it up */
! if ((thing =
noisy_match_result(player, real_name, NOTYPE,
! MAT_EVERYTHING)) == NOTHING)
! return;
}
/* can't examine destructed objects */
if (IsGarbage(thing)) {
***************
*** 1302,1308 ****
/* find object */
if ((thing = noisy_match_result(player, name, NOTYPE, MAT_EVERYTHING)) ==
! NOTHING) return;
if (IsGarbage(thing)) {
notify(player, T("Garbage is garbage."));
--- 1302,1309 ----
/* find object */
if ((thing = noisy_match_result(player, name, NOTYPE, MAT_EVERYTHING)) ==
! NOTHING)
! return;
if (IsGarbage(thing)) {
notify(player, T("Garbage is garbage."));
*** 1_7_4.82/src/gmalloc.c Thu, 20 Jul 2000 17:42:54 -0500 dunemush (pennmush/c/9_gmalloc.c 1.19 660)
--- 1_7_4.93(w)/src/gmalloc.c Sun, 13 May 2001 08:36:08 -0500 dunemush (pennmush/c/9_gmalloc.c 1.20 660)
***************
*** 289,295 ****
#ifdef __cplusplus
}
#endif
! #endif /* malloc.h */ /* Allocate memory on a page boundary.
Copyright (C) 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
This library is free software; you can redistribute it and/or
--- 289,295 ----
#ifdef __cplusplus
}
#endif
! #endif /* malloc.h */ /* Allocate memory on a page boundary.
Copyright (C) 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
This library is free software; you can redistribute it and/or
*** 1_7_4.82/src/game.c Wed, 04 Apr 2001 12:03:23 -0500 dunemush (pennmush/c/10_game.c 1.50.1.8.1.1.1.1.2.1 660)
--- 1_7_4.93(w)/src/game.c Sun, 13 May 2001 08:36:08 -0500 dunemush (pennmush/c/10_game.c 1.50.1.8.1.1.1.1.2.1.1.1 660)
***************
*** 131,141 ****
void rusage_stats _((void));
#endif
! void do_list_memstats _((dbref player));
! void st_stats_header _((dbref player));
! void st_stats _((dbref player, StrTree *root, const char *name));
!
! extern void do_reboot _((dbref player, int flag));
dbref orator = NOTHING;
--- 131,143 ----
void rusage_stats _((void));
#endif
! void do_list_memstats(dbref player);
! void st_stats_header(dbref player);
! void st_stats(dbref player, StrTree *root, const char *name);
!
! void do_reboot(dbref player, int flag);
! void do_timestring(char *buff, char **bp, const char *format,
! unsigned long secs);
dbref orator = NOTHING;
***************
*** 547,555 ****
#ifndef WIN32
close(reserved); /* get that file descriptor back */
#endif
- #ifdef CONCENTRATOR
- signal(SIGCLD, SIG_DFL);
- #endif /* CONCENTRATOR */
dump_database_internal();
if (!nofork) {
_exit(0); /* !!! */
--- 549,554 ----
***************
*** 557,565 ****
#ifndef WIN32
reserved = open("/dev/null", O_RDWR);
#endif
- #ifdef CONCENTRATOR
- signal(SIGCLD, (void *) reaper);
- #endif /* CONCENTRATOR */
if (DUMP_NOFORK_COMPLETE && *DUMP_NOFORK_COMPLETE)
flag_broadcast(0, 0, DUMP_NOFORK_COMPLETE);
}
--- 556,561 ----
***************
*** 1498,1511 ****
}
void
! do_uptime(player, mortal)
! dbref player;
! int mortal;
{
char tbuf1[BUFFER_LEN];
char *p;
! #ifdef HAS_UPTIME
FILE *fp;
char c;
int i;
--- 1494,1505 ----
}
void
! do_uptime(dbref player, int mortal)
{
char tbuf1[BUFFER_LEN];
char *p;
! #if defined(HAS_UPTIME) && !defined(linux)
FILE *fp;
char c;
int i;
***************
*** 1516,1522 ****
struct rusage usage;
#endif /* HAS_GETRUSAGE */
#ifdef linux
! FILE *status;
char line[128]; /* Overkill */
char *nl;
#endif
--- 1510,1516 ----
struct rusage usage;
#endif /* HAS_GETRUSAGE */
#ifdef linux
! FILE *fp;
char line[128]; /* Overkill */
char *nl;
#endif
***************
*** 1563,1568 ****
--- 1557,1621 ----
/* Mortals, go no further! */
if (!Wizard(player) || mortal)
return;
+ #ifdef linux
+ /* Use /proc files instead of calling the external uptime program on linux */
+
+ /* Current time */
+ {
+ struct tm *t;
+ t = localtime(&mudtime);
+
+ strftime(tbuf1, sizeof tbuf1, "%I:%M%P ", t);
+ nl = tbuf1 + strlen(tbuf1);
+ }
+ /* System uptime */
+ fp = fopen("/proc/uptime", "r");
+ if (fp) {
+ time_t uptime;
+ const char *fmt;
+ if (fgets(line, sizeof line, fp)) {
+ /* First part of this line is uptime in seconds.milliseconds. We
+ only care about seconds. */
+ uptime = strtol(line, NULL, 10);
+ if (uptime > 86400)
+ fmt = "up $d days, $2h:$2M,";
+ else
+ fmt = "up $2h:$2M,";
+ do_timestring(tbuf1, &nl, fmt, uptime);
+ } else {
+ safe_str("Unknown uptime,", tbuf1, &nl);
+ }
+ fclose(fp);
+ } else {
+ safe_str("Unknown uptime,", tbuf1, &nl);
+ }
+
+ /* Now load averages */
+ fp = fopen("/proc/loadavg", "r");
+ if (fp) {
+ if (fgets(line, sizeof line, fp)) {
+ double load[3];
+ char *x, *l = line;
+
+ load[0] = strtod(l, &x);
+ l = x;
+ load[1] = strtod(l, &x);
+ l = x;
+ load[2] = strtod(l, NULL);
+ safe_format(tbuf1, &nl, " load average: %.2f, %.2f, %.2f",
+ load[0], load[1], load[2]);
+ } else {
+ safe_str("Unknown load", tbuf1, &nl);
+ }
+ fclose(fp);
+ } else {
+ safe_str("Unknown load", tbuf1, &nl);
+ }
+
+ *nl = '\0';
+ notify(player, tbuf1);
+
+ #else /* linux */
#ifdef HAS_UPTIME
fp =
#ifdef __LCC__
***************
*** 1583,1589 ****
pclose(fp);
notify(player, tbuf1);
! #endif
/* do process stats */
--- 1636,1643 ----
pclose(fp);
notify(player, tbuf1);
! #endif /* HAS_UPTIME */
! #endif /* !linux */
/* do process stats */
***************
*** 1605,1626 ****
usage.ru_majflt, usage.ru_minflt, usage.ru_nswap));
#endif
! status = fopen("/proc/self/status", "r");
! if (!status)
return;
/* First lines are name, state, pid, ppid and some other stuff. We don't care about them */
! fgets(line, sizeof line, status);
! fgets(line, sizeof line, status);
! fgets(line, sizeof line, status);
! fgets(line, sizeof line, status);
! fgets(line, sizeof line, status);
! fgets(line, sizeof line, status);
! fgets(line, sizeof line, status);
/* 7th line isn't Groups: on linux 2.0.X */
if (strncmp(line, "Groups:", 7) == 0)
! fgets(line, sizeof line, status);
/* Memory stats */
--- 1659,1680 ----
usage.ru_majflt, usage.ru_minflt, usage.ru_nswap));
#endif
! fp = fopen("/proc/self/status", "r");
! if (!fp)
return;
/* First lines are name, state, pid, ppid and some other stuff. We don't care about them */
! fgets(line, sizeof line, fp);
! fgets(line, sizeof line, fp);
! fgets(line, sizeof line, fp);
! fgets(line, sizeof line, fp);
! fgets(line, sizeof line, fp);
! fgets(line, sizeof line, fp);
! fgets(line, sizeof line, fp);
/* 7th line isn't Groups: on linux 2.0.X */
if (strncmp(line, "Groups:", 7) == 0)
! fgets(line, sizeof line, fp);
/* Memory stats */
***************
*** 1630,1697 ****
notify(player, line);
/* VmLck */
! fgets(line, sizeof line, status);
if ((nl = strchr(line, '\n')) != NULL)
*nl = '\0';
notify(player, line);
/* VmRSS */
! fgets(line, sizeof line, status);
if ((nl = strchr(line, '\n')) != NULL)
*nl = '\0';
notify(player, line);
/* VmData */
! fgets(line, sizeof line, status);
if ((nl = strchr(line, '\n')) != NULL)
*nl = '\0';
notify(player, line);
/* VmStk */
! fgets(line, sizeof line, status);
if ((nl = strchr(line, '\n')) != NULL)
*nl = '\0';
notify(player, line);
/* VmExe */
! fgets(line, sizeof line, status);
if ((nl = strchr(line, '\n')) != NULL)
*nl = '\0';
notify(player, line);
/* VmLib */
! fgets(line, sizeof line, status);
if ((nl = strchr(line, '\n')) != NULL)
*nl = '\0';
notify(player, line);
/* Signals */
/* SigPnd */
! fgets(line, sizeof line, status);
if ((nl = strchr(line, '\n')) != NULL)
*nl = '\0';
notify(player, line);
/* SigBlk */
! fgets(line, sizeof line, status);
if ((nl = strchr(line, '\n')) != NULL)
*nl = '\0';
notify(player, line);
/* SigIgn */
! fgets(line, sizeof line, status);
if ((nl = strchr(line, '\n')) != NULL)
*nl = '\0';
notify(player, line);
/* SigCgt */
! fgets(line, sizeof line, status);
if ((nl = strchr(line, '\n')) != NULL)
*nl = '\0';
notify(player, line);
! /* We don't have about capabilities */
! fclose(status);
#else /* LINUX */
#ifdef HAS_GETRUSAGE
--- 1684,1751 ----
notify(player, line);
/* VmLck */
! fgets(line, sizeof line, fp);
if ((nl = strchr(line, '\n')) != NULL)
*nl = '\0';
notify(player, line);
/* VmRSS */
! fgets(line, sizeof line, fp);
if ((nl = strchr(line, '\n')) != NULL)
*nl = '\0';
notify(player, line);
/* VmData */
! fgets(line, sizeof line, fp);
if ((nl = strchr(line, '\n')) != NULL)
*nl = '\0';
notify(player, line);
/* VmStk */
! fgets(line, sizeof line, fp);
if ((nl = strchr(line, '\n')) != NULL)
*nl = '\0';
notify(player, line);
/* VmExe */
! fgets(line, sizeof line, fp);
if ((nl = strchr(line, '\n')) != NULL)
*nl = '\0';
notify(player, line);
/* VmLib */
! fgets(line, sizeof line, fp);
if ((nl = strchr(line, '\n')) != NULL)
*nl = '\0';
notify(player, line);
/* Signals */
/* SigPnd */
! fgets(line, sizeof line, fp);
if ((nl = strchr(line, '\n')) != NULL)
*nl = '\0';
notify(player, line);
/* SigBlk */
! fgets(line, sizeof line, fp);
if ((nl = strchr(line, '\n')) != NULL)
*nl = '\0';
notify(player, line);
/* SigIgn */
! fgets(line, sizeof line, fp);
if ((nl = strchr(line, '\n')) != NULL)
*nl = '\0';
notify(player, line);
/* SigCgt */
! fgets(line, sizeof line, fp);
if ((nl = strchr(line, '\n')) != NULL)
*nl = '\0';
notify(player, line);
! /* We don't care about capabilities */
! fclose(fp);
#else /* LINUX */
#ifdef HAS_GETRUSAGE
*** 1_7_4.82/src/funtime.c Sun, 25 Feb 2001 13:37:15 -0600 dunemush (pennmush/c/12_funtime.c 1.11.1.2 660)
--- 1_7_4.93(w)/src/funtime.c Sun, 13 May 2001 08:36:08 -0500 dunemush (pennmush/c/12_funtime.c 1.11.1.3 660)
***************
*** 19,27 ****
#include "log.h"
#include "confmagic.h"
! int do_convtime _((char *str, struct tm * ttm));
! static void do_timestring
! _((char *buff, char **bp, const char *format, unsigned long secs));
FUNCTION(fun_timefmt)
{
--- 19,27 ----
#include "log.h"
#include "confmagic.h"
! int do_convtime(char *str, struct tm *ttm);
! void do_timestring(char *buff, char **bp, const char *format,
! unsigned long secs);
FUNCTION(fun_timefmt)
{
***************
*** 353,363 ****
$$ - Literal $.
*/
void
! do_timestring(buff, bp, format, secs)
! char *buff;
! char **bp;
! const char *format;
! unsigned long secs;
{
int days, hours, mins;
int pad = 0;
--- 353,359 ----
$$ - Literal $.
*/
void
! do_timestring(char *buff, char **bp, const char *format, unsigned long secs)
{
int days, hours, mins;
int pad = 0;
*** 1_7_4.82/src/funstr.c Mon, 26 Mar 2001 15:33:20 -0600 dunemush (pennmush/c/13_funstr.c 1.28.1.1.1.2.1.2 660)
--- 1_7_4.93(w)/src/funstr.c Sun, 13 May 2001 08:36:08 -0500 dunemush (pennmush/c/13_funstr.c 1.28.1.1.1.2.1.4 660)
***************
*** 199,210 ****
/* ARGSUSED */
FUNCTION(fun_strlen)
{
! safe_integer(strlen(args[0]), buff, bp);
}
/* ARGSUSED */
FUNCTION(fun_mid)
{
int pos, len;
if (!is_integer(args[1]) || !is_integer(args[2])) {
--- 199,211 ----
/* ARGSUSED */
FUNCTION(fun_strlen)
{
! safe_integer(ansi_strlen(args[0]), buff, bp);
}
/* ARGSUSED */
FUNCTION(fun_mid)
{
+ char ansi_buff[BUFFER_LEN], *ansi_bp = ansi_buff;
int pos, len;
if (!is_integer(args[1]) || !is_integer(args[2])) {
***************
*** 212,218 ****
return;
}
pos = parse_integer(args[1]);
! len = parse_integer(args[2]);
/* There was an error for pos + len > BUFFER_LEN, but I removed it.
* After all, why should the behavior for past-end-of-string
--- 213,220 ----
return;
}
pos = parse_integer(args[1]);
! len =
! ansi_align(args[0], ansi_strnlen(args[0], pos + parse_integer(args[2])));
/* There was an error for pos + len > BUFFER_LEN, but I removed it.
* After all, why should the behavior for past-end-of-string
***************
*** 222,237 ****
safe_str(T(e_range), buff, bp);
return;
}
! if (((pos + len) < BUFFER_LEN) && ((pos + len) >= 0))
! args[0][pos + len] = '\0';
! if ((Size_t) pos < strlen(args[0]))
safe_str(args[0] + pos, buff, bp);
}
/* ARGSUSED */
FUNCTION(fun_left)
{
int len;
if (!is_integer(args[1])) {
--- 224,255 ----
safe_str(T(e_range), buff, bp);
return;
}
!
! /* Write the initial ANSI/Pueblo bits */
! ansi_save(args[0], pos, ansi_buff, &ansi_bp);
! safe_str(ansi_buff, buff, bp);
! pos = ansi_align(args[0], ansi_strnlen(args[0], pos));
! ansi_bp = ansi_buff;
!
! if ((((Size_t) len) < strlen(args[0])) && ((len) >= 0)) {
! /* Save the ending ANSI/Pueblo bits */
! ansi_save(args[0] + len, -1, ansi_buff, &ansi_bp);
! }
! if (((len) < BUFFER_LEN) && ((len) >= 0)) {
! args[0][len] = '\0';
! }
! if ((Size_t) pos < strlen(args[0])) {
safe_str(args[0] + pos, buff, bp);
+ }
+ if (ansi_bp != ansi_buff)
+ safe_str(ansi_buff, buff, bp);
}
/* ARGSUSED */
FUNCTION(fun_left)
{
+ char ansi_buff[BUFFER_LEN], *ansi_bp = ansi_buff;
int len;
if (!is_integer(args[1])) {
***************
*** 244,257 ****
--- 262,281 ----
safe_str(T(e_range), buff, bp);
return;
}
+
+ len = ansi_strnlen(args[0], len);
+ ansi_save(args[0] + len - 1, -1, ansi_buff, &ansi_bp);
+ len = ansi_align(args[0], len);
if (len < BUFFER_LEN)
args[0][len] = '\0';
safe_str(args[0], buff, bp);
+ safe_str(ansi_buff, buff, bp);
}
/* ARGSUSED */
FUNCTION(fun_right)
{
+ char ansi_buff[BUFFER_LEN], *ansi_bp = ansi_buff;
int len;
if (!is_integer(args[1])) {
***************
*** 264,274 ****
safe_str(T(e_range), buff, bp);
return;
}
! len = strlen(args[0]) - len;
if (len <= 0) {
safe_str(args[0], buff, bp);
return;
}
safe_str(args[0] + len, buff, bp);
}
--- 288,302 ----
safe_str(T(e_range), buff, bp);
return;
}
! len = ansi_strlen(args[0]) - len;
if (len <= 0) {
safe_str(args[0], buff, bp);
return;
}
+ ansi_save(args[0], len, ansi_buff, &ansi_bp);
+ len = ansi_strnlen(args[0], len);
+ len = ansi_align(args[0], len);
+ safe_str(ansi_buff, buff, bp);
safe_str(args[0] + len, buff, bp);
}
***************
*** 950,961 ****
safe_tag_wrap(args[0], args[1], args[2], buff, bp);
}
/* ARGSUSED */
FUNCTION(fun_ansi)
{
! static char tbuff[BUFFER_LEN], slots[7];
! static char sbuff[BUFFER_LEN], *sbp = sbuff;
! char *old_sbp = sbp;
char const *arg0, *arg1;
char *tbp;
int j;
--- 978,1075 ----
safe_tag_wrap(args[0], args[1], args[2], buff, bp);
}
+ #define COL_FLASH (1)
+ #define COL_HILITE (2)
+ #define COL_INVERT (4)
+ #define COL_UNDERSCORE (8)
+
+ #define VAL_FLASH (5)
+ #define VAL_HILITE (1)
+ #define VAL_INVERT (7)
+ #define VAL_UNDERSCORE (4)
+
+ #define COL_BLACK (30)
+ #define COL_RED (31)
+ #define COL_GREEN (32)
+ #define COL_YELLOW (33)
+ #define COL_BLUE (34)
+ #define COL_MAGENTA (35)
+ #define COL_CYAN (36)
+ #define COL_WHITE (37)
+
+ typedef struct {
+ char flags;
+ char fore;
+ char back;
+ } ansi_data;
+
+ #define EDGE_UP(x,y,z) (((y) & (z)) && !((x) & (z)))
+
+ static void
+ dump_ansi_codes(ad, buff, bp)
+ ansi_data *ad;
+ char *buff;
+ char **bp;
+ {
+ ansi_data old_ad;
+ int f = 0;
+
+ if ((old_ad.fore && !ad->fore)
+ || (old_ad.back && !ad->back)
+ || ((old_ad.flags & ad->flags) != old_ad.flags)) {
+ safe_str(ANSI_NORMAL, buff, bp);
+ old_ad.flags = 0;
+ old_ad.fore = 0;
+ old_ad.back = 0;
+ }
+
+ safe_str(ANSI_BEGIN, buff, bp);
+
+ if (EDGE_UP(old_ad.flags, ad->flags, COL_FLASH)) {
+ if (f++)
+ safe_chr(';', buff, bp);
+ safe_integer(VAL_FLASH, buff, bp);
+ }
+
+ if (EDGE_UP(old_ad.flags, ad->flags, COL_HILITE)) {
+ if (f++)
+ safe_chr(';', buff, bp);
+ safe_integer(VAL_HILITE, buff, bp);
+ }
+
+ if (EDGE_UP(old_ad.flags, ad->flags, COL_INVERT)) {
+ if (f++)
+ safe_chr(';', buff, bp);
+ safe_integer(VAL_INVERT, buff, bp);
+ }
+
+ if (EDGE_UP(old_ad.flags, ad->flags, COL_UNDERSCORE)) {
+ if (f++)
+ safe_chr(';', buff, bp);
+ safe_integer(VAL_UNDERSCORE, buff, bp);
+ }
+
+ if (ad->fore != old_ad.fore) {
+ if (f++)
+ safe_chr(';', buff, bp);
+ safe_integer(ad->fore, buff, bp);
+ }
+
+ if (ad->back != old_ad.back) {
+ if (f++)
+ safe_chr(';', buff, bp);
+ safe_integer(ad->back + 10, buff, bp);
+ }
+
+ safe_str(ANSI_END, buff, bp);
+
+ }
+
/* ARGSUSED */
FUNCTION(fun_ansi)
{
! static char tbuff[BUFFER_LEN];
! static ansi_data stack[1024] = { {0, 0, 0} }, *sp = stack;
char const *arg0, *arg1;
char *tbp;
int j;
***************
*** 966,1093 ****
PE_DEFAULT, PT_DEFAULT, pe_info);
*tbp = '\0';
! memset(slots, '\0', 7);
for (tbp = tbuff; *tbp; tbp++) {
switch (*tbp) {
case 'n': /* normal */
! memset(slots, '\0', 6);
! slots[0] = *tbp;
break;
case 'f': /* flash */
! slots[1] = *tbp;
break;
case 'h': /* hilite */
! slots[2] = *tbp;
break;
case 'i': /* inverse */
! slots[3] = *tbp;
break;
case 'u': /* underscore */
! slots[4] = *tbp;
break;
! case 'b': /* blue fg */
! case 'c': /* cyan fg */
! case 'g': /* green fg */
! case 'm': /* magenta fg */
! case 'r': /* red fg */
! case 'w': /* white fg */
! case 'x': /* black fg */
! case 'y': /* yellow fg */
! slots[5] = *tbp;
break;
! case 'B': /* blue bg */
! case 'C': /* cyan bg */
! case 'G': /* green bg */
! case 'M': /* magenta bg */
! case 'R': /* red bg */
! case 'W': /* white bg */
! case 'X': /* black bg */
! case 'Y': /* yellow bg */
! slots[6] = *tbp;
break;
! }
! }
!
! for (j = 0; j < 7; j++) {
! switch (slots[j]) {
! case 'n': /* normal */
! safe_str(ANSI_NORMAL, sbuff, &sbp);
break;
! case 'f': /* flash */
! safe_str(ANSI_BLINK, sbuff, &sbp);
! break;
! case 'h': /* hilite */
! safe_str(ANSI_HILITE, sbuff, &sbp);
break;
! case 'i': /* inverse */
! safe_str(ANSI_INVERSE, sbuff, &sbp);
! break;
! case 'u': /* underscore */
! safe_str(ANSI_UNDERSCORE, sbuff, &sbp);
! break;
! case 'x': /* black fg */
! safe_str(ANSI_BLACK, sbuff, &sbp);
break;
! case 'r': /* red fg */
! safe_str(ANSI_RED, sbuff, &sbp);
break;
case 'g': /* green fg */
! safe_str(ANSI_GREEN, sbuff, &sbp);
! break;
! case 'y': /* yellow fg */
! safe_str(ANSI_YELLOW, sbuff, &sbp);
! break;
! case 'b': /* blue fg */
! safe_str(ANSI_BLUE, sbuff, &sbp);
break;
case 'm': /* magenta fg */
! safe_str(ANSI_MAGENTA, sbuff, &sbp);
break;
! case 'c': /* cyan fg */
! safe_str(ANSI_CYAN, sbuff, &sbp);
break;
case 'w': /* white fg */
! safe_str(ANSI_WHITE, sbuff, &sbp);
break;
! case 'X': /* black bg */
! safe_str(ANSI_BBLACK, sbuff, &sbp);
break;
! case 'R': /* red bg */
! safe_str(ANSI_BRED, sbuff, &sbp);
break;
! case 'G': /* green bg */
! safe_str(ANSI_BGREEN, sbuff, &sbp);
break;
! case 'Y': /* yellow bg */
! safe_str(ANSI_BYELLOW, sbuff, &sbp);
break;
! case 'B': /* blue bg */
! safe_str(ANSI_BBLUE, sbuff, &sbp);
break;
case 'M': /* magenta bg */
! safe_str(ANSI_BMAGENTA, sbuff, &sbp);
break;
! case 'C': /* cyan bg */
! safe_str(ANSI_BCYAN, sbuff, &sbp);
break;
case 'W': /* white bg */
! safe_str(ANSI_BWHITE, sbuff, &sbp);
break;
}
}
! *sbp = 0;
! safe_str(old_sbp, buff, bp);
arg1 = args[1];
process_expression(buff, bp, &arg1, executor, caller, enactor,
PE_DEFAULT, PT_DEFAULT, pe_info);
! safe_str(ANSI_NORMAL, buff, bp);
- sbp = old_sbp;
- *sbp = 0;
- safe_str(sbuff, buff, bp);
}
/* ARGSUSED */
--- 1080,1178 ----
PE_DEFAULT, PT_DEFAULT, pe_info);
*tbp = '\0';
! sp[1] = sp[0];
! sp++;
for (tbp = tbuff; *tbp; tbp++) {
switch (*tbp) {
case 'n': /* normal */
! sp->flags = 0;
! sp->fore = 0;
! sp->back = 0;
break;
case 'f': /* flash */
! sp->flags |= COL_FLASH;
break;
case 'h': /* hilite */
! sp->flags |= COL_HILITE;
break;
case 'i': /* inverse */
! sp->flags |= COL_INVERT;
break;
case 'u': /* underscore */
! sp->flags |= COL_UNDERSCORE;
break;
! case 'F': /* flash */
! sp->flags &= ~COL_FLASH;
break;
! case 'H': /* hilite */
! sp->flags &= ~COL_HILITE;
break;
! case 'I': /* inverse */
! sp->flags &= ~COL_INVERT;
break;
! case 'U': /* underscore */
! sp->flags &= ~COL_UNDERSCORE;
break;
! case 'b': /* blue fg */
! sp->fore = COL_BLUE;
break;
! case 'c': /* cyan fg */
! sp->fore = COL_CYAN;
break;
case 'g': /* green fg */
! sp->fore = COL_GREEN;
break;
case 'm': /* magenta fg */
! sp->fore = COL_MAGENTA;
break;
! case 'r': /* red fg */
! sp->fore = COL_RED;
break;
case 'w': /* white fg */
! sp->fore = COL_WHITE;
break;
! case 'x': /* black fg */
! sp->fore = COL_BLACK;
break;
! case 'y': /* yellow fg */
! sp->fore = COL_YELLOW;
break;
! case 'B': /* blue bg */
! sp->back = COL_BLUE;
break;
! case 'C': /* cyan bg */
! sp->back = COL_CYAN;
break;
! case 'G': /* green bg */
! sp->back = COL_GREEN;
break;
case 'M': /* magenta bg */
! sp->back = COL_MAGENTA;
break;
! case 'R': /* red bg */
! sp->back = COL_RED;
break;
case 'W': /* white bg */
! sp->back = COL_WHITE;
! break;
! case 'X': /* black bg */
! sp->back = COL_BLACK;
! break;
! case 'Y': /* yellow bg */
! sp->back = COL_YELLOW;
break;
}
}
! dump_ansi_codes(sp, buff, bp);
!
arg1 = args[1];
process_expression(buff, bp, &arg1, executor, caller, enactor,
PE_DEFAULT, PT_DEFAULT, pe_info);
! dump_ansi_codes(--sp, buff, bp);
}
/* ARGSUSED */
***************
*** 1224,1230 ****
* functions.
*/
while (i <= maxlen + 1) {
! if (str[i] == '\n')
return i;
i++;
}
--- 1309,1315 ----
* functions.
*/
while (i <= maxlen + 1) {
! if ((str[i] == '\n') || (str[i] == '\r'))
return i;
i++;
}
***************
*** 1311,1316 ****
--- 1396,1403 ----
/* normal line */
strncpy(strbuff, pstr, ansilen);
strbuff[ansilen] = '\0';
+ if (pstr[ansilen] == '\r')
+ ++ansilen;
pstr += ansilen + 1; /* move to start of next line */
}
safe_str(strbuff, buff, bp);
*** 1_7_4.82/src/fundb.c Sat, 07 Apr 2001 10:14:58 -0500 dunemush (pennmush/c/17_fundb.c 1.1.1.1.1.1.1.1.1.1.1.1.1.3.1.1.1.1.1.7.1.3.1.3.1.3.1.2.1.2.1.3.2.1.2.1 660)
--- 1_7_4.93(w)/src/fundb.c Sun, 13 May 2001 08:36:07 -0500 dunemush (pennmush/c/17_fundb.c 1.1.1.1.1.1.1.1.1.1.1.1.1.3.1.1.1.1.1.7.1.3.1.3.1.3.1.2.1.2.1.3.2.1.2.1.2.1 660)
***************
*** 1230,1236 ****
if (strchr(args[0], '/')) {
parse_attrib(executor, args[0], &thing, &attrib);
if (!GoodObject(thing) || !attrib
! || !Can_Read_Attr(executor, thing, attrib)) safe_str("#-1", buff, bp);
else
safe_dbref(attrib->creator, buff, bp);
} else {
--- 1230,1237 ----
if (strchr(args[0], '/')) {
parse_attrib(executor, args[0], &thing, &attrib);
if (!GoodObject(thing) || !attrib
! || !Can_Read_Attr(executor, thing, attrib))
! safe_str("#-1", buff, bp);
else
safe_dbref(attrib->creator, buff, bp);
} else {
***************
*** 1702,1709 ****
}
*p++ = '\0';
! if (
! (thing =
noisy_match_result(executor, args[0], NOTYPE,
MAT_EVERYTHING)) == NOTHING) {
safe_str(T(e_notvis), buff, bp);
--- 1703,1709 ----
}
*p++ = '\0';
! if ((thing =
noisy_match_result(executor, args[0], NOTYPE,
MAT_EVERYTHING)) == NOTHING) {
safe_str(T(e_notvis), buff, bp);
*** 1_7_4.82/src/function.c Sat, 17 Feb 2001 10:57:35 -0600 dunemush (pennmush/c/18_function.c 1.29.1.14.1.3 660)
--- 1_7_4.93(w)/src/function.c Tue, 15 May 2001 15:58:44 -0500 dunemush (pennmush/c/18_function.c 1.29.1.14.1.3.1.1 660)
***************
*** 860,869 ****
}
/* a completely new entry. First, insert it into general hash table */
fp = (FUN *) mush_malloc(sizeof(FUN), "func_hash.FUN");
! fp->name = (char *) strdup(name);
! #ifdef MEM_CHECK
! add_check("func_hash.name");
! #endif
fp->where.offset = userfn_count;
fp->minargs = 0;
fp->maxargs = 10;
--- 860,866 ----
}
/* a completely new entry. First, insert it into general hash table */
fp = (FUN *) mush_malloc(sizeof(FUN), "func_hash.FUN");
! fp->name = mush_strdup(name, "func_hash.name");
fp->where.offset = userfn_count;
fp->minargs = 0;
fp->maxargs = 10;
***************
*** 872,886 ****
/* now add it to the user function table */
userfn_tab[userfn_count].thing = thing;
! userfn_tab[userfn_count].name = (char *) strdup(upcasestr(argv[2]));
! #ifdef MEM_CHECK
! add_check("userfn_tab.name");
! #endif
! userfn_tab[userfn_count].fn = (char *) strdup(upcasestr(name));
! #ifdef MEM_CHECK
! add_check("userfn_tab.fn");
! #endif
!
userfn_count++;
notify(player, T("Function added."));
--- 869,876 ----
/* now add it to the user function table */
userfn_tab[userfn_count].thing = thing;
! userfn_tab[userfn_count].name = mush_strdup(upcasestr(argv[2]), "userfn_tab.name");
! userfn_tab[userfn_count].fn = mush_strdup(upcasestr(name), "usrfn_tab.fn");
userfn_count++;
notify(player, T("Function added."));
***************
*** 898,907 ****
return;
}
fp = (FUN *) mush_malloc(sizeof(FUN), "func_hash.FUN");
! fp->name = (char *) strdup(name);
! #ifdef MEM_CHECK
! add_check("func_hash.name");
! #endif
fp->where.offset = userfn_count;
fp->minargs = 0;
fp->maxargs = 10;
--- 888,894 ----
return;
}
fp = (FUN *) mush_malloc(sizeof(FUN), "func_hash.FUN");
! fp->name = mush_strdup(name, "func_hash.name");
fp->where.offset = userfn_count;
fp->minargs = 0;
fp->maxargs = 10;
***************
*** 913,922 ****
if (userfn_tab[fp->where.offset].name)
mush_free((Malloc_t) userfn_tab[fp->where.offset].name,
"userfn_tab.name");
! userfn_tab[fp->where.offset].name = (char *) strdup(upcasestr(argv[2]));
! #ifdef MEM_CHECK
! add_check("userfn_tab.name");
! #endif
notify(player, T("Function updated."));
}
}
--- 900,906 ----
if (userfn_tab[fp->where.offset].name)
mush_free((Malloc_t) userfn_tab[fp->where.offset].name,
"userfn_tab.name");
! userfn_tab[fp->where.offset].name = mush_strdup(upcasestr(argv[2]), "userfn_tab.name");
notify(player, T("Function updated."));
}
}
***************
*** 975,989 ****
fp = (FUN *) hashfind(userfn_tab[i + 1].fn, &htab_user_function);
fp->where.offset = i;
userfn_tab[i].thing = userfn_tab[i + 1].thing;
! userfn_tab[i].name = (char *) strdup(userfn_tab[i + 1].name);
! #ifdef MEM_CHECK
! add_check("userfn_tab.name");
! #endif
mush_free((Malloc_t) userfn_tab[i + 1].name, "userfn_tab.name");
! userfn_tab[i].fn = (char *) strdup(userfn_tab[i + 1].fn);
! #ifdef MEM_CHECK
! add_check("userfn_tab.fn");
! #endif
mush_free((Malloc_t) userfn_tab[i + 1].fn, "userfn_tab.fn");
}
}
--- 959,967 ----
fp = (FUN *) hashfind(userfn_tab[i + 1].fn, &htab_user_function);
fp->where.offset = i;
userfn_tab[i].thing = userfn_tab[i + 1].thing;
! userfn_tab[i].name = mush_strdup(userfn_tab[i + 1].name, "userfn_tab.name");
mush_free((Malloc_t) userfn_tab[i + 1].name, "userfn_tab.name");
! userfn_tab[i].fn = mush_strdup(userfn_tab[i + 1].fn, "userfn_tab.fn");
mush_free((Malloc_t) userfn_tab[i + 1].fn, "userfn_tab.fn");
}
}
***************
*** 1039,1053 ****
fp = (FUN *) hashfind(userfn_tab[i + 1].fn, &htab_user_function);
fp->where.offset = i;
userfn_tab[i].thing = userfn_tab[i + 1].thing;
! userfn_tab[i].name = (char *) strdup(userfn_tab[i + 1].name);
! #ifdef MEM_CHECK
! add_check("userfn_tab.name");
! #endif
mush_free((Malloc_t) userfn_tab[i + 1].name, "userfn_tab.name");
! userfn_tab[i].fn = (char *) strdup(userfn_tab[i + 1].fn);
! #ifdef MEM_CHECK
! add_check("userfn_tab.fn");
! #endif
mush_free((Malloc_t) userfn_tab[i + 1].fn, "userfn_tab.fn");
}
notify(player, T("Function deleted."));
--- 1017,1025 ----
fp = (FUN *) hashfind(userfn_tab[i + 1].fn, &htab_user_function);
fp->where.offset = i;
userfn_tab[i].thing = userfn_tab[i + 1].thing;
! userfn_tab[i].name = mush_strdup(userfn_tab[i + 1].name, "userfn_tab.name");
mush_free((Malloc_t) userfn_tab[i + 1].name, "userfn_tab.name");
! userfn_tab[i].fn = mush_strdup(userfn_tab[i + 1].fn, "userfn_tab.fn");
mush_free((Malloc_t) userfn_tab[i + 1].fn, "userfn_tab.fn");
}
notify(player, T("Function deleted."));
*** 1_7_4.82/src/flags.c Fri, 23 Mar 2001 14:12:35 -0600 dunemush (pennmush/c/20_flags.c 1.1.1.1.1.1.1.1.1.1.1.1.1.6.1.2.1.1.1.1.1.2.2.2.2.1 660)
--- 1_7_4.93(w)/src/flags.c Sun, 13 May 2001 08:36:07 -0500 dunemush (pennmush/c/20_flags.c 1.1.1.1.1.1.1.1.1.1.1.1.1.6.1.2.1.1.1.1.1.2.2.2.2.1.2.1 660)
***************
*** 610,616 ****
* players.
*/
if (Wizard(thing) && (flagp->flag == PLAYER_GAGGED) &&
! (flagp->type == TYPE_PLAYER)) return 0; /* can't gag wizards/God */
if (God(player)) /* God can do (almost) anything) */
return 1;
--- 610,617 ----
* players.
*/
if (Wizard(thing) && (flagp->flag == PLAYER_GAGGED) &&
! (flagp->type == TYPE_PLAYER))
! return 0; /* can't gag wizards/God */
if (God(player)) /* God can do (almost) anything) */
return 1;
***************
*** 1092,1098 ****
}
}
if (((f->flag == QUIET) && (f->type == NOTYPE)) ||
! (!AreQuiet(player, thing))) notify(player, T("Flag reset."));
} else {
/* set the flag */
--- 1093,1100 ----
}
}
if (((f->flag == QUIET) && (f->type == NOTYPE)) ||
! (!AreQuiet(player, thing)))
! notify(player, T("Flag reset."));
} else {
/* set the flag */
***************
*** 1150,1156 ****
}
}
if (((f->flag == QUIET) && (f->flag == NOTYPE)) ||
! (!AreQuiet(player, thing))) notify(player, T("Flag set."));
}
}
--- 1152,1159 ----
}
}
if (((f->flag == QUIET) && (f->flag == NOTYPE)) ||
! (!AreQuiet(player, thing)))
! notify(player, T("Flag set."));
}
}
*** 1_7_4.82/src/extmail.c Thu, 29 Mar 2001 13:30:28 -0600 dunemush (pennmush/c/22_extmail.c 1.44 660)
--- 1_7_4.93(w)/src/extmail.c Sun, 13 May 2001 08:36:06 -0500 dunemush (pennmush/c/22_extmail.c 1.44.1.1 660)
***************
*** 1460,1467 ****
if (nargs == 1) {
if (!is_integer(args[0])) {
/* handle the case of wanting to count the number of messages */
! if (
! (player =
noisy_match_result(executor, args[0], TYPE_PLAYER,
MAT_OBJECTS)) == NOTHING) {
safe_str(T("#-1 NO SUCH PLAYER"), buff, bp);
--- 1460,1466 ----
if (nargs == 1) {
if (!is_integer(args[0])) {
/* handle the case of wanting to count the number of messages */
! if ((player =
noisy_match_result(executor, args[0], TYPE_PLAYER,
MAT_OBJECTS)) == NOTHING) {
safe_str(T("#-1 NO SUCH PLAYER"), buff, bp);
***************
*** 1574,1581 ****
}
} else {
/* Both a target and a message */
! if (
! (target =
noisy_match_result(player, arg1, TYPE_PLAYER,
MAT_OBJECTS)) == NOTHING) {
return NULL;
--- 1573,1579 ----
}
} else {
/* Both a target and a message */
! if ((target =
noisy_match_result(player, arg1, TYPE_PLAYER,
MAT_OBJECTS)) == NOTHING) {
return NULL;
***************
*** 2075,2081 ****
if (i != mail_top) {
do_rawlog(LT_ERR, T("MAIL: mail_top is %d, only read in %d messages."),
mail_top, i);
! } {
char eodbuf[20];
fgets(eodbuf, sizeof(eodbuf), fp);
if (!(eodbuf && !strcmp(eodbuf, (mail_flags & MDBF_NEW_EOD)
--- 2073,2080 ----
if (i != mail_top) {
do_rawlog(LT_ERR, T("MAIL: mail_top is %d, only read in %d messages."),
mail_top, i);
! }
! {
char eodbuf[20];
fgets(eodbuf, sizeof(eodbuf), fp);
if (!(eodbuf && !strcmp(eodbuf, (mail_flags & MDBF_NEW_EOD)
***************
*** 2194,2200 ****
*r = '\0';
}
/* put the attrib back */
! (void) atr_add(player, "MAILFOLDERS", res, GOD, AF_WIZARD | AF_NOPROG | AF_LOCKED);
mush_free((Malloc_t) res, "replace_string.buff");
mush_free((Malloc_t) new, "string");
mush_free((Malloc_t) pat, "string");
--- 2193,2200 ----
*r = '\0';
}
/* put the attrib back */
! (void) atr_add(player, "MAILFOLDERS", res, GOD,
! AF_WIZARD | AF_NOPROG | AF_LOCKED);
mush_free((Malloc_t) res, "replace_string.buff");
mush_free((Malloc_t) new, "string");
mush_free((Malloc_t) pat, "string");
***************
*** 2232,2238 ****
if (a)
(void) atr_add(player, a->name, tbuf1, GOD, a->flags);
else /* Shouldn't happen, but... */
! (void) atr_add(player, "MAILCURF", tbuf1, GOD, AF_WIZARD | AF_NOPROG | AF_LOCKED);
}
static int
--- 2232,2239 ----
if (a)
(void) atr_add(player, a->name, tbuf1, GOD, a->flags);
else /* Shouldn't happen, but... */
! (void) atr_add(player, "MAILCURF", tbuf1, GOD,
! AF_WIZARD | AF_NOPROG | AF_LOCKED);
}
static int
***************
*** 2591,2597 ****
*msghigh = *msglow;
}
if (*msglow < 0 || (msghigh && *msghigh < 0) || *folder < 0
! || *folder > MAX_FOLDERS) return 0;
} else {
/* No folder spec */
*folder = player_folder(player);
--- 2592,2599 ----
*msghigh = *msglow;
}
if (*msglow < 0 || (msghigh && *msghigh < 0) || *folder < 0
! || *folder > MAX_FOLDERS)
! return 0;
} else {
/* No folder spec */
*folder = player_folder(player);
***************
*** 2664,2670 ****
/* Is it an alias they can use? */
if (!((m->owner == player) || (m->nflags == 0) ||
(Hasprivs(player)) ||
! ((m->nflags & ALIAS_MEMBERS) && ismember(m, player)))) return 0;
#ifdef MAIL_SUBJECTS
u_strcpy(keepsub, subject);
--- 2666,2673 ----
/* Is it an alias they can use? */
if (!((m->owner == player) || (m->nflags == 0) ||
(Hasprivs(player)) ||
! ((m->nflags & ALIAS_MEMBERS) && ismember(m, player))))
! return 0;
#ifdef MAIL_SUBJECTS
u_strcpy(keepsub, subject);
*** 1_7_4.82/src/csrimalloc.c Mon, 30 Oct 2000 13:34:40 -0600 dunemush (pennmush/c/26_csrimalloc 1.22 660)
--- 1_7_4.93(w)/src/csrimalloc.c Sun, 13 May 2001 08:36:05 -0500 dunemush (pennmush/c/26_csrimalloc 1.23 660)
***************
*** 190,196 ****
extern caddr_t mmap proto((caddr_t, Size_t, int, int, int, off_t));
#endif
! #endif /* EXTERNS_H__ */ /* Do not add anything after this line */
/* $Id$ */
#ifndef __ASSERT_H__
--- 190,196 ----
extern caddr_t mmap proto((caddr_t, Size_t, int, int, int, off_t));
#endif
! #endif /* EXTERNS_H__ */ /* Do not add anything after this line */
/* $Id$ */
#ifndef __ASSERT_H__
***************
*** 210,216 ****
#define ASSERT_SP(p, s, s2, sp)
#define ASSERT_EP(p, s, s2, ep)
#endif
! #endif /* __ASSERT_H__ */ /* Do not add anything after this line */
#ifndef EXIT_FAILURE
#define EXIT_FAILURE 1
#endif
--- 210,216 ----
#define ASSERT_SP(p, s, s2, sp)
#define ASSERT_EP(p, s, s2, ep)
#endif
! #endif /* __ASSERT_H__ */ /* Do not add anything after this line */
#ifndef EXIT_FAILURE
#define EXIT_FAILURE 1
#endif
***************
*** 317,323 ****
/* Size_t with only the high-order bit turned on */
#define HIBITSZ (((Size_t) 1) << (BITS(Size_t) - 1))
! #endif /* __ALIGN_H__ */ /* Do not add anything after this line */
/*
* We assume that FREE is a 0 bit, and the tag for a free block, Or'ing the
--- 317,323 ----
/* Size_t with only the high-order bit turned on */
#define HIBITSZ (((Size_t) 1) << (BITS(Size_t) - 1))
! #endif /* __ALIGN_H__ */ /* Do not add anything after this line */
/*
* We assume that FREE is a 0 bit, and the tag for a free block, Or'ing the
***************
*** 663,669 ****
#endif
#endif
! #endif /* __DEFS_H__ */ /* Do not add anything after this line */
/* Author: Mark Moraes <moraes@csri.toronto.edu> */
--- 663,669 ----
#endif
#endif
! #endif /* __DEFS_H__ */ /* Do not add anything after this line */
/* Author: Mark Moraes <moraes@csri.toronto.edu> */
***************
*** 719,726 ****
#define _malloc_memfunc __MALF_memfunc
! #endif /* SHORTNAMES */ /* Do not add anything after this line */
! #endif /* __GLOBALRENAME_H__ */ /* Do not add anything after this line */
const char *_malloc_version =
"CSRI, University of Toronto Malloc Version 1.18alpha";
--- 719,726 ----
#define _malloc_memfunc __MALF_memfunc
! #endif /* SHORTNAMES */ /* Do not add anything after this line */
! #endif /* __GLOBALRENAME_H__ */ /* Do not add anything after this line */
const char *_malloc_version =
"CSRI, University of Toronto Malloc Version 1.18alpha";
***************
*** 846,852 ****
extern int
__m_prblock proto((univptr_t, int, FILE *));
! #endif /* __GLOBALS_H__ */ /* Do not add anything after this line */
/*
** sptree.h: The following type declarations provide the binary tree
--- 846,852 ----
extern int
__m_prblock proto((univptr_t, int, FILE *));
! #endif /* __GLOBALS_H__ */ /* Do not add anything after this line */
/*
** sptree.h: The following type declarations provide the binary tree
***************
*** 943,949 ****
else \
_malloc_leaktrace += 0
! #endif /* __CSRI_TRACE_H__ */ /* Do not add anything after this line */
#include "confmagic.h"
--- 943,949 ----
else \
_malloc_leaktrace += 0
! #endif /* __CSRI_TRACE_H__ */ /* Do not add anything after this line */
#include "confmagic.h"
*** 1_7_4.82/src/create.c Mon, 29 Jan 2001 09:51:40 -0600 dunemush (pennmush/c/27_create.c 1.27 660)
--- 1_7_4.93(w)/src/create.c Sun, 13 May 2001 08:36:05 -0500 dunemush (pennmush/c/27_create.c 1.27.1.1 660)
***************
*** 298,305 ****
break;
case TYPE_PLAYER:
case TYPE_THING:
! if (
! (room =
noisy_match_result(player, room_name, NOTYPE, MAT_EVERYTHING)) < 0) {
notify(player, T("No match."));
return;
--- 298,304 ----
break;
case TYPE_PLAYER:
case TYPE_THING:
! if ((room =
noisy_match_result(player, room_name, NOTYPE, MAT_EVERYTHING)) < 0) {
notify(player, T("No match."));
return;
*** 1_7_4.82/src/cque.c Mon, 23 Apr 2001 18:05:56 -0500 dunemush (pennmush/c/28_cque.c 1.35 660)
--- 1_7_4.93(w)/src/cque.c Tue, 15 May 2001 15:58:44 -0500 dunemush (pennmush/c/28_cque.c 1.36.1.1 660)
***************
*** 68,81 ****
void free_qentry _((BQUE *point));
static int pay_queue _((dbref player, const char *command));
void wait_que
! _(
! (dbref player, int wait, char *command,
dbref cause, dbref sem, const char *semattr, int until));
int que_next _((void));
static void show_queue
! _(
! (dbref player, dbref victim, int q_type,
int q_quiet, int q_all, BQUE *q_ptr, int *tot, int *self, int *del));
static void do_raw_restart _((dbref victim));
static int waitable_attr _((dbref thing, const char *atr));
--- 68,79 ----
void free_qentry _((BQUE *point));
static int pay_queue _((dbref player, const char *command));
void wait_que
! _((dbref player, int wait, char *command,
dbref cause, dbref sem, const char *semattr, int until));
int que_next _((void));
static void show_queue
! _((dbref player, dbref victim, int q_type,
int q_quiet, int q_all, BQUE *q_ptr, int *tot, int *self, int *del));
static void do_raw_restart _((dbref victim));
static int waitable_attr _((dbref thing, const char *atr));
***************
*** 174,180 ****
if (point->env[a]) {
mush_free((Malloc_t) point->env[a], "bqueue_env");
}
! for (a = 0; a < 10; a++)
if (point->rval[a]) {
mush_free((Malloc_t) point->rval[a], "bqueue_rval");
}
--- 172,178 ----
if (point->env[a]) {
mush_free((Malloc_t) point->env[a], "bqueue_env");
}
! for (a = 0; a < NUMQ; a++)
if (point->rval[a]) {
mush_free((Malloc_t) point->rval[a], "bqueue_rval");
}
***************
*** 226,236 ****
if (!pay_queue(player, command)) /* make sure player can afford to do it */
return;
tmp = (BQUE *) mush_malloc(sizeof(BQUE), "BQUE");
! tmp->comm = (char *) strdup(command);
tmp->semattr = NULL;
- #ifdef MEM_CHECK
- add_check("bqueue_comm");
- #endif
tmp->player = player;
tmp->queued = QUEUE_PER_OWNER ? Owner(player) : player;
tmp->next = NULL;
--- 224,231 ----
if (!pay_queue(player, command)) /* make sure player can afford to do it */
return;
tmp = (BQUE *) mush_malloc(sizeof(BQUE), "BQUE");
! tmp->comm = mush_strdup(command, "bqueue_comm");
tmp->semattr = NULL;
tmp->player = player;
tmp->queued = QUEUE_PER_OWNER ? Owner(player) : player;
tmp->next = NULL;
***************
*** 240,258 ****
if (!wnxt[a])
tmp->env[a] = NULL;
else {
! tmp->env[a] = (char *) strdup(wnxt[a]);
! #ifdef MEM_CHECK
! add_check("bqueue_env");
! #endif
}
for (a = 0; a < NUMQ; a++)
if (!rnxt[a] || !rnxt[a][0])
tmp->rval[a] = NULL;
else {
! tmp->rval[a] = (char *) strdup(rnxt[a]);
! #ifdef MEM_CHECK
! add_check("bqueue_rval");
! #endif
}
if (IsPlayer(cause)) {
if (qlast) {
--- 235,247 ----
if (!wnxt[a])
tmp->env[a] = NULL;
else {
! tmp->env[a] = mush_strdup(wnxt[a], "bqueue_env");
}
for (a = 0; a < NUMQ; a++)
if (!rnxt[a] || !rnxt[a][0])
tmp->rval[a] = NULL;
else {
! tmp->rval[a] = mush_strdup(rnxt[a], "bqueue_rval");
}
if (IsPlayer(cause)) {
if (qlast) {
***************
*** 328,337 ****
if (!pay_queue(player, command)) /* make sure player can afford to do it */
return;
tmp = (BQUE *) mush_malloc(sizeof(BQUE), "BQUE");
! tmp->comm = (char *) strdup(command);
! #ifdef MEM_CHECK
! add_check("bqueue_comm");
! #endif
tmp->player = player;
tmp->queued = QUEUE_PER_OWNER ? Owner(player) : player;
tmp->cause = cause;
--- 317,323 ----
if (!pay_queue(player, command)) /* make sure player can afford to do it */
return;
tmp = (BQUE *) mush_malloc(sizeof(BQUE), "BQUE");
! tmp->comm = mush_strdup(command, "bqueue_comm");
tmp->player = player;
tmp->queued = QUEUE_PER_OWNER ? Owner(player) : player;
tmp->cause = cause;
***************
*** 340,359 ****
if (!wnxt[a])
tmp->env[a] = NULL;
else {
! tmp->env[a] = (char *) strdup(wnxt[a]);
! #ifdef MEM_CHECK
! add_check("bqueue_env");
! #endif
}
}
for (a = 0; a < NUMQ; a++) {
if (!rnxt[a] || !rnxt[a][0])
tmp->rval[a] = NULL;
else {
! tmp->rval[a] = (char *) strdup(rnxt[a]);
! #ifdef MEM_CHECK
! add_check("bqueue_rval");
! #endif
}
}
--- 326,339 ----
if (!wnxt[a])
tmp->env[a] = NULL;
else {
! tmp->env[a] = mush_strdup(wnxt[a], "bqueue_env");
}
}
for (a = 0; a < NUMQ; a++) {
if (!rnxt[a] || !rnxt[a][0])
tmp->rval[a] = NULL;
else {
! tmp->rval[a] = mush_strdup(rnxt[a], "bqueue_rval");
}
}
***************
*** 381,390 ****
} else {
/* Put it on the semaphore queue, sorted by time */
! tmp->semattr = strdup(semattr ? semattr : "SEMAPHORE");
! #ifdef MEM_CHECK
! add_check("bqueue_semattr");
! #endif
if (!tmp->left) { /* No timeout, just shove it on the end */
tmp->next = NULL;
if (qsemlast != NULL)
--- 361,367 ----
} else {
/* Put it on the semaphore queue, sorted by time */
! tmp->semattr = mush_strdup(semattr ? semattr : "SEMAPHORE", "bqueue_semattr");
if (!tmp->left) { /* No timeout, just shove it on the end */
tmp->next = NULL;
if (qsemlast != NULL)
***************
*** 679,688 ****
} else {
aname = (char *) "SEMAPHORE";
}
! if (
! (thing =
! noisy_match_result(player, what, NOTYPE,
! MAT_EVERYTHING)) == NOTHING) return;
/* must control something or have it link_ok in order to use it as
* as a semaphore.
*/
--- 656,664 ----
} else {
aname = (char *) "SEMAPHORE";
}
! if ((thing =
! noisy_match_result(player, what, NOTYPE, MAT_EVERYTHING)) == NOTHING)
! return;
/* must control something or have it link_ok in order to use it as
* as a semaphore.
*/
***************
*** 737,744 ****
aname = strchr(arg1, '/');
if (aname)
*aname++ = '\0';
! if (
! (thing =
noisy_match_result(player, arg1, NOTYPE, MAT_EVERYTHING)) == NOTHING) {
mush_free(arg2, "strip_braces.buff");
return;
--- 713,719 ----
aname = strchr(arg1, '/');
if (aname)
*aname++ = '\0';
! if ((thing =
noisy_match_result(player, arg1, NOTYPE, MAT_EVERYTHING)) == NOTHING) {
mush_free(arg2, "strip_braces.buff");
return;
***************
*** 991,1000 ****
if (*arg1 == '\0')
do_halt(player, "", player);
else {
! if (
! (victim =
! noisy_match_result(player, arg1, NOTYPE,
! MAT_OBJECTS)) == NOTHING) return;
if (!Owns(player, victim) && !HaltAny(player)) {
notify(player, T("Permission denied."));
return;
--- 966,974 ----
if (*arg1 == '\0')
do_halt(player, "", player);
else {
! if ((victim =
! noisy_match_result(player, arg1, NOTYPE, MAT_OBJECTS)) == NOTHING)
! return;
if (!Owns(player, victim) && !HaltAny(player)) {
notify(player, T("Permission denied."));
return;
***************
*** 1102,1111 ****
do_halt(player, "", player);
do_raw_restart(player);
} else {
! if (
! (victim =
! noisy_match_result(player, arg1, NOTYPE,
! MAT_OBJECTS)) == NOTHING) return;
if (!Owns(player, victim) && !HaltAny(player)) {
notify(player, T("Permission denied."));
return;
--- 1076,1084 ----
do_halt(player, "", player);
do_raw_restart(player);
} else {
! if ((victim =
! noisy_match_result(player, arg1, NOTYPE, MAT_OBJECTS)) == NOTHING)
! return;
if (!Owns(player, victim) && !HaltAny(player)) {
notify(player, T("Permission denied."));
return;
*** 1_7_4.82/src/command.c Sat, 07 Apr 2001 13:33:48 -0500 dunemush (pennmush/c/36_command.c 1.56.1.1.1.1.1.1 660)
--- 1_7_4.93(w)/src/command.c Sun, 13 May 2001 08:36:03 -0500 dunemush (pennmush/c/36_command.c 1.56.1.1.1.1.1.1.1.2.1.1 660)
***************
*** 117,123 ****
CMD_T_NOGAGGED, 0, 0, 0},
{"@ELOCK", NULL, cmd_elock, CMD_T_ANY | CMD_T_EQSPLIT | CMD_T_NOGAGGED,
0, 0, 0},
! {"@EMIT", "ROOM NOEVAL SILENT", cmd_emit, CMD_T_ANY | CMD_T_NOGAGGED, 0, 0, 0},
{"@ENABLE", NULL, cmd_enable, CMD_T_ANY | CMD_T_NOGAGGED, WIZARD, 0, 0},
{"@ENTRANCES", "EXITS THINGS PLAYERS ROOMS", cmd_entrances,
--- 117,124 ----
CMD_T_NOGAGGED, 0, 0, 0},
{"@ELOCK", NULL, cmd_elock, CMD_T_ANY | CMD_T_EQSPLIT | CMD_T_NOGAGGED,
0, 0, 0},
! {"@EMIT", "ROOM NOEVAL SILENT", cmd_emit, CMD_T_ANY | CMD_T_NOGAGGED, 0, 0,
! 0},
{"@ENABLE", NULL, cmd_enable, CMD_T_ANY | CMD_T_NOGAGGED, WIZARD, 0, 0},
{"@ENTRANCES", "EXITS THINGS PLAYERS ROOMS", cmd_entrances,
***************
*** 154,160 ****
CMD_T_ANY | CMD_T_NOGAGGED, WIZARD, 0, 0},
#ifdef USE_MAILER
{"@MAIL",
! "NOEVAL NOSIG STATS DSTATS FSTATS DEBUG NUKE FOLDER UNFOLDER LIST READ CLEAR UNCLEAR PURGE FILE TAG UNTAG FWD FORWARD SEND SILENT URGENT",
cmd_mail, CMD_T_ANY | CMD_T_EQSPLIT | CMD_T_NOGAGGED, 0, 0, 0},
#ifdef MAIL_ALIASES
--- 155,161 ----
CMD_T_ANY | CMD_T_NOGAGGED, WIZARD, 0, 0},
#ifdef USE_MAILER
{"@MAIL",
! "NOEVAL NOSIG STATS DSTATS FSTATS DEBUG NUKE FOLDERS UNFOLDER LIST READ CLEAR UNCLEAR PURGE FILE TAG UNTAG FWD FORWARD SEND SILENT URGENT",
cmd_mail, CMD_T_ANY | CMD_T_EQSPLIT | CMD_T_NOGAGGED, 0, 0, 0},
#ifdef MAIL_ALIASES
***************
*** 290,296 ****
CMD_T_PLAYER | CMD_T_THING | CMD_T_NOGAGGED, 0, 0, 0},
{"GET", NULL, cmd_get, CMD_T_PLAYER | CMD_T_THING | CMD_T_NOGAGGED, 0, 0,
0},
! {"GIVE", NULL, cmd_give, CMD_T_ANY | CMD_T_EQSPLIT | CMD_T_NOGAGGED, 0,
0, 0},
{"GOTO", NULL, cmd_goto, CMD_T_PLAYER | CMD_T_THING, 0, 0, 0},
{"INVENTORY", NULL, cmd_inventory, CMD_T_ANY, 0, 0, 0},
--- 291,297 ----
CMD_T_PLAYER | CMD_T_THING | CMD_T_NOGAGGED, 0, 0, 0},
{"GET", NULL, cmd_get, CMD_T_PLAYER | CMD_T_THING | CMD_T_NOGAGGED, 0, 0,
0},
! {"GIVE", "SILENT", cmd_give, CMD_T_ANY | CMD_T_EQSPLIT | CMD_T_NOGAGGED, 0,
0, 0},
{"GOTO", NULL, cmd_goto, CMD_T_PLAYER | CMD_T_THING, 0, 0, 0},
{"INVENTORY", NULL, cmd_inventory, CMD_T_ANY, 0, 0, 0},
***************
*** 412,419 ****
switch_mask *sw;
#ifdef CAN_TAKE_ARGS_IN_FP
void (*func)
! _(
! (COMMAND_INFO *cmd, dbref player, dbref cause, switch_mask sw,
char *raw, char *switches, char *args_raw, char *arg_left,
char *args_left[MAX_ARG], char *arg_right, char *args_right[MAX_ARG]));
#else
--- 413,419 ----
switch_mask *sw;
#ifdef CAN_TAKE_ARGS_IN_FP
void (*func)
! _((COMMAND_INFO *cmd, dbref player, dbref cause, switch_mask sw,
char *raw, char *switches, char *args_raw, char *arg_left,
char *args_left[MAX_ARG], char *arg_right, char *args_right[MAX_ARG]));
#else
***************
*** 457,464 ****
switch_mask *sw;
#ifdef CAN_TAKE_ARGS_IN_FP
void (*func)
! _(
! (COMMAND_INFO *cmd, dbref player, dbref cause, switch_mask sw,
char *raw, char *switches, char *args_raw, char *arg_left,
char *args_left[MAX_ARG], char *arg_right, char *args_right[MAX_ARG]));
#else
--- 457,463 ----
switch_mask *sw;
#ifdef CAN_TAKE_ARGS_IN_FP
void (*func)
! _((COMMAND_INFO *cmd, dbref player, dbref cause, switch_mask sw,
char *raw, char *switches, char *args_raw, char *arg_left,
char *args_left[MAX_ARG], char *arg_right, char *args_right[MAX_ARG]));
#else
***************
*** 1308,1315 ****
* any match, the player is ok to do the command. Toggles really
* should only be used if the command is type-restricted, too!
*/
! if (!(
! ((cmd->flags == 0) && (cmd->toggles == 0) && (cmd->powers == 0)) ||
((cmd->flags) && (cmd->flags & Flags(player))) ||
((cmd->toggles) && (cmd->toggles & Toggles(player))) ||
((cmd->powers) && (cmd->powers & Powers(player))))) {
--- 1307,1313 ----
* any match, the player is ok to do the command. Toggles really
* should only be used if the command is type-restricted, too!
*/
! if (!(((cmd->flags == 0) && (cmd->toggles == 0) && (cmd->powers == 0)) ||
((cmd->flags) && (cmd->flags & Flags(player))) ||
((cmd->toggles) && (cmd->toggles & Toggles(player))) ||
((cmd->powers) && (cmd->powers & Powers(player))))) {
*** 1_7_4.82/src/cmds.c Sat, 07 Apr 2001 13:33:48 -0500 dunemush (pennmush/c/37_cmds.c 1.33.1.1.1.2 660)
--- 1_7_4.93(w)/src/cmds.c Sun, 13 May 2001 08:36:03 -0500 dunemush (pennmush/c/37_cmds.c 1.33.1.1.1.2.1.2 660)
***************
*** 482,488 ****
do_mail_debug(player, arg_left, arg_right);
else if (SW_ISSET(sw, SWITCH_NUKE))
do_mail_nuke(player);
! else if (SW_ISSET(sw, SWITCH_FOLDER))
do_mail_change_folder(player, arg_left, arg_right);
else if (SW_ISSET(sw, SWITCH_UNFOLDER))
do_mail_unfolder(player, arg_left);
--- 482,488 ----
do_mail_debug(player, arg_left, arg_right);
else if (SW_ISSET(sw, SWITCH_NUKE))
do_mail_nuke(player);
! else if (SW_ISSET(sw, SWITCH_FOLDERS))
do_mail_change_folder(player, arg_left, arg_right);
else if (SW_ISSET(sw, SWITCH_UNFOLDER))
do_mail_unfolder(player, arg_left);
***************
*** 949,955 ****
}
COMMAND (cmd_give) {
! do_give(player, arg_left, arg_right);
}
COMMAND (cmd_goto) {
--- 949,955 ----
}
COMMAND (cmd_give) {
! do_give(player, arg_left, arg_right, (SW_ISSET(sw, SWITCH_SILENT)));
}
COMMAND (cmd_goto) {
*** 1_7_4.82/src/bsd.c Thu, 12 Apr 2001 14:39:32 -0500 dunemush (pennmush/c/38_bsd.c 1.58.1.11.1.2.1.5.1.7.1.14.1.13.1.9.1.4.1.2.1.12 660)
--- 1_7_4.93(w)/src/bsd.c Tue, 15 May 2001 15:58:44 -0500 dunemush (pennmush/c/38_bsd.c 1.58.1.11.1.2.1.5.1.7.1.14.1.13.1.9.1.4.1.2.1.12.1.1.1.1 660)
***************
*** 154,161 ****
extern int que_next _((void)); /* from cque.c */
extern int on_second;
extern void dispatch _((void)); /* from timer.c */
! extern dbref email_register_player
! _((const char *name, const char *email, const char *host, const char *ip)); /* from player.c */
extern time_t start_time, first_start_time;
extern int reboot_count;
--- 154,160 ----
extern int que_next _((void)); /* from cque.c */
extern int on_second;
extern void dispatch _((void)); /* from timer.c */
! extern dbref email_register_player _((const char *name, const char *email, const char *host, const char *ip)); /* from player.c */
extern time_t start_time, first_start_time;
extern int reboot_count;
***************
*** 1129,1138 ****
p++;
}
*o = '\0';
! messages[type].message = strdup(tbuf);
! #ifdef MEM_CHECK
! add_check("string");
! #endif
return messages[type].message;
} else if (type == NA_PASCII) {
/* PLAYER Ascii. Different output. \n is \r\n */
--- 1128,1134 ----
p++;
}
*o = '\0';
! messages[type].message = mush_strdup(tbuf, "string");
return messages[type].message;
} else if (type == NA_PASCII) {
/* PLAYER Ascii. Different output. \n is \r\n */
***************
*** 1157,1166 ****
p++;
}
*o = '\0';
! messages[type].message = strdup(tbuf);
! #ifdef MEM_CHECK
! add_check("string");
! #endif
return messages[type].message;
}
for (n = 0; n < 6; n++) {
--- 1153,1159 ----
p++;
}
*o = '\0';
! messages[type].message = mush_strdup(tbuf, "string");
return messages[type].message;
}
for (n = 0; n < 6; n++) {
***************
*** 1340,1354 ****
if (state[TA_BOLD] || state[TA_REV] ||
state[TA_BLINK] || state[TA_ULINE] ||
(color && (state[TA_FGC] || state[TA_BGC])))
! safe_str(ANSI_NORMAL, t, &o);
break;
}
*o = '\0';
! messages[type].message = strdup(tbuf);
! #ifdef MEM_CHECK
! add_check("string");
! #endif
return messages[type].message;
}
--- 1333,1344 ----
if (state[TA_BOLD] || state[TA_REV] ||
state[TA_BLINK] || state[TA_ULINE] ||
(color && (state[TA_FGC] || state[TA_BGC])))
! safe_str(ANSI_NORMAL, t, &o);
break;
}
*o = '\0';
! messages[type].message = mush_strdup(tbuf, "string");
return messages[type].message;
}
***************
*** 1557,1566 ****
paranoids[i].made = 0;
}
! msgbuf = strdup(message);
! #ifdef MEM_CHECK
! add_check("string");
! #endif
target = NOTHING;
--- 1547,1553 ----
paranoids[i].made = 0;
}
! msgbuf = mush_strdup(message, "string");
target = NOTHING;
***************
*** 3437,3446 ****
while (*command && isspace(*command))
command++;
if (*command)
! *userstring = strdup(command);
! #ifdef MEM_CHECK
! add_check("userstring");
! #endif
}
void
--- 3424,3430 ----
while (*command && isspace(*command))
command++;
if (*command)
! *userstring = mush_strdup(command, "userstring");
}
void
***************
*** 4522,4528 ****
/* now smash undesirable characters and truncate */
for (i = 0; i < DOING_LEN; i++) {
if ((buf[i] == '\r') || (buf[i] == '\n') ||
! (buf[i] == '\t') || (buf[i] == BEEP_CHAR)) buf[i] = ' ';
}
buf[DOING_LEN - 1] = '\0';
--- 4506,4513 ----
/* now smash undesirable characters and truncate */
for (i = 0; i < DOING_LEN; i++) {
if ((buf[i] == '\r') || (buf[i] == '\n') ||
! (buf[i] == '\t') || (buf[i] == BEEP_CHAR))
! buf[i] = ' ';
}
buf[DOING_LEN - 1] = '\0';
***************
*** 4691,4697 ****
DESC_ITER_CONN(d) {
if ((d->player == target) &&
(!Hidden(d) || Priv_Who(executor)) &&
! (!match || (d->last_time > match->last_time))) match = d;
}
if (match)
safe_integer(match->pueblo, buff, bp);
--- 4676,4683 ----
DESC_ITER_CONN(d) {
if ((d->player == target) &&
(!Hidden(d) || Priv_Who(executor)) &&
! (!match || (d->last_time > match->last_time)))
! match = d;
}
if (match)
safe_integer(match->pueblo, buff, bp);
***************
*** 4728,4734 ****
DESC_ITER_CONN(d) {
if ((d->player == target) &&
(!Hidden(d) || Priv_Who(executor)) &&
! (!match || (d->last_time > match->last_time))) match = d;
}
if (match)
--- 4714,4721 ----
DESC_ITER_CONN(d) {
if ((d->player == target) &&
(!Hidden(d) || Priv_Who(executor)) &&
! (!match || (d->last_time > match->last_time)))
! match = d;
}
if (match)
***************
*** 4766,4772 ****
DESC_ITER_CONN(d) {
if ((d->player == target) &&
(!Hidden(d) || Priv_Who(executor)) &&
! (!match || (d->connected_at < match->connected_at))) match = d;
}
if (match)
--- 4753,4760 ----
DESC_ITER_CONN(d) {
if ((d->player == target) &&
(!Hidden(d) || Priv_Who(executor)) &&
! (!match || (d->connected_at < match->connected_at)))
! match = d;
}
if (match)
***************
*** 5403,5409 ****
descriptor_list = d;
if (d->connected && d->player && GoodObject(d->player) &&
! IsPlayer(d->player)) Toggles(d->player) |= PLAYER_CONNECT;
else if ((!d->player || !GoodObject(d->player)) && d->connected) {
d->connected = 0;
d->player = 0;
--- 5391,5398 ----
descriptor_list = d;
if (d->connected && d->player && GoodObject(d->player) &&
! IsPlayer(d->player))
! Toggles(d->player) |= PLAYER_CONNECT;
else if ((!d->player || !GoodObject(d->player)) && d->connected) {
d->connected = 0;
d->player = 0;
*** 1_7_4.82/src/attrib.c Fri, 23 Feb 2001 12:29:59 -0600 dunemush (pennmush/c/40_attrib.c 1.15.1.2.1.5.1.1.1.3.1.3.1.2.1.2.1.2 660)
--- 1_7_4.93(w)/src/attrib.c Sun, 13 May 2001 08:36:02 -0500 dunemush (pennmush/c/40_attrib.c 1.15.1.2.1.5.1.1.1.3.1.3.1.2.1.2.1.2.2.1 660)
***************
*** 944,951 ****
was_listener = Listener(thing);
res =
! s ? atr_add(thing, name, s, player,
! (flags & 0x02) ? AF_NOPROG : NOTHING)
: atr_clr(thing, name, player);
if (res == AE_SAFE) {
notify(player, T("That attribute is SAFE. Set it !SAFE to modify it."));
--- 944,950 ----
was_listener = Listener(thing);
res =
! s ? atr_add(thing, name, s, player, (flags & 0x02) ? AF_NOPROG : NOTHING)
: atr_clr(thing, name, player);
if (res == AE_SAFE) {
notify(player, T("That attribute is SAFE. Set it !SAFE to modify it."));
***************
*** 1022,1028 ****
*p++ = '\0';
if ((thing = noisy_match_result(player, arg1, NOTYPE, MAT_EVERYTHING)) ==
! NOTHING) return;
if (!controls(player, thing)) {
notify(player, T("Permission denied."));
--- 1021,1028 ----
*p++ = '\0';
if ((thing = noisy_match_result(player, arg1, NOTYPE, MAT_EVERYTHING)) ==
! NOTHING)
! return;
if (!controls(player, thing)) {
notify(player, T("Permission denied."));
***************
*** 1081,1087 ****
*p++ = '\0';
if ((thing = noisy_match_result(player, arg1, NOTYPE, MAT_EVERYTHING)) ==
! NOTHING) return;
if (!controls(player, thing)) {
notify(player, T("Permission denied."));
--- 1081,1088 ----
*p++ = '\0';
if ((thing = noisy_match_result(player, arg1, NOTYPE, MAT_EVERYTHING)) ==
! NOTHING)
! return;
if (!controls(player, thing)) {
notify(player, T("Permission denied."));
*** 1_7_4.82/src/access.c Mon, 29 Jan 2001 09:51:40 -0600 dunemush (pennmush/c/43_access.c 1.11 660)
--- 1_7_4.93(w)/src/access.c Sun, 13 May 2001 08:36:02 -0500 dunemush (pennmush/c/43_access.c 1.11.1.1 660)
***************
*** 120,127 ****
static struct access *access_top;
extern int reserved; /* reserved file descriptor */
static int add_access_node
! _(
! (const char *host, const dbref who, const int can, const int cant,
const char *comment));
static void free_access_list _((void));
--- 120,126 ----
static struct access *access_top;
extern int reserved; /* reserved file descriptor */
static int add_access_node
! _((const char *host, const dbref who, const int can, const int cant,
const char *comment));
static void free_access_list _((void));
*** 1_7_4.82/hdrs/csrimalloc.h Thu, 20 Jul 2000 17:42:54 -0500 dunemush (pennmush/c/45_csrimalloc 1.4 660)
--- 1_7_4.93(w)/hdrs/csrimalloc.h Sun, 13 May 2001 08:36:14 -0500 dunemush (pennmush/c/45_csrimalloc 1.5 660)
***************
*** 95,98 ****
#endif /* sparc */
! #endif /* __CSRIMALLOC_H__ */ /* Do not add anything after this line */
--- 95,98 ----
#endif /* sparc */
! #endif /* __CSRIMALLOC_H__ */ /* Do not add anything after this line */
*** 1_7_4.82/hdrs/version.h Mon, 23 Apr 2001 18:06:35 -0500 dunemush (pennmush/c/47_version.h 1.32.1.2.1.6 660)
--- 1_7_4.93(w)/hdrs/version.h Sun, 13 May 2001 08:36:20 -0500 dunemush (pennmush/c/47_version.h 1.32.1.2.1.7.1.1 660)
***************
*** 1,2 ****
! #define VERSION "PennMUSH version 1.7.4 patchlevel 3 [04/23/2001]"
! #define SHORTVN "PennMUSH 1.7.4p3"
--- 1,2 ----
! #define VERSION "PennMUSH version 1.7.4 patchlevel 4 [05/13/2001]"
! #define SHORTVN "PennMUSH 1.7.4p4"
*** 1_7_4.82/hdrs/malias.h Sun, 04 Mar 2001 18:27:45 -0600 dunemush (pennmush/d/5_malias.h 1.13 660)
--- 1_7_4.93(w)/hdrs/malias.h Tue, 15 May 2001 15:58:44 -0500 dunemush (pennmush/d/5_malias.h 1.14 660)
***************
*** 12,18 ****
#define ALIAS_OWNER 0x4 /* Only the owner */
struct mail_alias {
! unsigned char *name;
unsigned char *desc; /* Description */
int size; /* Size of the members array */
dbref *members; /* Pointer to an array of dbrefs */
--- 12,18 ----
#define ALIAS_OWNER 0x4 /* Only the owner */
struct mail_alias {
! char *name;
unsigned char *desc; /* Description */
int size; /* Size of the members array */
dbref *members; /* Pointer to an array of dbrefs */
*** 1_7_4.82/hdrs/game.h Thu, 08 Feb 2001 23:01:41 -0600 dunemush (pennmush/d/12_game.h 1.27 660)
--- 1_7_4.93(w)/hdrs/game.h Sun, 13 May 2001 08:36:14 -0500 dunemush (pennmush/d/12_game.h 1.28.1.1 660)
***************
*** 74,81 ****
/* From predicat.c */
extern void do_switch
! _(
! (dbref player, char *expression, char **argv, dbref cause, int first,
int notifyme));
extern void do_verb _((dbref player, dbref cause, char *arg1, char **argv));
extern void do_grep
--- 74,80 ----
/* From predicat.c */
extern void do_switch
! _((dbref player, char *expression, char **argv, dbref cause, int first,
int notifyme));
extern void do_verb _((dbref player, dbref cause, char *arg1, char **argv));
extern void do_grep
***************
*** 83,89 ****
/* From rob.c */
extern void do_kill _((dbref player, const char *what, int cost, int slay));
! extern void do_give _((dbref player, char *recipient, char *amnt));
/* From set.c */
extern void do_name _((dbref player, const char *name, char *newname));
--- 82,88 ----
/* From rob.c */
extern void do_kill _((dbref player, const char *what, int cost, int slay));
! extern void do_give _((dbref player, char *recipient, char *amnt, int silent));
/* From set.c */
extern void do_name _((dbref player, const char *name, char *newname));
***************
*** 112,119 ****
extern void do_pose _((dbref player, const char *tbuf1, int space));
extern void do_wall _((dbref player, const char *message, int privs, int key));
extern void do_page
! _(
! (dbref player, const char *arg1, const char *arg2, dbref cause, int noeval,
int multipage));
extern void do_think _((dbref player, const char *message));
extern void do_emit _((dbref player, const char *tbuf1));
--- 111,117 ----
extern void do_pose _((dbref player, const char *tbuf1, int space));
extern void do_wall _((dbref player, const char *message, int privs, int key));
extern void do_page
! _((dbref player, const char *arg1, const char *arg2, dbref cause, int noeval,
int multipage));
extern void do_think _((dbref player, const char *message));
extern void do_emit _((dbref player, const char *tbuf1));
*** 1_7_4.82/hdrs/function.h Sat, 17 Feb 2001 10:56:52 -0600 dunemush (pennmush/d/13_function.h 1.11 660)
--- 1_7_4.93(w)/hdrs/function.h Sun, 13 May 2001 08:36:14 -0500 dunemush (pennmush/d/13_function.h 1.11.1.1 660)
***************
*** 92,99 ****
char const *called_as, PE_Info *pe_info))
#ifdef CAN_TAKE_ARGS_IN_FP
extern void function_add _((const char *name, void (*fun)
! _(
! (char *buff, char **bp, int nargs,
char *args[], dbref executor, dbref caller,
dbref enactor, char const *called_as,
PE_Info * pe_info)), int minargs,
--- 92,98 ----
char const *called_as, PE_Info *pe_info))
#ifdef CAN_TAKE_ARGS_IN_FP
extern voi