lurc 0.0.5.3
~~~~~~~~~~~~
This update adds many incremental improvements to various features and
several important bugfixes as well as a theoretical security problem.

Upgrading is recommended.

There is now a doc directory, inside you'll find:

A howto to build lurc on solaris.
A howto to use SSL with lurc via stunnel.

There is now a slackbuild directory, inside you'll find a slackbuild for
making a slackware package for lurc.


New features:

/ignore now can ignore nickname changes, useful if someone is spamming /nick
in a channel and you can't do anything about it.

Dcc's will print to the current tab instead of the server tab.

Dcc's now can have verbosity shut off in options - this lets you decide if
you want to have the informative messages about dccs sent to your current
tab or if you want it shut off completely - the information will still be
viewable via the /dcc command and the dcc send/recieve windows.

Part messages are now supported by the client - doing /part #channel Message
will send a part message, and you can see the part messages others part
with.

Hikaru did a malloc() audit which exposed some bad error handling in the
client. Since there's no easy way to deal with malloc failing in various
weird situations, we've taken the high road of making the client simply die
horribly in the event of a malloc failure - this is simpler to code for, and
also prevents the possibility of a null pointer exploit.

mtu has included a slackbuild in the slackbuild directory. This will create
a package for slackware systems if you run it with the lurc-0.0.5.3.tar.bz2
file in that directory :)

Dcc's sends now can be explicitly told to bind to a single port. This is
useful for doing port forwarding with a router or unintelligent firewall -
or with stunnel.

Speaking of which, there is a HOWTO for using stunnel in the doc directory.
This will enable the use of SSL with lurc - and other irc clients.

Added support for modes q (~) and a (&) which are on some IRC servers.

Lurc now builds on Solaris. (Yay!) Read the HOWTO in doc/ for details.

Lurc now builds on cygwin, (Yay!) but doesn't work. (Boo!) We'd like some
help with this, please contact the developers (read AUTHORS for email
addresses) if you run windows XP/Vista, have cygwin installed, understand C,
and feel like helping.

Various errors which used to be reported to the server tab will now be
reported on the channel tab they are about.

Command and username completion now can be used at the same time - this lets
you do /me usern<tab> and get /ME username as a result for instance.

- BUGS FIXED SINCE 0.0.5.2:

#84 Joins never triggered any Tab Alert. Fixed this and added an all new and
improved logic on Tab Highlighting.
FIXED 4/9/08

#85 malloc()'s were not always checked for error conditions. Fixed behavior
now makes the client intentionally exit(255) upon encountering a failure.
This may have fixed a theoretical security problem.
FIXED 4/19/08

#86 User defined commands input box had a bug where it'd refuse to accept
input larger than 40 charachters long, and would in fact truncate longer
lines to that value.
FIXED 5/01/08

#87 /ping, /dns, and /whois replies do not print to the current selected
tab.
FIXED 8/11/08

#89 DCC sends do not work when using a proxy (ala stunnel)
FIXED 8/22/08

- NEW UNFIXED BUGS SINCE 0.0.5.2:
None. Isn't that nice?

lurc 0.0.5.2
~~~~~~~~~~~~
This update primarily addresses bugs found in the 0.0.5.1 release.
Since the NEWS file was unfortunately not shipped correctly in 0.0.5.1 it
has been included here as well.

- NEW IN 0.0.5.2:

NEWS file updated. We forgot to update this for the 0.0.5.1 release, sorry!

MANY, MANY source fixes that were pointed out by screwing around with
various gcc flags

'raw modes' are now the default and you cannot enable the original fancy
modes printing anymore since it was horribly buggy when dealing with
multiple modes. However, modes now print to the channel they were set if
possible.

configuration file reading was changed, now should make upgrades from
previous versions much more painless than before.

Ability to understand halfops has been added.

xpms in the user list have been removed, instead we now use the @ % and +
prefixes as is standard in just about every other client. However,
colorizations still remain for the text.

For those of you who have never seen these before,
@ users are ops, % users are halfops, and + users are voiced.

Automatic reconnect now waits 60 seconds between retries, and will inform
you of such. It will still retry infinitely however.


- BUGS FIXED SINCE 0.0.5.1:
#72 Half ops are not known to exist by the client, so will cause various
silly malfunctions on irc servers where they appear: the user list will have
the nickname prefixed with a %, and tab nickname completion will prefix the
nickname with a % as well. If someone loses their halfop status the client
will become confused and wind up having a stale entry in the user list. A
workaround for now is to use /names which will update the list manually,
however obviously this isn't a fun problem.
FIXED 2/28/08

#73 The notify widget can indeed be set to zero, which will cause an abort()
crash. Users of 0.0.5.1 can workaround this problem by setting the
notification timer to zero, which will disable notifications.
FIXED 3/1/08

#75 with paned userlist enabled, the show/hide userlist button malfunctions
reproducably. Likely this feature (for the PANED userlist) will be removed
as the current implementation is a painfully stupid hack.
FIXED 3/05/08
The new implimentation literally hides the user list widget. Imperfect
solution, but less hacky than the original, which simply moved the scroll
bar around and did not work correctly if your screen was large enough.

#76 cfg handling does not initialize preferences correctly, this would only
affect you if you were upgrading from a previous version and new options
appeared.
FIXED 3/05/08

#74 With reconnects enabled, the client often can wind up reconnecting both
too fast and infinitely. Client now will wait 60 seconds before attempting
to reconnect to the irc server, which should be long enough that allowing it
to infinitely reconnect should not be a problem.
FIXED 3/10/08

#79 login (real name) was not checked for color codes before being sent.
FIXED 3/21/08

#80 kill text event message gave totally bogus information when you were
killed by someone. Now gives full path and reason.
FIXED 3/24/08

#81 Serverlist and ignore cfg loaders were incredibly dumb and would tend to
enjoy eating peoples cfg files if they did not find an item they were
looking for in the cfg, this usually would be encountered when someone
attempted upgrading and we had added something to the format.
FIXED 3/30/08
The cfg loaders however do not understand out of order config files, this is
TODO #24.

#82 Depending on your luck, using the /server command would sometimes use
stale connection data from the previous attempt using the menus. Now
wipes out any connection details before starting a connection.
FIXED 4/2/08

#83 boolean/numbered cfgs blow away their initialized settings
FIXED 4/4/08


- NEW UNFIXED BUGS SINCE 0.0.5.1:
#77 The special recognition of modes (eg, with raw modes display OFF) works
incredibly poorly - multiple modes being set at once are not recognized,
modes the client does not know internally are assumed to be for users, etc.
This special handling code is very likely to be destroyed. Raw modes have
been enabled per default, likely they will eventually become the only
choice.
CODE REMOVED 3/10/08

#78 Related to bug 77; The user list display for users in a channel can only
show ONE type of mode enabled at a time (ex: op, halfop, voice) whereas in
reality often you can be set voice&ops. May not be fixable. If things get
out of sync, use /names to refresh the list.
UNFIXABLE 3/10/08 due to irc protocol limitations.


What follows is what SHOULD have been the 0.0.5.1 NEWS file. Sorry about
that folks.


- NEW IN 0.0.5.1:
Build system has been changed to cmake. Read details of how to use it in
INSTALL

MANY bugs were fixed in this version.

New feature: If you right click the mouse on tabs, you will now get a
shortcut popup which will let you quickly navigate between the tabs.

- BUGS FIXED SINCE 0.0.5:

#62 The /help command won't scroll the buffer.
Was caused by a silly bug in the scrolling handling in printtextraw.
Likely was causing other problems.
FIXED 11/20/07

#61 Too much input from an ircd will occasionally cause broken lines to be
printed to the screen. An example that will cause this is to go to
windows->channel list window and refresh the list. On an ircd with enough
channels, this will cause broken input.
Was caused by nonsense code in read_data pointed out by phrosty.
FIXED 11/25/07

#65 %C1,1 and %C0,0 are forced internally to use different colors. Likely an
attempted feature to make it easy to read, but this is not what people
expect the client to do.
FIXED 1/19/08

#66 /me done by other people which should have a highlight color assigned to
their nickname is not done correctly. Tab coloring works however.
FIXED 1/19/08

#63 After enabling/disabling show server tabs in their own message
tab/window, the client will need a restart before the change fully takes
effect. This was documented using the noapply popup in settings.c like the
other similar cases.
FIXED 1/19/08

#67 Closing/disconnecting from a server/reconnecting to a server/connecting
to a different server with server messages tab open causes the messages to
show up in a random window, if at all, and sometimes doesn't print them
until you start talking on a channel.
FIXED 1/28/08

#68 doing /motd after being connected confuses the client into resending
authentication commands.
FIXED 1/30/08

#64 Input from the ircd which has data that *looks* like control codes will
be mangled by the parser.
FIXED 1/30/08

#69 Right click menu for tab navigation sometimes displays bogus
information.
FIXED 1/30/08

#71 Notices would sometimes be printed to entirely unrelated tabs.
FIXED 2/10/08

#70 Reconnecting to a server manually causes an extra session to be
generated.
FIXED 2/10/08

- NEW UNFIXED BUGS SINCE 0.0.5:
None.

lurc 0.0.5
~~~~~~~~~~
This update primarily addresses bugs found in the 0.0.4 release.


- NEW IN 0.0.5:
Tab completion now works on the end as well as the beginning of a line.


- BUGS FIXED SINCE 0.0.4:
#59
Formatting bug in display_event causing check_special_chars to make silly
errors appear on the display; A good example is typing in a % on an
otherwise empty line prints a %O when in a channel/dialog.
FIXED 11/05/07

#60
If 'Show server messages in their own tab/window' is DISABLED, autoconnect
will create an extra session tab for each server you autoconnect to.
FIXED 11/05/07

#58 Giving the client too much I/O will freeze up the GUI - client cannot
even respond to signals or the close button. Seems to be related to the
gtk_text_insert function, since disabling all calls to that make it work
perfectly - however, reprioritizing it to a low value had no effect. Note to
devs: Xchat has this same problem, tested 1.8.11 and 2.6.6. Note to users:
This problem has only been seen when testing the client on a tool designed
to overload the client on purpose. You will likely never see this problem in
the wild - though we'd like to hear about it if you *do* - If the client
does misbehave in this way to close it you'll have to either killall -9 lurc
from a command line or if you ran it from a console you can ctrl-c it from
there.
FIXED 11/18/07


- NEW BUGS SINCE 0.0.4:

#61 Too much input from an ircd will occasionally cause broken lines to be
printed to the screen. An example that will cause this is to go to
windows->channel list window and refresh the list. On an ircd with enough
channels, this will cause broken input. Note to devs: This is caused by recv
in read_data not understanding how to deal with insufficient input. Note to
users: This is not a new bug and has been with us since the first release,
we're just at the point where we understand it now.
lurc NEWS of previous releases

lurc 0.0.4
~~~~~~~~~~
- NEW IN 0.0.4:

IF YOU ARE UPGRADING FROM A PREVIOUS VERSION, RUNNING 0.0.4 WILL DESTROY
YOUR IRC SERVER LIST BECAUSE OF A FORMAT CHANGE. This is unfortunate but I
was not able to figure out a way to prevent this misbehavior. Your other
configuration files will not be affected by this change, but new
configuration entries such as the web browser will be unset, rather than
having a default setting.

Control codes have had ascii number translation removed as it was buggy,
prone to exploitation, and halfway broken anyway. However, user commands,
quit, and away strings now work with control codes.

Event strings can no longer be customized. It is planned to re-implement
this later.

The highlighting strings configured in Setup are no longer comma-separated,
but space-separated. This improved whitespace handling, although a "foo"
alert string will still be matched by "bazfoobar".

Tab highlighting behaves differently. The behaviour is now as
described in README.

Text rendering has been slightly changed, you may notice each tab/window
opened now starts with a blank line and the last line of the window now has
text in it. This unfortunately has caused a new bug, #55 - /exec and /dns
will not return output from the commands executed with timestamping inserted
correctly, though /exec -o works.

The mouse wheel can now be used to scroll inside of the window instead of
having to click on the vertical scroll bar to move the text around.

The first mouse button can now be used to click on url (or url like strings)
to open a web browser. The setting can be disabled if you don't like this
ability, and the browser can be set to any graphical browser you'd like. The
default is firefox.

autoidentify has been replaced with auto connect commands; Simply insert
whatever commands you would like to have run upon connecting to the irc
server. Note that to autojoin channels you should sill use the Channel(s)
input box. Inserting a /join command into the autoconnect commands *will*
work but will not ensure that you have identified before you join those
channels.

Using the cursors to browse through the history has become better defined and
safer. If you move up without having sent what's in the input line at that
moment, it's saved to the history, and is accessible there as the last entry.
This works whenever you are at the very bottom of the history, where you get
either by moving all the way down or after sending any non-empty line.
Also, if the history buffer is filled up, the browsing won't wrap anymore, but
going up stops at the top and going down stops at the bottom.

If you enable the new option 'Show server messages in their own tab/window'
after restarting, the client will have a separate tab for each irc server
just used for recieving server messages. If you choose to close this tab
without leaving the irc server, note that the client will not recreate it,
but will instead choose one of the other still open tabs for that irc server
to send the message to.

- BUGS FIXED SINCE 0.0.3.2:

#52 /away would badly malfunction if the away reason entered was more than
119 bytes.

#53 autoswitching to a different nickname upon connection to an irc server
caused inconsistent and confusing handling of the login message.

#57 Giving the client too much I/O will crash the client with a
segementation fault due to *HUNDREDS* of attempted calls to read_data
simultaneously.

#54 pressing the up cursor will destroy all text currently entered into the
input box. Also, once the history has been filled, it will never stop at the
top or bottom while walking through it, but wrap around instead, leaving
the user with no clue where it begins and ends.

- NEW BUGS SINCE 0.0.3.2:

#58 Giving the client too much I/O will freeze up the GUI - client cannot
even respond to signals or the close button. Seems to be related to the
gtk_text_insert function, since disabling all calls to that make it work
perfectly - however, reprioritizing it to a low value had no effect. Note to
devs: Xchat has this same problem, tested 1.8.11 and 2.6.6. Note to users:
This problem has only been seen when testing the client on a tool designed
to overload the client on purpose. You will likely never see this problem in
the wild - though we'd like to hear about it if you *do* - If the client
does misbehave in this way to close it you'll have to either killall -9 lurc
from a command line or if you ran it from a console you can ctrl-c it from there.

#55 Enhancing the text buffer broke /dns and /exec (NOT /exec -o) text
printing; the time stamp currently does not print for these.

#51 quit command or closing the client do not always actually send the quit
message.
