• Finger mod

    From Finnigann@VERT/BNB to All on Thursday, January 31, 2008 19:40:00
    Below is the Finger client from SBBS. I want to know how to add code to
    save the dest.slice from each request to be recalled with a (perhaps)
    TAB keystroke or someother keystroke pair.

    If possible, multiple destinations could be stored in a list with
    highlight bar.

    If this mod happens, & if it's added to the main distribution, have a
    sample include vert.synchro.net and the home system as examples.

    Might there be a way to incorporate systems found in DoVeNet? This last
    part was inspired by the rash of knuckleheads (lately) found posting on
    DoVeNet and a desire to learn more about to whom I (and others) reply
    to. This part might be added to the Operators menu availible to sysops
    while posting.


    // A simple finger client

    function write(str)
    {
    output_buf += str;
    }

    if(argc>0 && argv[0].indexOf('@')!=-1)
    dest = argv[0];
    else if((dest = prompt("User (user@hostname)"))==null)
    exit();

    if((hp = dest.indexOf('@'))==-1) {
    dest += "@" + system.host_name;
    hp = dest.indexOf('@')
    }

    host = dest.slice(hp+1);
    sock = new Socket();
    //sock.debug = true;
    sock.bind(0,server.interface_ip_address);
    if(!sock.connect(host,"finger"))
    alert("Connection to " + host + " failed with error " + sock.last_error);
    else {
    sock.send(dest.slice(0,hp)+"\r\n");
    while(bbs.online && sock.is_connected)
    print(sock.readline());
    }
    sock.close();



    When you make the finding yourself - even if
    you're the last person on Earth to see the
    light - you'll never forget it. -- Carl Sagan


    ... A yer ago I kudnt spel jeanyus now I are won.
    --- MultiMail/Win32 v0.47
    þ Synchronet þ Bits-N-Bytes - bnb.dtdns.net / bnb.synchro.net (web use port 666)
  • From Angus McLeod@VERT/ANJO to Finnigann on Thursday, January 31, 2008 22:05:00
    Re: Finger mod
    By: Finnigann to All on Thu Jan 31 2008 19:40:00

    Below is the Finger client from SBBS. I want to know how to add code to
    save the dest.slice from each request to be recalled with a (perhaps)
    TAB keystroke or someother keystroke pair.

    Where it says

    host = dest.slice(hp+1);

    the string 'host' contains everything after the '@'. You should be able
    to save it ('host') at that point, if you want to recall it later. You'd
    need to open a file, write 'host' to disk, and close the file again. Note that the contents of 'host' is obtained by grabbing everything after the
    '@' in string 'dest'.

    A few lines later, in the code, you see that string ('host') being used to connect to the remote system:

    sock.connect(host,"finger")

    (It's imbedded in an 'if' statement.) Prior to this, you can set 'host'
    to whatever you like. Or you can manipulate the end of the 'dest' string
    to whatever you want *prior* to slicing off the host portion. Same
    effect.

    The host portion of 'dest' already defaults to system.host_name (your own system) if you leave off the '@'. So if you just put

    .nodelist

    the code adds "@yourdomain.com" automatically. You can see it doing that here:

    dest += "@" + system.host_name;

    Nothing to prevent you adding extra code to use something else! Like if
    you put

    .nodelist*

    the code could look up the last 'host' you used (open the disk file and
    read the contents), and substitute that.

    If you really want to do some coding, you could even invoke some sort of pick-list routine, that sets the 'dest' string according to your pick.
    The '*' at the end might cause the pick-list to pop up.

    You can do pretty much what you want, you know. But the more you want,
    the more coding is involved, and the harder it gets.

    ---
    Playing: "Peaches & diesel" by "Eric Clapton" from the "Slowhand" album.
    þ Synchronet þ Making sure Jason works OK at The ANJO BBS
  • From Finnigann@VERT/BNB to Angus McLeod on Friday, February 01, 2008 18:22:00
    //- With quill in hand, Finnigann
    sends off a short note to Angus McLeod,
    about Finger mod -\\

    Re: Finger mod
    By: Finnigann to All on Thu Jan 31 2008 19:40:00

    Below is the Finger client from SBBS. I want to know how to add code to
    save the dest.slice from each request to be recalled with a (perhaps)
    TAB keystroke or someother keystroke pair.

    Where it says

    host = dest.slice(hp+1);

    Thanks. I'll comb other .JS files for suitable code examples. to see if
    they paste together and run/work.

    I was looking at lightbar.js, how would this be called? I assume, that
    at the least, I'd have to pass the file location to provide the lines of
    text to make up the menu.

    But other than that, getting back the selected text and getting it
    placed into 'host' will be a challenge (to put it kindly)

    I'll post whatever progress when I get to a stoping place.

    Thanks for your input.



    When you make the finding yourself - even if
    you're the last person on Earth to see the
    light - you'll never forget it. -- Carl Sagan


    ... Chopped cabbage: It's not just a good idea, it's the slaw!
    --- MultiMail/Win32 v0.47
    þ Synchronet þ Bits-N-Bytes - bnb.dtdns.net / bnb.synchro.net (web use port 666)
  • From Angus McLeod@VERT/ANJO to Finnigann on Saturday, February 02, 2008 09:12:00
    Re: Re: Finger mod
    By: Finnigann to Angus McLeod on Fri Feb 01 2008 18:22:00

    Thanks. I'll comb other .JS files for suitable code examples. to see if
    they paste together and run/work.

    I was looking at lightbar.js, how would this be called? I assume, that
    at the least, I'd have to pass the file location to provide the lines of text to make up the menu.

    Ok, try this:

    Create a file called /sbbs/exec/hosts.pick or similar, and in it, put the following:

    nimbus.synchro.net^The Nimbus BBS
    pbox.servebbs.com^The Penalty Box
    phantomrage.org^PhantomRage Studios
    bnb.synchro.net^Bits-N-Bytes
    www.hdcbbs.net^The Hard Drive Cafe
    vert.synchro.net^Vertrauen
    bbs.foxybanana.com^The Realm of Dreams
    derbycitybbs.com^Derby City BBS

    Obviously, you can put in whatever you want here, but follow the same
    format. Note the "^" character separating the hostname from the BBS name. Also, I am indenting by two spaces -- you don't do that in the actual
    file.

    Now code up a piece of JS as follows:

    load("lightbar.js");

    // the name of the hosts picklist file you used
    hosts = "/sbbs/exec/hosts.pick";

    console.clear(); // say howdy
    writeln( "Host-Pick Test Program" );

    // create lightbar object and set up a few options
    pick = new Lightbar();
    pick.xpos = 10; pick.ypos = 3;
    pick.fg = 2; pick.bg = 0;
    pick.hfg = 14; pick.hbg = 7;

    // create file object for hosts file and open it for reading
    f = new File( hosts );
    if (!f.open("r")) {
    writeln( "Can't open \"" + hosts + "\"" );
    exit;
    }

    // read each line, split it into parts,
    // and add them to the lightbar object
    while (line = f.readln()) {
    part = line.split( "^" ); // same separator
    pick.add( part[1], part[0] );
    }
    f.close(); // done with file

    v = pick.getval(); // get value from lightbar object

    // display results
    console.clear();
    writeln( "Returned Value = " + v );
    console.pause();

    Now save that as /sbbs/exec/hostpick.js or something similar, and try
    running it. It should give you a list of BBSs by *name* and when you make your selection, it should return the matching *host* for that BBS.

    See if you can get that going.

    ---
    Amarok: 17,459 tracks from 1,238 albums by 1,349 artists, but none playing.
    þ Synchronet þ Making sure Jason works OK at The ANJO BBS
  • From Deuce@VERT/SYNCNIX to Finnigann on Saturday, February 02, 2008 12:15:00
    Re: Re: Finger mod
    By: Finnigann to Angus McLeod on Fri Feb 01 2008 06:22 pm

    I was looking at lightbar.js, how would this be called? I assume, that
    at the least, I'd have to pass the file location to provide the lines of text to make up the menu.

    lbshell.js uses it.

    ---
    Synchronet - Jump on the Web 0.2 bandwagon!

    ---
    þ Synchronet þ My Brand-New BBS (All the cool SysOps run STOCK!)
  • From Deuce@VERT/SYNCNIX to Angus McLeod on Saturday, February 02, 2008 12:19:00
    Re: Re: Finger mod
    By: Angus McLeod to Finnigann on Sat Feb 02 2008 09:12 am

    Ok, try this:

    Now save that as /sbbs/exec/hostpick.js or something similar, and try running it. It should give you a list of BBSs by *name* and when you make your selection, it should return the matching *host* for that BBS.

    See if you can get that going.

    Did I document it somewhere? It's great that someone can actually figure out how to use the stuff I'm writing... every time I add something to CVS, I do it "knowing" that nobody will use it anyways, but since it might be usefull, I add it anyways.

    It's heartwarming to see someone use it in code.

    *sniff*

    ---
    Synchronet - Jump on the Web 0.2 bandwagon!

    ---
    þ Synchronet þ My Brand-New BBS (All the cool SysOps run STOCK!)
  • From Finnigann@VERT/BNB to Angus McLeod on Saturday, February 02, 2008 15:46:00
    //- With quill in hand, Finnigann
    sends off a short note to Angus McLeod,
    about Re: Finger mod -\\

    Re: Re: Finger mod
    By: Finnigann to Angus McLeod on Fri Feb 01 2008 18:22:00

    Ok, try this:

    Create a file called /sbbs/exec/hosts.pick or similar, and in it, put
    the following:

    I'm gonna try to substitute this:

    hosts = "%juser/%s.fin"; %4

    for hosts.pick

    so each user can have/create his own list, I could seed it with your
    list, thou.


    Now code up a piece of JS as follows:

    load("lightbar.js");

    I actually had this line (-: (Didn't know how to use it, 'till now)






    See if you can get that going.

    OK Thanks... weekend project ð|:}>




    When you make the finding yourself - even if
    you're the last person on Earth to see the
    light - you'll never forget it. -- Carl Sagan


    ... Her sewing machine's been out of thread for some time now.
    --- MultiMail/Win32 v0.47
    þ Synchronet þ Bits-N-Bytes - bnb.dtdns.net / bnb.synchro.net (web use port 666)
  • From Finnigann@VERT/BNB to Deuce on Saturday, February 02, 2008 18:20:00
    //- With quill in hand, Finnigann
    sends off a short note to Deuce,
    about Re: Finger mod -\\

    Re: Re: Finger mod
    By: Finnigann to Angus McLeod on Fri Feb 01 2008 06:22 pm

    I was looking at lightbar.js, how would this be called? I assume, that
    at the least, I'd have to pass the file location to provide the lines of text to make up the menu.

    lbshell.js uses it.


    Thanks. I found that file.

    Angus also provided some code for me to work with. Between those two, I
    have a chance. (-:

    Just curious, can the lightbar be called with a control key sequence? I
    was thinking about control-tab. As TAB completes the addresses in some browsers.

    Anyway, thanks for the tip.



    When you make the finding yourself - even if
    you're the last person on Earth to see the
    light - you'll never forget it. -- Carl Sagan


    ... Forgot to pay his brain bill.
    --- MultiMail/Win32 v0.47
    þ Synchronet þ Bits-N-Bytes - bnb.dtdns.net / bnb.synchro.net (web use port 666)
  • From Finnigann@VERT/BNB to Angus McLeod on Saturday, February 02, 2008 18:31:00
    //- With quill in hand, Finnigann
    sends off a short note to Deuce,
    about Re: Finger mod -\\

    Re: Re: Finger mod
    By: Angus McLeod to Finnigann on Sat Feb 02 2008 09:12 am

    Ok, try this:

    Now save that as /sbbs/exec/hostpick.js or something similar, and try running it. It should give you a list of BBSs by *name* and when you make your selection, it should return the matching *host* for that BBS.

    See if you can get that going.

    Did I document it somewhere? It's great that someone can actually
    figure out how to use the stuff I'm writing... every time I add
    something to CVS, I do it "knowing" that nobody will use it anyways,
    but since it might be usefull, I add it anyways.

    It's heartwarming to see someone use it in code.

    *sniff*

    Valentine's day is comming up...

    [Deuce]
    Perhaps a fewe more comments in the comments section on usage. For us
    simple folks.



    When you make the finding yourself - even if
    you're the last person on Earth to see the
    light - you'll never forget it. -- Carl Sagan


    ... Sex is a Misdemeanor. The more I miss it, de meanor I get!
    --- MultiMail/Win32 v0.47
    þ Synchronet þ Bits-N-Bytes - bnb.dtdns.net / bnb.synchro.net (web use port 666)
  • From The Immortal@VERT/LIGHTNIN to Deuce on Saturday, February 02, 2008 18:53:00
    Re: Re: Finger mod
    By: Deuce to Angus McLeod on Sat Feb 02 2008 12:19 pm


    Did I document it somewhere? It's great that someone can actually figure ou how to use the stuff I'm writing... every time I add something to CVS, I do "knowing" that nobody will use it anyways, but since it might be usefull, I it anyways.

    It's heartwarming to see someone use it in code.

    *sniff*

    Hey buddy I'm your biggest fan and I'll cvs nightly if it'll make you feel better, but if the support or examples for it are already there, why is
    there not an included lightbar command shell for everyone who wants it?
    Demand is not high enough to make it a default or stock option?

    I'm still overcoming the woozy feeling from seeing 8 pages of javascript
    I need to use for arrow key driven menus.

    ---
    þ Synchronet þ lightningbbs.dyndns.org Come on by and say hi!!!!!!
  • From Deuce@VERT/SYNCNIX to Finnigann on Saturday, February 02, 2008 19:41:00
    Re: Re: Finger mod
    By: Finnigann to Deuce on Sat Feb 02 2008 06:20 pm

    Just curious, can the lightbar be called with a control key sequence? I
    was thinking about control-tab. As TAB completes the addresses in some browsers.

    I'm not sure what you mean exactly, but the answer is probably "yes"

    ---
    Synchronet - Jump on the Web 0.2 bandwagon!

    ---
    þ Synchronet þ My Brand-New BBS (All the cool SysOps run STOCK!)
  • From Deuce@VERT/SYNCNIX to Finnigann on Saturday, February 02, 2008 19:42:00
    Re: Re: Finger mod
    By: Finnigann to Angus McLeod on Sat Feb 02 2008 06:31 pm

    [Deuce]
    Perhaps a fewe more comments in the comments section on usage. For us
    simple folks.

    Yeah, of some actual documentation...

    ---
    Synchronet - Jump on the Web 0.2 bandwagon!

    ---
    þ Synchronet þ My Brand-New BBS (All the cool SysOps run STOCK!)
  • From Deuce@VERT/SYNCNIX to The Immortal on Saturday, February 02, 2008 19:43:00
    Re: Re: Finger mod
    By: The Immortal to Deuce on Sat Feb 02 2008 06:53 pm

    Hey buddy I'm your biggest fan and I'll cvs nightly if it'll make you feel better, but if the support or examples for it are already there, why is there not an included lightbar command shell for everyone who wants it? Demand is not high enough to make it a default or stock option?

    The default config files are usually only updated before a release.

    ---
    Synchronet - Jump on the Web 0.2 bandwagon!

    ---
    þ Synchronet þ My Brand-New BBS (All the cool SysOps run STOCK!)
  • From Angus McLeod@VERT/ANJO to Deuce on Sunday, February 03, 2008 00:51:00
    Re: Re: Finger mod
    By: Deuce to Angus McLeod on Sat Feb 02 2008 12:19:00

    Ok, try this:

    Now save that as /sbbs/exec/hostpick.js or something similar, and try running it. It should give you a list of BBSs by *name* and when you mak your selection, it should return the matching *host* for that BBS.

    See if you can get that going.

    Did I document it somewhere?

    ROTFL! You? Document?!?? LOL! ;-)

    It's great that someone can actually figure out how to use the stuff
    I'm writing... every time I add something to CVS, I do "knowing" that nobody will use it anyways, but since it might be usefull, I add it anyways.

    Well, there's a bunch I couldn't quite figure out, but that doesn't mean
    it can't be used!

    It's heartwarming to see someone use it in code.

    *sniff*

    You'll make me cry, now.

    ---
    Playing: "Bye bye love" by "The Cars" from "The Cars" album.
    þ Synchronet þ Making sure Jason works OK at The ANJO BBS
  • From Angus McLeod@VERT/ANJO to Finnigann on Sunday, February 03, 2008 00:52:00
    Re: Re: Finger mod
    By: Finnigann to Angus McLeod on Sat Feb 02 2008 15:46:00

    Create a file called /sbbs/exec/hosts.pick or similar, and in it, put the following:

    I'm gonna try to substitute this:

    hosts = "%juser/%s.fin"; %4

    for hosts.pick

    so each user can have/create his own list, I could seed it with your
    list, thou.

    Oh, I think I see what you're doing. But do %j and %4 apply tyo JS code?

    ---
    Playing: "Moving in stereo" by "The Cars" from "The Cars" album.
    þ Synchronet þ Making sure Jason works OK at The ANJO BBS
  • From Angus McLeod@VERT/ANJO to Finnigann on Sunday, February 03, 2008 00:58:00
    Re: Re: Finger mod
    By: Finnigann to Deuce on Sat Feb 02 2008 18:20:00

    Just curious, can the lightbar be called with a control key sequence? I
    was thinking about control-tab. As TAB completes the addresses in some browsers.

    Yes, the problem is this part of the finger program:

    while((dest = prompt("User (user@hostname)")) != null) {
    . . .
    }

    What you need is some way to know if the prompt() entry was terminated
    with a regular <ENTER> key or with something else like <TAB>, <ESC>, <F1>,
    or so forth. So if you type

    .nodelist<ENTER>

    the code knows to produce the local node list, but if you type

    .nodelist<TAB>

    the code knows to pop up the picklist, and so forth. I've not yet worked
    out how to do that.

    ---
    Playing: "All mixed up" by "The Cars" from "The Cars" album.
    þ Synchronet þ Making sure Jason works OK at The ANJO BBS
  • From Finnigann@VERT/BNB to Angus McLeod on Sunday, February 03, 2008 02:18:00
    //- With quill in hand, Finnigann
    sends off a short note to Angus McLeod,
    about Re: Finger mod -\\

    Re: Re: Finger mod
    By: Finnigann to Angus McLeod on Sat Feb 02 2008 15:46:00

    Create a file called /sbbs/exec/hosts.pick or similar, and in it, put the following:

    I'm gonna try to substitute this:

    hosts = "%juser/%s.fin"; %4

    for hosts.pick

    so each user can have/create his own list, I could seed it with your
    list, thou.

    Oh, I think I see what you're doing. But do %j and %4 apply to JS
    code?

    I think I saw these shortcut's used elsewhere. Knowing Rob, I should
    think they would.

    I hope so, anyway.



    When you make the finding yourself - even if
    you're the last person on Earth to see the
    light - you'll never forget it. -- Carl Sagan


    ... I thought cat's owners had nine lives too...guess I was wrong!
    --- MultiMail/Win32 v0.47
    þ Synchronet þ Bits-N-Bytes - bnb.dtdns.net / bnb.synchro.net (web use port 666)
  • From Deuce@VERT/SYNCNIX to Angus McLeod on Sunday, February 03, 2008 04:24:00
    Re: Re: Finger mod
    By: Angus McLeod to Deuce on Sun Feb 03 2008 12:51 am

    Did I document it somewhere?

    ROTFL! You? Document?!?? LOL! ;-)

    Hey, I documented something once!

    ---
    Synchronet - Jump on the Web 0.2 bandwagon!

    ---
    þ Synchronet þ My Brand-New BBS (All the cool SysOps run STOCK!)
  • From Finnigann@VERT/BNB to Deuce on Sunday, February 03, 2008 10:59:00
    //- With quill in hand, Finnigann
    sends off a short note to Deuce,
    about Re: Finger mod -\\

    Re: Re: Finger mod
    By: Angus McLeod to Deuce on Sun Feb 03 2008 12:51 am

    Did I document it somewhere?

    ROTFL! You? Document?!?? LOL! ;-)

    Hey, I documented something once!

    Was it a really bad experience?



    When you make the finding yourself - even if
    you're the last person on Earth to see the
    light - you'll never forget it. -- Carl Sagan


    ... Confucius Say; Man who eat many prunes get good run for money.
    --- MultiMail/Win32 v0.47
    þ Synchronet þ Bits-N-Bytes - bnb.dtdns.net / bnb.synchro.net (web use port 666)
  • From Deuce@VERT/SYNCNIX to Finnigann on Sunday, February 03, 2008 23:34:00
    Re: Re: Finger mod
    By: Finnigann to Deuce on Sun Feb 03 2008 10:59 am

    ROTFL! You? Document?!?? LOL! ;-)

    Hey, I documented something once!

    Was it a really bad experience?

    Yes, I still have the scars...

    ---
    Synchronet - Jump on the Web 0.2 bandwagon!

    ---
    þ Synchronet þ My Brand-New BBS (All the cool SysOps run STOCK!)
  • From Angus McLeod@VERT/ANJO to Deuce on Sunday, February 03, 2008 21:33:00
    Re: Re: Finger mod
    By: Deuce to Angus McLeod on Sun Feb 03 2008 04:24:00

    Did I document it somewhere?

    ROTFL! You? Document?!?? LOL! ;-)

    Hey, I documented something once!

    Actually, it isn't too bad. I assume the callbask() is used by the
    lbshell? I have not looked to see, but I guess it has to have some
    immediate purpose.

    The only thing that I would like to see is the option to have a longer
    list than there are lines to display it. So say there are 15 items in the list, but only 8 lines to the bottom of the screen (or I explicitly limit
    it to an 8-line display) then 8 lines will be displayed, and if the cursor moves to the bottom and beyond, the eight lines roll up, eliminating line
    #1 at the top, and revealing line #9 at the bottom.

    Yes, it is non-trivial, and there isn't much reward for doing it, but it
    would allow an application to control how much of the screen was to be clobbered by the lightbar list. Also, it would allow you to set the
    number of lines to ONE and just have a rolling value. Hmmm... perhaps a separate type of object would be better than using a maximally collapsed lightbar list? Probably.

    ---
    Playing: "It's Good to Be in Love" by "Frou Frou" from the "Details" album.
    þ Synchronet þ Making sure Jason works OK at The ANJO BBS
  • From Deuce@VERT/SYNCNIX to Angus McLeod on Monday, February 04, 2008 13:36:00
    Re: Re: Finger mod
    By: Angus McLeod to Deuce on Sun Feb 03 2008 09:33 pm

    Actually, it isn't too bad. I assume the callbask() is used by the
    lbshell? I have not looked to see, but I guess it has to have some immediate purpose.

    Yeah, if defined, it is called immediately before attempting input. This allows intercepting console messages and such.

    The only thing that I would like to see is the option to have a longer
    list than there are lines to display it. So say there are 15 items in the list, but only 8 lines to the bottom of the screen (or I explicitly limit
    it to an 8-line display) then 8 lines will be displayed, and if the cursor moves to the bottom and beyond, the eight lines roll up, eliminating line
    #1 at the top, and revealing line #9 at the bottom.

    Yeah, I looked into this once... and seriously though about using a graphic object (graphic.js). Essentially, draw the entire lightbar into two graphics contexts... one for selected and one for not selected, then use the draw() method to update the screen. Wouldn't be all that hard to do, I just never got around to it.

    Yes, it is non-trivial, and there isn't much reward for doing it, but it would allow an application to control how much of the screen was to be clobbered by the lightbar list. Also, it would allow you to set the
    number of lines to ONE and just have a rolling value. Hmmm... perhaps a separate type of object would be better than using a maximally collapsed lightbar list? Probably.

    Well, since graphic.js is already written, it would actually be pretty trivial. Basically, the first draw() or getval() called after an additem() would update the graphical representation... then the draw() function be be from the top offset to top+height etc.

    A single rolling value wouldn't be any better or worse actually.

    ---
    Synchronet - Jump on the Web 0.2 bandwagon!

    ---
    þ Synchronet þ My Brand-New BBS (All the cool SysOps run STOCK!)
  • From Angus McLeod@VERT/ANJO to Deuce on Monday, February 04, 2008 21:03:00
    Re: Re: Finger mod
    By: Deuce to Angus McLeod on Mon Feb 04 2008 13:36:00

    Yes, it is non-trivial, and there isn't much reward for doing it, but it would allow an application to control how much of the screen was to be clobbered by the lightbar list. Also, it would allow you to set the number of lines to ONE and just have a rolling value. Hmmm... perhaps a separate type of object would be better than using a maximally collapsed lightbar list? Probably.

    Well, since graphic.js is already written, it would actually be pretty trivi Basically, the first draw() or getval() called after an additem() would upda the graphical representation... then the draw() function be be from the top offset to top+height etc.

    A single rolling value wouldn't be any better or worse actually.

    As ever, the real problem with console I/O is this: You can't easily
    'repair' those areas of the screen that your pop-up clobbers. You can't copy/save a rectangular area of the console, pop up a pick-list over that area, and then restore the copy/save area to it's original state when the pick-list is no longer needed. Unless the length of the list can be controlled, you can't control how much of the screen gets disrupted.

    A rolling value isn't particularly great, except you know that only the
    input area (one part of one line) will be affected, and on completion, the selected value will remain in that same area, effectively 'repairing' the screen.

    ---
    Playing: "Annie" by "James Blunt" from the "All The Lost Souls" album.
    þ Synchronet þ Making sure Jason works OK at The ANJO BBS
  • From Deuce@VERT/SYNCNIX to Angus McLeod on Tuesday, February 05, 2008 10:34:00
    Re: Re: Finger mod
    By: Angus McLeod to Deuce on Mon Feb 04 2008 09:03 pm

    As ever, the real problem with console I/O is this: You can't easily 'repair' those areas of the screen that your pop-up clobbers. You can't copy/save a rectangular area of the console, pop up a pick-list over that area, and then restore the copy/save area to it's original state when the pick-list is no longer needed. Unless the length of the list can be controlled, you can't control how much of the screen gets disrupted.

    Right. Which is why lbshell.js uses a known "image" for the background so it can restore arbitrary rectangles of the screen. I've actually looked into having Synchronet track outgoing ANSI so it *could* restore arbitrary parts of the screen, but decided I didn't want to bother since I personally wouldn't use that often enough.

    ---
    Synchronet - Jump on the Web 0.2 bandwagon!

    ---
    þ Synchronet þ My Brand-New BBS (All the cool SysOps run STOCK!)
  • From Angus McLeod@VERT/ANJO to Deuce on Tuesday, February 05, 2008 19:53:00
    Re: Re: Finger mod
    By: Deuce to Angus McLeod on Tue Feb 05 2008 10:34:00

    I've actually looked into having Synchronet track outgoing ANSI so it *could* restore arbitrary parts the screen, but decided I didn't want
    to bother since I personally wouldn't that often enough.

    I see that as a huge overhead for a feature that is of relatively
    infrequent utility. And that's without taking the development effort into account.

    ---
    Playing: "You don't know how it feels" by "Tom Petty"
    from the "Wildflowers" album.
    þ Synchronet þ Making sure Jason works OK at The ANJO BBS
  • From Deuce@VERT/SYNCNIX to Angus McLeod on Tuesday, February 05, 2008 17:10:00
    Re: Re: Finger mod
    By: Angus McLeod to Deuce on Tue Feb 05 2008 07:53 pm

    I've actually looked into having Synchronet track outgoing ANSI so it *could* restore arbitrary parts the screen, but decided I didn't want
    to bother since I personally wouldn't that often enough.

    I see that as a huge overhead for a feature that is of relatively
    infrequent utility. And that's without taking the development effort into account.

    The overhead is pretty low actually... and the code is already written. The only extra work would be in making the current code thread-safe which would be fairly trivial since it almost is already.

    However, the usefullness of it is still most likely not worth the minimal effort it would require since it would still not be generic. Just because something is what was indented to be on the remote screen is no guarantee that's what is there. Further, there is the possibility that ANSI is disabled, so redrawing a small segment requires redrawing the entire screen etc.

    Sometimes though, I still wish I had it. :-)

    ---
    Synchronet - Jump on the Web 0.2 bandwagon!

    ---
    þ Synchronet þ My Brand-New BBS (All the cool SysOps run STOCK!)
  • From Finnigann@VERT/BNB to Deuce on Tuesday, February 05, 2008 21:11:00
    //- With quill in hand, Finnigann
    sends off a short note to Deuce,
    about Re: Finger mod -\\


    Sometimes though, I still wish I had it. :-)


    This [wand-shaped package] just arrived via Owl Post... From
    Olivander's of London. Wonder what it could be?




    (Yes, I fallen into the world of Harry Potter...)



    When you make the finding yourself - even if
    you're the last person on Earth to see the
    light - you'll never forget it. -- Carl Sagan


    ... "Why Johnny Can't Read" - Now available on VHS
    --- MultiMail/Win32 v0.47
    þ Synchronet þ Bits-N-Bytes - bnb.dtdns.net / bnb.synchro.net (web use port 666)