+2000-07-01 Perry Lorier <Isomer@coders.net>
+ * ircd/s_conf.c: "Fixed" the "bug" where people would "evade" K:'s.
+ * ircd/s_conf.c, include/IPcheck.h: Fixed compile warnings.
+
+2000-06-22 Perry Lorier <Isomer@coders.net>
+ * ircd/IPcheck.c: Large chunks redone.
+ * ircd/s_conf.c: Changes due to IPcheck - ONE nolonger supported,
+ single AND double digit limits are allowed now.
+ * misc other: Changes to IPcheck.
+
+2000-06-30 Perry Lorier <Isomer@coders.net>
+ * ircd/ircd.c: Fix command line parameter bugs.
+
+2000-06-30 Perry Lorier <Isomer@coders.net>
+ * ircd/m_kill.c: Fixed bug with LOCAL_KILL_ONLY
+ * ircd/m_nick.c: Tidied things up.
+
+2000-06-12 Joseph Bongaarts <foxxe@trms.com>
+ * ircd/m_stats.c: Iso forgot mo_stats when he added /stats v
+
+2000-05-29 Perry Lorier <Isomer@coders.net>
+ * ircd/m_stats.c: add /stats v to do only the last part of the /trace
+ * ircd/IPcheck.c: Cosmetic change, if we meddle with it enough do
+ you think it'll get bored and fix itself?
+
+2000-06-09 Greg Sikorski <gte@atomicrevs.demon.co.uk>
+
+ * ircd/m_names.c: Clean up compiler warnings.
+
+2000-06-09 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/channel.c (mode_parse_client): don't send warning if
+ there's not enough arguments for a +/-o/v; means the habit of
+ doing "/mode #channel +oooooo bob" doesn't result in a bunch of
+ error messages
+
+2000-06-04 Greg Sikorski <gte@atomicrevs.demon.co.uk>
+
+ * ircd/m_names.c: Re-factor code to remove unneccessary
+ GlobalChannelList iteration every time someone joins a channel.
+
+2000-06-02 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/s_user.c: add struct Gline * argument to register_user;
+ look up global glines and repropagate them if necessary; send
+ acknowledgement of gline to remote servers when registering users
+
+ * ircd/s_serv.c (server_estab): don't send acknowledgement of
+ local glines to remote servers; do send gline acknowledgement of
+ bursted users
+
+ * ircd/m_user.c (m_user): pass new struct Gline * argument to
+ register_user
+
+ * ircd/m_pong.c: pass new struct Gline * argument to register_user
+
+ * ircd/m_nick.c (ms_nick): document protocol change
+
+ * ircd/gline.c: support GLINE_LASTMOD
+
+ * include/s_user.h: add struct Gline * argument to register_user
+
+ * include/gline.h: add GLINE_LASTMOD to look up non-zero lastmods
+
+ * ircd/s_conf.c (find_kill): add unsigned int argument to
+ gline_lookup()
+
+ * ircd/gline.c: add GLINE_GLOBAL to lookup or find only global
+ glines; add unsigned int argument to gline_lookup()
+
+ * include/gline.h: add GLINE_GLOBAL flag; add unsigned int
+ argument to gline_lookup()
+
+ * ircd/m_server.c: Resend jupe only when there is no %<lastmod>
+ parameter, or when it falls out of bounds: see comments prior to
+ call to jupe_resend(); call server_estab with struct Jupe
+ parameter, so that we place the appropriate %<lastmod> in the
+ appropriate place.
+
+ * ircd/s_serv.c (server_estab): send %<lastmod> for introduced
+ server, as well as for servers when we're sending the BURST
+
+ * include/s_serv.h: add a struct Jupe * to the arguments for
+ server_estab() so that we can send the appropriate lastmod
+ parameter
+
+ * ircd/m_gline.c (ms_gline): actually, this should be the
+ slightest bit more efficient...
+
+ * ircd/m_jupe.c (ms_jupe): actually, this should be the slightest
+ bit more efficient...
+
+ * ircd/m_gline.c (ms_gline): inhibit GLINE processing resends
+ during netburst
+
+ * ircd/m_jupe.c (ms_jupe): inhibit JUPE processing resends during
+ netburst
+
+ * ircd/channel.c (joinbuf_join): really remove user from local
+ channels
+
+2000-05-29 Perry Lorier <Isomer@coders.net>
+ * ircd/m_names.c: Removed redundant space.
+ * ircd/s_bsd.c: Fixed incorrect syntax on ERROR line.
+
+2000-05-18 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/m_burst.c (ms_burst): er...that should have been a ",", not
+ a " "
+
+2000-05-04 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/channel.c: replace bogus assertions with returns, which is
+ logically correct; only wipe out limit/key if they were originally
+ set in the first place; remove user from channel when doing a
+ PARTALL; only send MODE +o for user CREATEing channel if user is
+ not MyUser--CREATE will only be used if the channel did not
+ originally exist, therefore we can assume no one local is on the
+ channel anyway, and we don't exactly need for the user to see an
+ explicit +o for themselves
+
+ * doc/readme.gline: describe the syntax of the GLINE command
+
+ * doc/readme.jupe: update to reflect a couple of changes to JUPE
+
+ * ircd/gline.c: don't propagate local changes
+
+ * ircd/jupe.c: don't propagate local changes
+
+ * ircd/m_gline.c (mo_gline): force local flag when deactivating
+ glines with 0 lastmod
+
+ * ircd/gline.c (gline_deactivate): G-lines with zero lastmod time
+ are now removed instead of being deactivated
+
+ * ircd/m_gline.c (ms_gline): make G-lines of the form "GLINE *
+ -<mask>" be accepted
+
+ * ircd/channel.c (send_channel_modes): deal with one of the last
+ vestiges of sendbuf
+
+ * ircd/m_burst.c (ms_burst): debugged ban processing; removed
+ debugging hooks
+
+ * ircd/channel.c (modebuf_extract): remove debugging
+ sendto_opmask_butone calls
+
+2000-05-03 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/channel.c: support a couple of new flags to support using
+ mode_parse; fix some bugs with 0 struct ModeBuf *; implementation
+ of modebuf_extract to extract added flags for use by ms_burst
+
+ * include/channel.h: a couple of new flags to support using
+ mode_parse inside ms_burst
+
+ * ircd/m_burst.c (ms_burst): brand new implementation of BURST
+
+ * ircd/m_endburst.c: add loop to processing of end_of_burst to
+ free empty channels after the BURST is over.
+
+ * ircd/m_server.c: convert to use new send.c functions--I wanted
+ to rewrite it from scratch, but the logic's pretty complex; I may
+ still rewrite it, though...
+
+2000-05-02 Thomas Helvey <tomh@inxpress.net>
+
+ * ircd/ircd.c: fix broken header include ordering
+
+2000-05-02 Thomas Helvey <tomh@inxpress.net>
+
+ * ircd/IPcheck.c: cleanups for ZenShadow's cleanups
+ review emailed privately
+
+ * include/IPcheck.h: removed unneeded include
+
+2000-05-02 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/s_user.c (hunt_server): throw in a comment so I know what
+ the sendto_one is for
+
+ * include/querycmds.h (Count_unknownbecomesclient): convert to
+ sendto_opmask_butone
+
+ * ircd/send.c: start removing dead code
+
+ * include/send.h: start removing dead code
+
+ * ircd/m_rping.c: convert to sendcmdto_one / send_reply /
+ hunt_server_cmd
+
+ * ircd/m_rpong.c: convert to sendcmdto_one / send_reply
+
+2000-05-01 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/m_stats.c: convert to sendcmdto_one / send_reply
+
+ * ircd/m_kick.c: Completely reimplement m_kick
+
+ * ircd/channel.c: send_user_joins removed; it was dead code,
+ anyway...
+
+2000-05-01 Perry Lorier <isomer@coders.net>
+ * ircd/m_invite.c: Fix for the rest of m_invite.c, and again.
+ * ircd/channels.c: My fix for the part problem. Untested, probably
+ won't work. Can't be much worse than the current problem.
+ it'll either work or core, take your pick.
+
+
+2000-04-30 Perry Lorier <isomer@coders.net>
+ * config/config-sh.in: Fix for CONNEXIT
+ * ircd/s_{user,misc}.c: Fix for CONNEXIT
+ * ircd/m_invite.c: Fix for incorrectly numnickified invite.
+ (Kev: Want to come talk to me about this?)
+
+2000-04-30 Steven M. Doyle <steven@doyle.net>
+ * ircd/ircd.c
+ - general cleanups and readability enhancements
+ - rewrite of setuid/chroot code.
+ - server will no longer run as root
+ - -DPROFIL compile option removed
+ - Fixed IPcheck API calls
+
+ * config/config-sh.in
+ - Fixed up chroot compile options
+ - Added options for debug and profile compiles
+
+ * config/gen.ircd.Makefile
+ - Support for new debug/profile options
+
+ * ircd/Makefile.in
+ - Support for new debug/profile options
+
+ * ircd/ircd_signal.c
+ - Removed -DPROFIL
+
+ * include/IPcheck.h
+ - Removed old API prototypes, added new ones
+
+ * ircd/IPcheck.c
+ - Readability cleanups (well, I -think-...)
+ - Changed IPRegistryEntry.last_connect to a time_t. The previously
+ used unsigned short was probably causing interesting things after
+ a client had been connected longer than about 65,535 seconds...
+ - Removed old API functions.
+
+ * ircd/whocmds.c
+ - Removed IPcheck.h include
+
+ * Additionally modified IPcheck API calls in:
+ - ircd/m_nick.c
+ - ircd/m_auth.c
+ - ircd/s_bsd.c
+ - ircd/s_conf.c
+ - ircd/s_misc.c
+ - ircd/s_serv.c
+ - ircd/s_user.c
+
+
+2000-04-30 Perry Lorier <isomer@coders.net>
+ * ircd/s_bsd.c: Sigh. :)
+ * ircd/m_mode.c: fix for modeless channels by poptix.
+
+2000-04-29 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/m_join.c: reimplement JOIN in terms of struct JoinBuf
+
+ * ircd/channel.c (clean_channelname): make clean_channelname also
+ truncate long channel names
+
+2000-04-28 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/m_create.c: reimplement CREATE in terms of struct JoinBuf
+
+ * ircd/channel.c: implemented joinbuf_init, joinbuf_join,
+ joinbuf_flush
+
+ * include/channel.h: definitions and declarations for the struct
+ JoinBuf abstraction
+
+2000-04-29 Perry Lorier <isomer@coders.net>
+ * ircd/s_bsd.c: Ok, so I thought I compiled and tested this...
+
+2000-04-29 Perry Lorier <isomer@coders.net>
+ * ircd/s_bsd.c: Add debugging code to IPcheck
+
+2000-04-28 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * include/ircd_reply.h (SND_EXPLICIT): use instead of RPL_EXPLICIT
+
+ * ircd/ircd_reply.c (send_reply): use SND_EXPLICIT instead of
+ RPL_EXPLICIT
+
+ * ircd/m_userhost.c (m_userhost): add a dead code comment
+
+ * ircd/m_desynch.c: forgot one...
+
+ * ircd/m_rehash.c (mo_rehash): er, duplicates :)
+
+ * ircd/m_proto.c (proto_send_supported): just change a comment so
+ it doesn't show up in my scans
+
+ * ircd/ircd_reply.c (send_reply): fix a slight bug...
+
+ * ircd/s_numeric.c (do_numeric): use new sendcmdto_* functions,
+ kinda hackish...
+
+ * ircd/parse.c (parse_server): argument wrangling to make
+ processing in do_numeric a little easier to deal with
+
+ * ircd/s_serv.c (server_estab): SERVER should come from
+ acptr->serv->up, not &me
+
+ * ircd/m_lusers.c: accidentally left out sptr for a %C
+
+ * ircd/send.c: hack to support doing wallchops...
+
+ * ircd/m_whowas.c: convert to new send functions
+
+ * ircd/m_whois.c: convert to new send functions
+
+ * ircd/m_who.c: convert to new send functions
+
+ * ircd/m_wallops.c: convert to new send functions
+
+ * ircd/m_wallchops.c: convert to new send functions
+
+ * ircd/m_version.c: convert to new send functions
+
+ * ircd/m_userip.c: convert to new send functions
+
+ * ircd/m_userhost.c: convert to new send functions
+
+ * ircd/m_uping.c: convert to new send functions
+
+ * ircd/m_trace.c: convert to new send functions
+
+ * ircd/m_topic.c: convert to new send functions
+
+ * ircd/m_time.c: convert to new send functions
+
+ * ircd/m_squit.c: convert to new send functions
+
+ * ircd/m_silence.c: convert to new send functions
+
+ * ircd/m_settime.c: convert to new send functions
+
+ * ircd/m_restart.c: convert to new send functions
+
+ * ircd/m_rehash.c: convert to new send functions
+
+ * ircd/m_privmsg.c: convert to new send functions
+
+ * ircd/m_pong.c: convert to new send functions
+
+ * ircd/m_ping.c: convert to new send functions
+
+ * ircd/m_pass.c: convert to new send functions
+
+ * ircd/m_opmode.c: convert to new send functions
+
+ * ircd/m_oper.c: convert to new send functions
+
+ * ircd/m_notice.c: convert to new send functions
+
+ * ircd/m_nick.c: convert to new send functions
+
+ * ircd/m_names.c: convert to new send functions
+
+ * ircd/m_motd.c: convert to new send functions
+
+ * ircd/m_mode.c: convert to new send functions
+
+ * ircd/m_map.c: convert to new send functions
+
+ * ircd/m_lusers.c: convert to new send functions
+
+ * ircd/m_list.c: convert to new send functions
+
+ * ircd/m_links.c: convert to new send functions
+
+ * ircd/m_kill.c: convert to new send functions
+
+ * ircd/m_jupe.c: convert to new send functions
+
+ * ircd/m_invite.c: convert to new send functions
+
+ * ircd/m_info.c: convert to new send functions
+
+ * ircd/m_help.c: convert to new send functions
+
+ * ircd/m_gline.c: convert to new send functions
+
+ * ircd/m_error.c: convert to new send functions
+
+ * ircd/m_endburst.c: convert to new send functions
+
+ * ircd/m_die.c: convert to new send functions
+
+ * ircd/m_destruct.c: convert to new send functions
+
+ * ircd/m_defaults.c: convert to new send functions
+
+ * ircd/m_connect.c: convert to new send functions
+
+2000-04-28 Perry Lorier <isomer@coders.net>
+ * RELEASE.NOTES: Describe a few more undocumented features.
+ * config/config-sh.in: change the default paths for logging
+ and the recommended number of channels.
+ * include/supported.h: Rearrange slightly, added CHANTYPE's
+
+2000-04-27 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/m_close.c: convert to send_reply
+
+ * ircd/m_clearmode.c: convert to send_reply, sendcmdto_serv_butone
+
+ * ircd/m_away.c: convert to send_reply and sendcmdto_serv_butone
+
+ * ircd/m_admin.c: convert to send_reply and hunt_server_cmd
+
+ * ircd/s_user.c (hunt_server_cmd): new hunt_server replacement
+ that takes cmd and tok arguments, etc. NOTE: THIS IMPLEMENTATION
+ HAS A MAJOR HACK!!! The whole hunt_server architecture should be
+ carefully rethought...
+
+ * ircd/s_stats.c (hunt_stats): use new hunt_server_cmd
+
+ * include/s_user.h: hunt_server_cmd -- replacement for hunt_server
+
+ * ircd/s_misc.c: *sigh* 2.10.10 doesn't support squitting by
+ numeric nick; therefore, we have to use the server name
+
+ * ircd/m_squit.c (ms_squit): allow to squit by server numeric nick
+
+ * ircd/send.c: fix minor bugs
+
+ * ircd/s_user.c (check_target_limit): mark dead code so I filter
+ it when I grep
+
+ * ircd/s_serv.c (exit_new_server): mark dead code so I filter it
+ when I grep
+
+ * ircd/parse.c: mark dead code so I filter it when I grep
+
+ * ircd/map.c: mark dead code so I filter it when I grep
+
+ * ircd/ircd.c: mark dead code so I filter it when I grep
+
+ * ircd/ircd_relay.c: convert over to new sendcmdto_*, send_reply
+ functions
+
+ * ircd/channel.c: mark dead code so I filter it when I grep
+
+ * ircd/s_stats.c: use send_reply instead of sendto_one w/rpl_str;
+ hope I'm not stepping on toes...
+
+ * ircd/s_conf.c: more sendto_opmask_butone / send_reply
+ conversions; use ircd_snprintf in a couple of cases to negate the
+ possibility of buffer overflow
+
+2000-04-26 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/channel.c: convert as much as possible to new send
+ semantics
+
+ * ircd/send.c (sendcmdto_common_channels): fix a subtle bug --
+ test member->user->from->fd, not from->fd
+
+ * ircd/gline.c (gline_add): go ahead and add badchans; we just
+ won't look for them in m_gline; this way, they always work...
+
+ * ircd/jupe.c: use ircd_vsnprintf conversion specifiers
+
+ * ircd/gline.c: since write_log now uses ircd_vsnprintf, use
+ ircd_vsnprintf conversion specifiers
+
+ * ircd/support.c (write_log): use ircd_vsnprintf for write_log, so
+ I have my conversion specifiers
+
+ * ircd/gline.c (do_gline): use send_reply for ERR_YOUREBANNEDCREEP
+
+ * ircd/send.c (sendcmdto_flag_butone): explicitly send WALLOPS to
+ local users
+
+ * ircd/s_serv.c (exit_new_server): rewrite exit_new_server to be a
+ little less brain-dead
+
+ * ircd/s_misc.c: use sendcmdto_one, sendrawto_one, and send_reply
+
+ * ircd/s_debug.c: use send_reply with RPL_EXPLICIT for
+ RPL_STATSDEBUG
+
+ * ircd/res.c (cres_mem): use send_reply with RPL_EXPLICIT for
+ RPL_STATSDEBUG
+
+ * ircd/list.c (send_listinfo): use send_reply with RPL_EXPLICIT
+ for RPL_STATSDEBUG
+
+ * ircd/m_pong.c: use RPL_EXPLICIT for ERR_BADPING
+
+ * ircd/ircd.c: use RPL_EXPLICIT for ERR_BADPING
+
+ * ircd/s_user.c (register_user): use RPL_EXPLICIT for
+ ERR_INVALIDUSERNAME
+
+ * ircd/ircd_reply.c (send_reply): support RPL_EXPLICIT
+
+ * include/ircd_reply.h (RPL_EXPLICIT): somewhat of a hack to mark
+ a numeric as needing to use an explicit pattern, which will be the
+ first argument in the variable argument list
+
+ * ircd/s_user.c: use sendrawto_one instead of sendto_one to send
+ non-prefixed nospoof PING
+
+ * ircd/s_bsd.c: use sendrawto_one instead of sendto_one to send
+ non-prefixed SERVER login
+
+ * ircd/ircd.c (check_pings): fix last sendto_one calls (except for
+ a numeric usage further up)
+
+ * include/send.h: declare sendrawto_one
+
+ * ircd/send.c (sendrawto_one): new function to use ONLY for
+ non-prefixed commands, like PING to client, or PASS/SERVER on
+ server registration
+
+2000-04-25 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/ircd_snprintf.c (doprintf): implement %H for possible
+ future expansion (channel numerics?)
+
+ * include/ircd_snprintf.h: added documentation to # to explain use
+ with %C; added documentation for : to explain use with %C; added
+ documentation for %H for channels
+
+ * ircd/whocmds.c: use send_reply
+
+ * ircd/userload.c: use sendcmdto_one
+
+ * ircd/uping.c: use sendcmdto_one
+
+ * ircd/send.c: use new flags to %C format string; ':' prefixes
+ client name with a colon for local connects, '#' uses
+ nick!user@host form for local connects
+
+ * ircd/s_user.c: use send_reply, sendto_opmask_butone,
+ sendcmdto_one, sendcmdto_serv_butone, sendcmdto_flag_butone
+
+ * ircd/s_serv.c: use sendcmdto_one, sendto_opmask_butone
+
+ * ircd/s_bsd.c: use sendto_opmask_butone, send_reply,
+ sendcmdto_one
+
+ * ircd/s_auth.c: use sendto_opmask_butone
+
+ * ircd/res.c: use sendcmdto_one
+
+ * ircd/ircd_snprintf.c (doprintf): minor bug fixes and some
+ debugging assertions
+
+2000-04-24 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/support.c: dumpcore is no longer used, so get rid of it
+
+ * ircd/parse.c: use send_reply, sendcmdto_one
+
+ * ircd/map.c: use send_reply
+
+ * ircd/listener.c: use send_reply
+
+ * ircd/jupe.c: use sendto_opmask_butone, send_reply
+
+ * ircd/ircd_reply.c: use send_reply
+
+ * ircd/ircd.c: use sendto_opmask_butone
+
+ * ircd/gline.c: use sendto_opmask_butone, send_reply
+
+ * ircd/ircd_snprintf.c (doprintf): make it deal with incompletely
+ registered clients; make FLAG_ALT print nick!user@host; make
+ FLAG_COLON print :blah
+
+ * ircd/class.c (report_classes): use send_reply instead of
+ sendto_one
+
+ * ircd/hash.c (m_hash): replace sendto_one with sendcmdto_one
+
+ * ircd/IPcheck.c (ip_registry_connect_succeeded): replace
+ sendto_one with sendcmdto_one
+
+2000-04-21 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/send.c: clean up logic in sendcmdto_channel_butone; use
+ MyConnect() instead of IsServer() in sendcmdto_flag_butone; define
+ sendcmdto_match_butone
+
+ * include/send.h: declare sendcmdto_match_butone
+
+2000-04-20 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/jupe.c: update to use send_reply()
+
+ * ircd/gline.c: update to use send_reply()
+
+ * include/ircd_reply.h: declare send_reply
+
+ * ircd/ircd_reply.c (send_reply): send_error_to_client, but for
+ replies; uses ircd_snprintf
+
+ * ircd/send.c: added comments to redirect searchers to appropriate
+ sendcmdto_* function; moved new functions to end of file; added
+ explanatory comments; reordered arguments; defined new functions
+ mentioned below
+
+ * ircd/m_jupe.c: reorder arguments to sendcmdto_* functions
+
+ * ircd/m_gline.c: reorder arguments to sendcmdto_* functions
+
+ * ircd/jupe.c: reorder arguments to sendcmdto_* functions
+
+ * ircd/gline.c: reorder arguments to sendcmdto_* functions
+
+ * include/send.h: reorder arguments, add explanatory comments,
+ declare new functions sendcmdto_flag_butone, sendto_opmask_butone,
+ and vsendto_opmask_butone
+
+2000-04-19 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/send.c: define sendcmdto_channel_butone, wrote a simplified
+ vsendto_op_mask that uses '*' instead of the receiving client
+ nickname
+
+ * include/send.h: declare sendcmdto_channel_butone; takes a skip
+ argument that allows you to skip (or not to skip) deaf users,
+ users behind bursting servers, and non channel operators
+
2000-04-17 Kevin L. Mitchell <klmitch@mit.edu>
+ * ircd/send.c: new sendcmdto_channel_butserv -- note that old
+ sendto_channel_butserv has a subtle bug; also wrote
+ sendcmdto_common_channels.
+
+ * include/send.h: declare new sendcmdto_* functions
+
* ircd/jupe.c: support local deactivations of jupes
* ircd/gline.c: support local deactivations of glines
#
# ChangeLog for ircu2.10.11
#
-# $Id: ChangeLog,v 1.94 2000-04-17 19:01:35 kev Exp $
+# $Id: ChangeLog,v 1.152 2000-07-01 12:37:02 isomer Exp $
#
# Insert new changes at beginning of the change list.
#