mIRC Home    About    Download    Register    News    Help

Print Thread
Unnecessary Linesep between Notices #267879 12/10/20 01:07 PM
Joined: Feb 2003
Posts: 2,711
Raccoon Online OP
Hoopy frood
OP Online
Hoopy frood
Joined: Feb 2003
Posts: 2,711
Long-time annoyance, but I'm of the mind that everyone agrees.

Can we please remove the linesep from between multiple sequential Notices within the Status window?
This will require remembering that the previous line was a Notice and that a linesep should be added when the next line is not a Notice.

Currently:

[Linked Image from i.imgur.com]

Ideally:

[Linked Image from i.imgur.com]


Well. At least I won lunch.
Good philosophy, see good in bad, I like!
Re: Unnecessary Linesep between Notices [Re: Raccoon] #267880 12/10/20 01:25 PM
Joined: Jul 2006
Posts: 3,729
W
Wims Offline
Hoopy frood
Offline
Hoopy frood
W
Joined: Jul 2006
Posts: 3,729
mIRC could easily fail in looking for current notice line in the window because a script echoed a line between the two fast notice, possibly a line that has the format of a mIRC's notice.
The scripting language was created for this, use it.
Regardless, I think most people annoyed by the linesep, myself included, have linesep = $null in options.


Looking for a good help channel about mIRC? Check #mircscripting @ irc.swiftirc.net
Re: Unnecessary Linesep between Notices [Re: Raccoon] #267881 12/10/20 05:56 PM
Joined: Jan 2012
Posts: 62
Epic Offline
Babel fish
Offline
Babel fish
Joined: Jan 2012
Posts: 62
If I understand you correctly, you do not like the set "" separator between lines in certain messages with information, but at the same time, in all other windows and messages, it must be present to separate lines of text.
In this case, with all the capabilities of the user when working with the client, I see only one solution, this is to disable the separator in the mIRC options: Other -> Line separator -> (leave the field blank)

And for the necessary places and windows, create text event handlers in the scripts where you will need to add a line separator. For instance:
Code
on *:TEXT:*:#: .echo $chan $chr(45)
on *:TEXT:*:?: .echo $nick $chr(160)
on *:NOTICE:*:?: .echo $chan $chr(8210)

And so on for all types of messages...

Perhaps this option will suit you and will help you customize the display of messages in the desired form.

Re: Unnecessary Linesep between Notices [Re: Raccoon] #267885 13/10/20 08:26 PM
Joined: Jan 2012
Posts: 62
Epic Offline
Babel fish
Offline
Babel fish
Joined: Jan 2012
Posts: 62

Another one option is to highlight specific service nicknames that send notices. For such messages, do not make a separator between the lines, but for all other messages do:
Code
on *:NOTICE:*:?:{
  if (!$count($nick,NickServ,ChanServ,MemoServ,BotServ,HostServ,OperServ)) { .echo $chan $chr(45) }
}

And you can even catch notification lines, start and end, to stop setting the line separator:
Code
on *:NOTICE:*:?:{
  if ($count($nick,NickServ,ChanServ,MemoServ,BotServ,HostServ,OperServ)) {
    if (NickServ Help isin $strip($1-)) { .hadd -m sep stop 1 }
    if (End of Help isin $strip($1-)) { if ($hget(sep,stop)) .hdel -sw sep stop }
  }
  if (!$hget(sep,stop)) { .echo -s $chr(45) }
}

Or even this option, perhaps the most suitable for your question:
Code
on ^*:NOTICE:*:?:{
  if ($istok(NickServ ChanServ MemoServ BotServ HostServ OperServ,$nick,32)) {
    if (NickServ Help isin $strip($1-)) { .echo -s $chr(45) | .echo -st $+(05,$chr(45),$nick,$chr(45)) $v2 | haltdef }
    if (End of Help isin $strip($1-)) { .echo -st $+(05,$chr(45),$nick,$chr(45)) $v2 | .echo -s $chr(45) | haltdef }
  }
}

It's can also be done for "WHOIS" messages if needed.

Last edited by Epic; 13/10/20 10:27 PM.
Re: Unnecessary Linesep between Notices [Re: Epic] #267886 13/10/20 09:39 PM
Joined: Jan 2004
Posts: 1,437
maroon Offline
Hoopy frood
Offline
Hoopy frood
Joined: Jan 2004
Posts: 1,437
I've deleted the linesep character, so this issue won't affect me. However, there's a larger grab-bag of things currently using the linesep, so if you delete it so you can selectively add it back in, you'd also need to trap other things, including DCC SEND/GET FAIL/COMPLETE, blue scripting errors, identifier warnings, ping/pong, ctcp, etc.

Also, while your usage of $count will work almost all the time, it's possible for a false match if the nick is asdfBotServ etc. A more precise way is

$istok(NickServ ChanServ MemoServ BotServ HostServ OperServ,$nick,32)

Re: Unnecessary Linesep between Notices [Re: Raccoon] #267921 19/10/20 08:25 AM
Joined: Dec 2002
Posts: 4,841
Khaled Offline
Hoopy frood
Offline
Hoopy frood
Joined: Dec 2002
Posts: 4,841
Quote
Can we please remove the linesep from between multiple sequential Notices within the Status window?
This will require remembering that the previous line was a Notice and that a linesep should be added when the next line is not a Notice.

I do believe you've requested this before :-]

Alas, it is not as simple as it sounds.

There are currently 500+ calls to the linesep routine to print a linesep to a window, called by different features, eg. events, numerics, commands, identifiers, error messages, etc. Some of these calls are context-aware, eg. some numerics can appear both in groups and alone and need to be surrounded by lineseps in both cases.

There are 1000+ calls to the routine that prints a line to a window, without lineseps, and with no awareness of lineseps.

The only practical way to implement this, that I can see, is to continue to have a linesep printed after each notice but if the next added line is a notice from the same user, to insert the new notice before the linesep at the bottom. This will essentially group all consecutive notices from the same user together, even if they are replies to several different requests. This will also be backward-compatible with all other features that have no awareness of lineseps.

I have tested this out on different networks, eg. GameSurge sends the MOTD as notices, and, to be honest, I found it harder to read multiple long notices that are stuck together. But it can improve the readiblity of eg. /nickserv replies.

There is no way to use lineseps to group separate /nickserv replies without scanning for words that demarcate the beginning and ending of a group of messages. As I have mentioned before, I am no longer doing this because these words vary across ircds, networks, and languages and are not a reliable basis for changing client behaviour.

Re: Unnecessary Linesep between Notices [Re: Khaled] #268044 09/11/20 03:28 AM
Joined: Feb 2003
Posts: 2,711
Raccoon Online OP
Hoopy frood
OP Online
Hoopy frood
Joined: Feb 2003
Posts: 2,711

<3

Thanks Khaled!

27.Changed how notices are displayed so that consecutive notices from the same user are now grouped together.


Well. At least I won lunch.
Good philosophy, see good in bad, I like!
Re: Unnecessary Linesep between Notices [Re: Khaled] #268121 21/11/20 04:45 PM
Joined: Dec 2002
Posts: 2,022
R
RoCk Offline
Hoopy frood
Offline
Hoopy frood
R
Joined: Dec 2002
Posts: 2,022
This change seems to have effected channel messages by adding line separators to only my channel messages, and not others. This happens regardless of the spacing setting. Actions don't seem to be effected. Also this...

[09:56] * Now talking in #chan
-
[09:56] * Topic is 'Topic'
-
[09:56] * Set by RoCk on Sat Nov 21 09:54:28 2020
-
[09:56] * ChanServ sets mode: +o r0ck
-
[09:57] * r0ck is now known as RoCk

Re: Unnecessary Linesep between Notices [Re: RoCk] #268122 21/11/20 08:51 PM
Joined: Dec 2002
Posts: 4,841
Khaled Offline
Hoopy frood
Offline
Hoopy frood
Joined: Dec 2002
Posts: 4,841
Thanks this is actually due to a different change where I was trying to standardize the way separators are used across routines. It looks like this won't work in many contexts, so I will be reverting the extra separator change in the next beta.