Ask hop!
Edition 8 - Mar 30, 2002
Question one, from Mark Walburn
-------------------------------
[Mark is using EPIC4-1.1.2 with Third Eye (TE). He has /DCC RESUME set up
correctly.]
> I'm trying to simply resume a file transfer via DCC and am running
> into problems. [...] My friend sends me something:
>
> DCC Send request received from risc[~risc@ocmax1-162.dialup.optusnet.com.au]
> test.txt[103596032].
> DCC GET connection to risc[198.142.33.162] established.
>
> Then we cancel it. And he re-sends it.
>
> DCC Send request received from risc[~risc@ocmax1-162.dialup.optusnet.com.au]
> test.txt[103596032].
> Renaming test.txt to test.txt.0
>
> I dont know what is causing it to rename.
Your script is causing the /DCC RENAME. This causes /DCC RESUME to break:
> But I proceed to type: /dcc resume risc test.txt
>
> DCC RESUME: Cannot use DCC RESUME if the file doesnt exist. [test.txt|No
> such file or directory]
Unfortunately, at this point, it's too late. You cannot /DCC RESUME a file
after it has been /DCC RENAMEd; you should look at the script and see if it
has some way to turn off auto-rename. You should then be able to /DCC RESUME.
Question two, from Waes Bruno
-----------------------------
> Is it possible to see the realtime speed of a dcc get? When i do
> /DCC LIST I see the speed of DCC SENDs but not for DCC GETs. I know
> that it displays the speed when it is finished, but I want to get the
> speed while it is still in progress.
>
> Is there a way to tell the kb/s while the get is still going, i know that it
> is displayed when finished, but with a long get i would like to see it in
> realtime.
This was due to a bug, which I fixed in commit #230! The fix will be
included in the next production release of EPIC, or if you're not interested
in waiting that long, you can cvs update to get the fix right now! =)
Or you can hand-apply this diff:
diff -u epic4/source/dcc.c:1.9 epic4/source/dcc.c:1.10
--- epic4/source/dcc.c:1.9 Mon Mar 11 12:39:14 2002
+++ epic4/source/dcc.c Sat Mar 30 21:57:19 2002
@@ -1355,7 +1355,7 @@
/*
* Figure out something sane for the xfer speed.
*/
- if (Client->bytes_sent)
+ if (act_sent)
{
strlcpy(speed, calc_speed(act_sent,
Client->starttime, get_time(NULL)), 9);
Question three, from Juanii
---------------------------
> It would be great to have a function to rewind the pointer on an opened
> file to its beginning (or even better, a given amount of bytes forwards
> or backwards), similar to fseek on c.
The $fseek() function was indeed added to EPIC4 late last year, and it is
included in EPIC4-1.1.3. It works like this:
if (fseek(<fd> <numbytes> <whence>)) {
echo Error occured!
}
Where <fd> is the value that was previously returned by $open(), and
<numbytes> is a 31 bit signed integer that represents the number of bytes
to move, and <whence> is a string that tells EPIC how to interpret <numbytes>
If <whence> is Then the file pointer is set to
-------------- ----------------------------------------
SET <numbytes> from the beginning of the file
CUR <numbytes> from the current location.
END <numbytes> from the end of the file.
If <numbytes> is positive, then it goes forward (towards the end of file);
if <numbytes> is negative, then it goes backwards (towards the start of file).
You are permitted to set the file pointer past the end of file -- if you
write to a location that is past the end of the file, then the end of the file
will be moved to the new file pointer -- this will increase the size of the
file! You are usually not permitted to set the file pointer before the
start of the file.
<numbytes> can't be greater than 2GB, even if your operating system supports
larger files. This is a limitation of the fseek(3) interface, so it is not
my fault.
If anything bad happens, the return value is -1 and $error(<fd>) will return 1.
Question four, from Tomas Lund
------------------------------
[EPIC gives the following error...]
> Doing /QUOTE SERVER is not permitted. Use the client's built in command
> instead.
>
> What is the built in command to send the text "SERVER" to the server?
> doing "/quote server" has nothing to do with /server... i need this to
> talk to a bouncer..
Unfortunately, there are two facets to the answer to this question. EPIC
is not designed to support bouncers, and so in some cases, such as this,
EPIC will not play nice with the bouncer you want to use. It is hoped that
in future versions of EPIC, we will be able to collaberate with the bouncer
authors and try to work out something where EPIC can play nice with bouncers.
The reason why EPIC doesn't let you use /QUOTE SERVER is because the IRC
protocol does not allow client connections to send the SERVER protocol
message. I understand that you do not want to send it to the server, but
EPIC doesn't know this, so it won't let you do it. Again, I apologize for
this inconvenience. You can always edit the 'rfc1459' struct array variable
at the bottom of parse.c, changing this line
{ "SERVER", NULL, NULL, PROTO_NOQUOTE },
to look like this:
{ "SERVER", NULL, NULL, 0 },
then you will be able to do /QUOTE SERVER.
Question five, from Sander Smeenk
---------------------------------
> I noticed epic4 doesn't accept characters with the high bit set any more.
> It used to work, but somehow it stopped working after a couple of updates
> to the Debian package. I was wondering if you knew what could be the
> cause of this.
In general, you can fix this with two additions to your ~/.ircrc :
set eight_bit ON
set high_bit_escape 0
This is documented in the 'doc/outputhelp' file that comes with EPIC, which
discusses how to configure epic (and other programs) to work correctly with
eight bit characters, colors, and so forth.
Question six, from Michael
--------------------------
> Could you tell me where can I obtain the newest ipv6 patch for EPIC4-1.1.1 ?
The IPv6 patches for EPIC4 are maintained by a third party. The last update
that I ever saw of the IPv6 patches was for EPIC4-1.1.2, and were contributed
by Guus Sliepen <guus@sliepen.warande.net>. I have made the patch available
at:
http://www.epicsol.org/jnelson/ask-hop/epic4-1.1.2-ipv6.diff
It is *of course* available with absolutely no warranty or support from me
or probably anybody else. If you use it, you are on your own.
I did it! I answered all the questions! The queue is empty -- that means
you need to send me more questions so I can put out another edition! =)
If you have any tough questions you want answered, email me at
ask-hop@epicsol.org!
Jeremy (hop)
-------------------------------------------------------------------------------
Ask hop!
Edition 7 - Mar 28, 2002
Another day, another column! I'm going to try to answer some more of the
backlog of wonderful questions that you all have sent me! Keep the questions
coming, and as always, thank you so much for your patience in waiting for
me to answer them! =)
Question one, from Walt
-----------------------
> Is there anyway to somehow remotely control or issue commands/text
> to epic?
>
> The exact scenario I'm looking at: I use XQF for Q3 and would like to
> shoot a message to my irc session when I start a game that I'm playing and
> on what server.
I'm not familiar with XQF, but the thing that comes directly to my mind is
that if you can open up an internet socket, you could have your EPIC client
open up a listening socket (with $listen(<portnum>) and then use /on dcc_raw
to wait for and parse any incoming messages sent to it. This would be
very effective for general purpose internet access to your client. You should
consider some form of access control, however.
Does anyone else have more experience with this scenario and can offer some
helpful tips?
Question two, from Jesse Stanley
--------------------------------
> I was wonder if you could add Krono Irc network to the server list on
> your client?
Unfortunately, for logistical reasons, I cannot add any more irc servers
to the default list for EPIC. I list the most common irc networks in the
default list only because it cuts down on the number of people who ask
questions trying to figure out how to get onto a big irc network.
However, perhaps someone might be interested in compiling a "comprehensive"
server list, using the new server-group server file format (see the
updates file at http://www.epicsol.org/UPDATES for info) that lists all
of the known networks out there and their servers! This would be a worth-
while and beneficial project to the EPIC community.
Question three, from Michael Jager
----------------------------------
> Just wondering how to make /window level actually work. When I do
> /window level actions,public,crap
> I get [11:22] ### Window level is CRAP PUBLIC ACTIONS, but all messages
> still show up in that window (even though I have done /window level all in
> another window).
>
> The help says I need to use the ON command, but I'm not sure how.
It might help to explain how epic decides what in window to put output:
Each line of output contains the following information:
- The text to be output
- The "target" (nickname or channel) that the output applies to
- The "output level" of the output (CRAP, PUBLIC, ACTIONS, etc)
- The "from server" that the output was generated from.
When EPIC wants to output a line of text, it uses the following rules:
Did the user ask for a specific window?
---------------------------------------
1) If you use /xecho -w, or /xeval -w, it goes to that window. THIS IS
THE ONE AND ONLY WAY THAT YOU CAN GET OUTPUT TO GO TO A WINDOW OTHER
THAN A WINDOW THAT IS CONNECTED TO THE "SERVER".
Try to find a "target window" connected to "from server"
--------------------------------------------------------
2) For /XECHO -C, the current window, but only if the current window is
connected to the "from server"!
3) For nickname targets, the /query window for the nick.
4) For channels, the window where it is the current channel.
5) For nicks or channels, the window where it is in the "nick list"
(/WINDOW ADD and /WINDOW DELETE).
6) For channels, the channel's window (the last window where the channel
was the current channel)
Try to find an "output level window" connected to "from server"
---------------------------------------------------------------
7) The window that owns the "lastlog level" we're outputting to.
Try to find any window connected to "from server"
-------------------------------------------------
8) The output goes to the current window, but only if the current window
is connected to "from server"
9) The output goes to the first window (visible windows are preferred)
EPIC can find that is connected to the "from server"
When all else fails, output to the current window
-------------------------------------------------
10) If no windows can be found that are connected to the "from server",
then the output goes to the current window as the absolute last resort.
Now, with that being explained, to answer your question, the reason why
you're not seeing the behavior you expect is because EPIC does not refer
to the window levels until after it has failed to find a "target window".
You can use the /XECHO -W command to send output to a specific window.
For example, to set up an "ACTION" window where all actions everywhere go:
/window new name actions level actions
/on ^action * {xecho -w actions ($1) $0 $2-}
This will send all actions on all servers on all channels to this one
window. This is just given as an example. Tweak it to your needs!
Well, I only answered three questions this time because that last one took
a while to explain. I still have 7 questions left in the queue, and I hope
to get to them as soon as I can. Please keep tuned for another episode of
Ask Hop!
If you have any tough questions you want answered, email me at
ask-hop@epicsol.org!
Jeremy (hop)
-------------------------------------------------------------------------------
Ask hop!
Edition 6 - Mar 27, 2002
I've been a bad boy and haven't answered any emails recently! I apologize
to all of you and thank you for your gracious patience with me. Here are
the answers to your questions! Please keep in mind that I sometimes edit
the questions for spelling, clarity, or brevity. I always keep the essence
of the question there, though!
Note one, from Rodrigo Curado
-----------------------------
> After talking with CrazyEddy@EPIC he remember me to rebind the ^V to
> "quote_char" instead of "reverse". After doing that I can, now, have the
> usual behaviour like in vim, bash, etc.
Thank you very much for the heads up, Rodrigo! If you have any problems
with QUOTE_CHAR, let me know...
Note two, from John Saylor
--------------------------
> I'm attaching the urlgrab script I found and use to this message. I
> haven't found the nick tab completion script, but it's on my 'todo'
> list.
I put this script up at http://www.epicsol.org/~jnelson/ask-hop/urlgrab
It was written by Acapnotic <kevint@poboxes.com>, and I didn't test it
myself -- it is available *as is* with no support from me. But if you do
have any problems, let me or the author know! Thanks!
Question three, from someone whose name I misplaced. :(
--------------------------------------------------------
> I have a custom made bot written in perl and it runs with ircII 2.2.9,
> and I would like to upgrade it to epic but epic is missing the -e option
> which I need.
Much in keeping with EPIC's philosophy of deferring specialized tasks to
other general purpose tools that do the task better, EPIC doesn't support
the "expect" mode (-e command line option) any longer. If you install the
ExpectPerl module (http://sourceforge.net/projects/expectperl), then you
should be able to have your perl script launch epic (don't forget to use
the -d command line option) instead of the other way around. If you have
any questions, feel free to ask!
Question four, from someone who didn't give their name.
-------------------------------------------------------
>This is not a question. It is a bug (?) report.
>I'm using epic 4.1.1 alpha, but this was the case for previous versions tooy.
>
>/stats q gives:
>*** Q:Reserved:for:operators:*:IRCop
>*** Q:Reserved:due:to:abuse:*
>*** Q:Reserved:due:to:abuse:*
[rest of Q lines snipped]
[The raw format looks like]
>:aetos.irc.gr 217 asdf Q Reserved for operators * IRCop 0 -1
>
>The irc server is bahamut 1.4.31 (I remember this since 1.4.21. I don't know
>if it existed before that)
The default /ON 217 handler, that is loaded by epic in '2.8script' is for
the IRCNet version of the 217 numeric. At the most very high level, that
is why it doesn't look right for DalNet. I talked with a contact in DalNet
about the 217 numeric, and they agreed to rearrange the layout of the 217
numeric to avoid having a free form text message in the "argument list"
which can be difficult to handle for technical reasons, and instead put it
in as the last argument after a colon, which is more customary. I do not
have the particulars of the new DalNet 217 numeric layout, so I can't
recommend an /ON for you, but maybe by the next edition of ask-hop I will
have an answer!
Question five, from "shn"
-------------------------
>When I try to compile epic (with make after ./configure which goes fine)
>I get errors saying undefined reference to `tgetent' `tgetnum' `tgetstr'
>and `tputs' and it quits compile.
>
>Is there some other file I must get before I can compile epic ?
This generally means you're running linux and you didn't install the
"ncurses-devel" package. Please make sure you have that installed, and
if that still doesn't help, email me back! Thanks!
Question six, from Jonathan Perkin
----------------------------------
>Is there any fancy script which properly implements wordwrapping? Or
>is there anything in the client itself (I haven't found it yet) which
>can help. Basically I've been trying to tidy up the output a lot and
>have everything aligned nicely so it's much more readable, ie.
>
><longnick> hey foo, check out this cool url, it's at padding pading http://www.
> dictionaraoke.org/
>
>now, it'd be much nicer if it was:
>
><longnick> hey foo, check out this cool url, it's at padding pading
> http://www.dictionaraoke.org/
Yes! This can be controlled by you by setting /SET WORD_BREAK. By default,
/SET WORD_BREAK includes dot, comma, semicolon, space, and tab. You can
change this to include, or exclude any characters which you want to be
considered "breaking points". In your case, you want to remove the dot.
> I've also found it a bit tricky to implement $[-11]x or whatever. It
> never seems intuitive and I've found I've had to use ie $[-20]func()
> where func basically takes 'nick' and makes it '<nick>' with nice
> colours, to get it to align as shown above, even though it's only
> being formatted by about 11 or so.
Unfortunately, the $[width]expando construction works on characters and not
on "printable characters". In your case, you want to take whatever part of
$x will consume 11 columns on the screen. You can do this with the $leftpc()
function, like so:
$leftpc(11 $func())
Please note that $leftpc() isn't cheap, so you don't want to do it any more
than you really have to.
> Some kind of ncurses widget to implement a <nick> | <text> bar would
> be lovely - or maybe I used AmIRC/xchat too much in a previous life
> and got too used to such luxuries.
I agree such a thing would be a very nice addition to EPIC. At this time,
EPIC doesn't use ncurses or any other high level terminal manipulation
library, although we are considering it! Perhaps some time (not too far)
in the future, something like this may become reality!
> Just as a side note, is there no public mailing lists for epic? I
> wouldn't mind getting involved with development - implementing
> O_NONBLOCK would be something I'd like to do, seeing as it's the one
> thing which annoys me most about the current epic :)
EPIC does have a public mailing list -- you can subscribe by visiting
<http://epicsol.org/mailman/listinfo/list>. There you will find more
information on the list itself.
As for nonblocking connects, there are technical considerations that
preclude the addition of nonblocking connects at this time into EPIC.
We are always happy to have one more person help us out, but before
you go too far, please come and talk to us about what we've learned so
that you can take up where we currently are! =)
Well, unfortunately, I have to stop right now. There are still 11 questions
(egads! How did I let myself get backed up so far?) left in the ask-hop
queue, and I promise to get to those as quickly as I can! Please come
back to this page in the next several days for a new edition of Ask Hop!
If you have any tough questions you want answered, email me at
ask-hop@epicsol.org!
Jeremy (hop)
-------------------------------------------------------------------------------
Ask hop!
Edition 5 - Dec 20, 2001
I've gotten lots of questions lately (nine, to be exact); thanks for the
questions! Wow! What an opportunity to help you all out! I apologize for
taking so long to answer them. Life has been very busy for me and I appreciate
everybody's patience!
Question one, from John Saylor:
-------------------------------
> Is there a script or a setting that I can use to hand off URLs to a browser?
He later told me that he found a script called "urlgrab.irc", but it did
not show up on a Google search. John -- can you share with us the URL for
that script?
Question two, also from John Saylor:
------------------------------------
> ... [O]n the epic website you talk about tab completion and letting users
> decide how they want tab completion to work. I'd like it to do nickname
> completion. Do you know of any resources that work that way? I looked through
> all the scripts that come with epic but there's nothing there that fits.
Nickname-based tab completion is a very frequent request, and many script
packs do implement this. I have asked many times for someone to write a
standalone tab completion script and donate it to the EPIC project, but I
have not yet had any submissions. If you or anyone you know would be
interested in writing a tab completion script which does not depend on
scripts that do not already come with EPIC, let me know!
Email three, from Daniel S:
---------------------------
> You might want to list the tabkey scripts included with epic in the "How
> do I turn on tab completion" section of the questions. maybe an
> explanation of what their idea of 'tab completion" means.
Can do! All three of our "tabkey" scripts do what is called "message list"
completion. Each time you send or recieve a message, the person to whom you
send the message or from whom it was sent, is added to the "front" of a list.
Each time you press the <tab> key, the input line is changed to start with
/msg <nickname>
where <nickname> is the nickname at the top of the list. If you press the
<tab> key again before another message is sent or recieved, then the input
line is changed to the second person on the list, and so on.
Can do! Here are the three "tabkey" scripts that come with epic and a brief
description of how they work:
1) tabkey - this is original ircII version of the "tabkey" script, and it
doesn't really take advantage of EPIC features. But many people
like it, and so it will remain a part of EPIC. It has a default
limit of 10 nicknames, which is controlled by $tk.msgmax
2) tabkey.th - This is a modern rendition of tabkey written by whitefang.
In this version, if your input line is empty, pressing <tab>
will cycle through the list of nicknames. If the input line
is not empty, but it starts with /msg <part of a nickname>
then pressing <tab> will complete the rest of the nickname,
from the nicknames in the list!
3) tc - This is a modern rendition of tabkey written by me. This was my
attempt to implement "tabkey" making as much use of EPIC features
as I could. It has some ... interesting quirks, and it is mostly
included as an example. Not even I use it. ;-)
Question four from Randy Carpenter:
------------------------------------
> In older versions of epic, when I typed a message on the current channel,
> it displayed like this:
>
> > message
>
> now, it does this:
>
> #channel> message
>
> Is there a way to get back the old behavior?
Yes! The default output for EPIC when you send a message (public) to a
channel is the latter, as you have found. But EPIC comes with a script
that is called "2.8script" that is automatically loaded each time you start
EPIC. But if you (or whoever installed EPIC) did not run 'make install',
then the EPIC standard script library might not have been installed and
you would be missing this important script. One of the things that 2.8script
does is reset the formatting for outbound publics to how they look in
ircII (the first example).
EPIC's functionality is not only what the 'epic' binary itself offers, but
also the aliases and ons and other things included in the scripts which are
loaded by EPIC when you start up. Doing a 'make install' every time you
install or upgrade EPIC is the best way to make sure that you are using the
most up to date scripts that provide the necessary functionality for EPIC!
Question five also from Randy Carpenter:
----------------------------------------
> Also, older versions used to assume that a channel started with a #.
> If a user typed: '/join channel' it would be the same as '/join #channel'
>
> Any way of getting that functionality back?
Yes. The /j alias to /join is done by the 'basical' script which is loaded
automatically for you when you run EPIC, and the /join alias is found in the
'2.8script' which is also loaded automatically. The /join alias provides
this functionality. You won't have access to these kinds of useful features
unless the script repository has been installed. So the answer boils down
to the same as question four: just do a "make install" and you're all set! =)
Question six from Usunoro A. Senzuri:
-------------------------------------
> I've noticed that when I do /dcc list while sending a file with a space in
> its path (ie. /Volumes/oo Spaces/test/) under the section where it says
> what i'm sending it only shows '/Volumes/oo', and not the entire path.
> I tried setting DCC_LONG_PATHNAMES to off and it had no effect.
I'm going to guess that your script uses /ON DCC_LIST to reformat the output
of the /dcc list. In /ON DCC_LIST, the filename is contained in $7- .
If your /ON DCC_LIST only outputs $7, then it will miss any part of the
filename after the first space. Just change $7 to $7- and you should find
this problem solved!
Since you brought it up, /SET DCC_LONG_PATHNAMES controls whether or not
the value of $7- contains the full path to the filename, or only just the
last component of the filename. Hope this helps!
Question seven from zhentil:
----------------------------
> Hello, currently using EPIC4-1.0.1 with FreeBSD 4.4. I use ppp to handle
> my dial-up internet connection. Occasionally, my ISP will disconnect me
> (which I have ppp setup to automatically redial). I have noticed that
> EPIC does not seem to notice that the internet connection is lost. To
> test this, I have opened an EPIC session, connected to an irc server,
> and killed the ppp connection.
>
> When the ppp connection is dead, EPIC still acts like it is connected.
> That is, I can type into the input box (and my text is echoed above),
> and if I try to connect to a server (which will not resolve because of
> my lack of internet connection), it says it cannot connect and will
> "resume old connection".
>
> This may seem like a strange error, but I noticed it when my on
> ^disconnect script wasn't working:
>
> on ^disconnect "*" /quit
>
> The purpose, or what I am trying to accomplish, is if I am idling or
> away from my computer and the ppp connection dies, I'd want EPIC to quit
> (or I might write something to try to reconnect), but EPIC doesn't seem
> to acknowledge the disconnect. Any thoughts? Thanks!
The first thing to check is to make sure you have /SET NO_FAIL_DISCONNECT OFF,
which controls whether EPIC will consider an error writing to a socket as an
indication of a broken connection. If you have it set to ON, then EPIC will
not drop the connection to the server until the operating system tells EPIC
explicitly that the connection is finished.
However, you probably have this set to OFF. I have experienced the situation
you describe for quite a number of years, and unfortunately, the problem lies
with the operating system. EPIC does not close the connection to the server
until the operating system says that the connection is finished, and the
operating system may be unwilling to say that the connection is finished
when your PPP connection goes down because the operating system may think that
the loss of connectivity is only temporary, and is expecting the connection
to resume shortly. You and I may know that the connection is dead, but the
OS may not be willing to admit it. /ON DISCONNECT is only thrown when the
connection to the server is actively terminated by the operating system, and
so until the OS admits it, there is nothing EPIC can do.
I do not know of any easy solution for this other than occasionally PINGing
the server and /DISCONNECTing if you don't get a reply back. Does anyone have
a script solution for this problem?
Question eight from Eric Veldhuyzen:
------------------------------------
> I found a nice working patch for Epic4 1.0.1 to make it IPv6 aware. This
> patch doesn't work with Epic4 1.1.2, so I was wondering, when will Epic4
> support IPv6 out-of-the-box?
I do not expect to support IPv6 out of the box in EPIC4. It is, however,
high on the list of projects for EPIC5, whenever we get around to that
(but it won't be soon). The main reasons for IPv6 support not being included
in EPIC4 is because many systems still lack the requisite APIs to compile
IPv6 support, and making EPIC capable of using old style IPv4 hostname lookups
and new style IPv4/IPv6 hostname lookups at the same time is not something I
really want to work on. I do however encourage anyone who wants to, to take
up maintainership of the IPv6 patch for EPIC4, since there are a lot of people
who would love to see it maintained! =)
Question nine from Rodrigo Curado:
----------------------------------
> Now I have a little problem that so far couldn't get resolved.
> I'm trying to use ANSI escape sequences to get some color output but I
> can't send the damn escape char (^[). Usually, at vim, bash, and other
> places I can get it through Ctrl+V Ctrl+[ but at EPIC ^V is bound to
> Reverse and I, also, can't unbound it.
>
> I know that I could send colors with ^C<N> (like BitchX and mirc) but
> I'm trying to use just normal ANSI codes.
It seems as though the QUOTE_CHARACTER binding isn't working like I would
expect it to be working. Good catch! I'll look at fixing this very soon.
If you have any tough questions you want answered, email me at
ask-hop@epicsol.org! Please include as much detail in your questions
as possible to help me help you!
Jeremy (hop)
-------------------------------------------------------------------------------
Ask hop!
Edition 4 - November 26, 2001
Tab completion:
---------------
Someone (I'm sorry! I lost your address!) suggested that I should point
out the existance of three scripts that come with EPIC: 'tabkey', 'tabkey.th'
and 'tc'. All three are implementations of the "tabscript" concept which
is that a list is kept of everyone who you message and who messages you,
and pressing the <tab> key cycles through that list. This is one possible
use of "tab completion" as mentioned in Edition 1. Script Packs may
implement a much more sophisticated "tab completion" design, but for those
who just want "tabscript", you can load one of those three scripts in your
~/.ircrc!
Sending filenames with spaces via DCC:
--------------------------------------
Many people have asked why epic has issues with sending filenames with
spaces in them. This is because the CTCP specification (which governs
how clients offer files to each other via DCC) does not permit spaces
in filenames. No matter how you try to approach the problem, filenames
with spaces in them cannot be legally sent via DCC! When you try to send
a file with spaces in it, EPIC will translate the filename using "URL" type
encoding, yielding a legal filename. This new filename is used to offer
the file via DCC.
EPICRCs:
--------
Starting in the next version of EPIC, you will be able to use an ~/.epicrc
file. This file is loaded *in place of* and *not* in addition to your
~/.ircrc file. Some have asked how they can make their ~/.epicrc file
behave like ~/.bitchxrc, and you can do that by putting this at the bottom
of your ~/.epicrc file...
on #^connect -333 * {
load ~/.ircrc
^on connect -333 -*
}
... and running epic with the -B command line option.
If you have any tough questions you want answered, email me at
ask-hop@epicsol.org! Please include as much detail in your questions
as possible to help me help you!
Jeremy (hop)
-------------------------------------------------------------------------------
Ask hop!
Edition 3 - November 16, 2001
We have our first question! This one comes from "LCH" in Denmark.
(Addresses are omitted to prevent harvesting by spammers)
He writes:
>Hey,
>When having multiple channels in one window I get something like this:
>-server:channel- <text>
>Is there any way to disable this -server:channel- ?
This output may not be coming from EPIC, but rather your script.
I checked the EPIC sources, and the closest thing that I could
find in EPIC is this output:
-nick:channel- <text>
which is the default output of /on public_notice. If that is what
you meant, then you can use /on public_notice to change how it looks:
($0 is the sender, $1 is the recipient, and $2- is the message)
on ^public_notice * {
echo Notice from $cparse(%r$0%n to %r$1%n: $2-)
}
In this example, the sender and recipient are in red.
>And another one?
>
>I'm trying to do something like: ^on ^server_notice but it seems not
>to work. It worked in previous version of epic now it does not. Any
>clues?
I will need to know the version of epic you're using (look in irc.c
and get both the 'irc_version' and the 'commit_id' values) to be able
to help you with this question. I would also need to know just how
you're trying to use /on server_notice.
If either of my answers were not helpful, please feel free to send me
another letter! If any of you readers want to correct a mistake I made,
please feel free to send me a letter and I'll post any corrections here!
If you have any tough questions you want answered, email me at
ask-hop@epicsol.org! Please include as much detail in your questions
as possible to help me help you!
Jeremy (hop)
-------------------------------------------------------------------------------
Ask hop!
Edition 2 - November 7, 2001
Today I would like to answer a couple of quick questions that come up
pretty frequently on #epic:
Question: How can I turn on timestamping?
Quick Answer: /set output_rewrite [$Z] $1-
Detailed Answer: The /set output_rewrite feature lets you make any last minute
changes to output just before it goes to the window. $0 is the window
refnum and $1- is the original text. The /set value is expanded for
each line of output and whatever the result, that is what is put onto
your window (and in your logfile)! If you want to use a timestamp
other than $Z, try /set output_rewrite [$strftime(%H:%M:%S)] $1-
Question: How can I turn on tab completion?
Quick Answer: Use a script that has tab completion
Detailed Answer: "tab completion" means many different things to different
people. Some want "tab completion" to work like the original tabkey
script, whereas others want nickname completion, and some want
command completion (ala the shell), and some want combinations of
all of the above. The EPIC philosophy is to try to avoid to make
these kinds of decisions for the users, instead giving them the
tools necessary to make their own decisions. For this reason EPIC
does not have "tab completion"; you will need to use a script.
Question: How can I turn on DCC Auto-get?
Quick Answer: /load autoget and then /autoget *
Detailed Answer: The "autoget" script is available in EPIC4-1.1.1 and
upwards. It was added because this question was asked so often.
Question: How can I make <meta>-<number> swap between hidden windows?
Quick Answer: /load altchan
Detailed Answer: The "altchan" script is available in EPIC4-1.1.1 and
upwards. It was added because this question was asked so often.
If you have any tough questions you want answered, email me at
ask-hop@epicsol.org!
Jeremy (hop)
-------------------------------------------------------------------------------
Ask hop!
Edition 1 - November 5, 2001
Welcome to the "Ask hop!" column. The purpose of this column is to delve
into the nether regions of the EPIC client. It is hoped that we can archive
all of these columns so that you readers can use it as a resource the next
time you have a tough question and want to find the answer.
I encourage you to send me questions which reflect your real world use of
EPIC. Interesting questions which I don't answer will be posted here for
your fellow users to answer.
At some point, keerf is going to work on a "knowledge base" project for
the website, which will basically be nothing more than a bunch of questions
and their answers. It won't be in a formal column like this one, but just
a raw repository of knowledge.
Editions will be published approximately "whenever it seems like a good
idea", which means it depends on how many emails I get.
So if you have any tough questions you want answered, let them fly to
ask-hop@epicsol.org!
Jeremy (hop)
|