/aline -nl switch updates line when it shouldn't - 03/08/05 11:00 PM
[Note: this also applies to /iline, because they share the switch and the event occurs for both commands]
Bug:
The -n switch for the listbox will stop a line from being added, but it will not stop a line from being recoloured. This is contrary to the same -n switch applied to the buffer (not the listbox). This in itself is not such a big deal. The problem lies in _when_ the listbox is updated... As you will see, the listbox line only changes colours when the window is unfocused then refocused later on.
Reproducing the bug....
1. Starting conditions:
Create a window and aline hello to both the listbox and the buffer:
//window -el20 @test | aline 1 @test hello | aline -l 1 @test hello
2. In the @window's editbox, try to /aline -n:
//aline -n 4 @test hello | aline -nl 4 @test hello
You'll notice at this point, no colours have changed.
3. Watch the colour change:
Now, unfocus the window by clicking on another window, and then refocus the @window
You will now see that from the same command, the buffer line is unchanged, but the listbos line has changed colours.
Discussion:
mIRC mentions in the help that it will prevent a line from being 'added' if it doesn't exist. It does not, however, say anything about changing colours. A bit ambiguous here, but ok. That's fine. As I have mentioned, the fact that the colour is able to change is fine with me. The real problem lies in:
a) the discrepency between the switch used in the buffer and the listbox
b) the time in which the colour change takes place
Solutions:
Besides fixing the timing issue of when the colour is updated [if at all], the issue of "should the colour be updated" would have to be addressed. It's either:
a) the buffer /aline is the right one, and the colour should not change (leave that functionality to /cline)
- or -
b) the colour should be changeable by using /aline -n in both the listbox AND the buffer (this gives some functional advantages like not having to check if a line exists before deciding if you only need a /cline or if you need to /aline it altogether). If this were to be done, then the timing issue of when the colour changes would need to be fixed in the listbox (and the buffer).
DONE.
Bug:
The -n switch for the listbox will stop a line from being added, but it will not stop a line from being recoloured. This is contrary to the same -n switch applied to the buffer (not the listbox). This in itself is not such a big deal. The problem lies in _when_ the listbox is updated... As you will see, the listbox line only changes colours when the window is unfocused then refocused later on.
Reproducing the bug....
1. Starting conditions:
Create a window and aline hello to both the listbox and the buffer:
//window -el20 @test | aline 1 @test hello | aline -l 1 @test hello
2. In the @window's editbox, try to /aline -n:
//aline -n 4 @test hello | aline -nl 4 @test hello
You'll notice at this point, no colours have changed.
3. Watch the colour change:
Now, unfocus the window by clicking on another window, and then refocus the @window
You will now see that from the same command, the buffer line is unchanged, but the listbos line has changed colours.
Discussion:
mIRC mentions in the help that it will prevent a line from being 'added' if it doesn't exist. It does not, however, say anything about changing colours. A bit ambiguous here, but ok. That's fine. As I have mentioned, the fact that the colour is able to change is fine with me. The real problem lies in:
a) the discrepency between the switch used in the buffer and the listbox
b) the time in which the colour change takes place
Solutions:
Besides fixing the timing issue of when the colour is updated [if at all], the issue of "should the colour be updated" would have to be addressed. It's either:
a) the buffer /aline is the right one, and the colour should not change (leave that functionality to /cline)
- or -
b) the colour should be changeable by using /aline -n in both the listbox AND the buffer (this gives some functional advantages like not having to check if a line exists before deciding if you only need a /cline or if you need to /aline it altogether). If this were to be done, then the timing issue of when the colour changes would need to be fixed in the listbox (and the buffer).
DONE.