On Sun, Jan 24, 2016 at 02:03:28PM +0100, Witold Filipczyk wrote: > On Tue, Jan 12, 2016 at 01:35:29PM -0600, Martin Miller wrote: > > Hi > > > > Let me start by saying that it was a bit tough to subscribe to this list as > > the > > information on elinks.cz is out of date, and the link to the archive makes > > it > > look like there has been no ML activity since 2014. > > > > I'm attaching a patch that allows users to label links not only with > > numbers, > > but with characters from a specified set. Some may be familiar with this > > feature > > from vimperator (though it's not the default) or similar keyboard driven GUI > > browsers. > > > > Using non-numeric link labels means that a key must be bound to bring up the > > link selection dialog, whereas using numbers you can just start typing the > > link > > number directly. This adds one keystroke, but alpha link labels keep your > > hands > > near the home row, which I personally find preferable. > > > > The patch essentially lets the user set the base for link numbering and > > the tokens used for the numbers. I made the default so that there is no > > change, > > i.e. "0123456789". For my usage, I have set > > "gfdsahjkl;GFDSAHJKLtrewqyuiopvcxznm" > > > > To bring up the link selection dialog, the user can bind "link-dialog": > > > > bind "main" "f" = "link-dialog" > > > > I kept the functionality where typing a number will also bring up the > > dialog. > > The difference is that using a number will enter that number into the > > dialog, > > whereas using link-dialog opens with an empty text box. > > > > I have packaged a slightly earlier version as an rpm: > > ftp://witsquash.com/rpms/elinks-0.12-0.48.pre6.fc23.x86_64.rpm > > > > Add this to your elinks.conf: > > > > bind "main" "f" = "link-dialog" > > set document.browse.links.number_links_with_key = > > "gfdsahjkl;GFDSAHJKLtrewqyuiopvcxznm" > > > > The attached patch was written against 0.12-pre6. I modified dialog > > behavior to > > agree with the above paragraph, and changed the config variable to something > > shorter, so use this in your elinks.conf: > > > > bind "main" "f" = "link-dialog" > > set document.browse.links.label_key = > > "gfdsahjkl;GFDSAHJKLtrewqyuiopvcxznm" > > > > Can we add this feature into elinks? Thanks and enjoy. > > Interesting. Some comments: > Please, use tabs for indentations. > > > +/* > > + * Converts a number in base 10 to a string in another base whose symbols > > are > > + * represented by key. I the trivial case, key="0123456789". A more homerow > > + * friendly key="gfdsahjkl;trewqyuiopvcxznm". Returns the length of > > link_sym. > > + */ > > +static int > > +dec2qwerty(int num, char *link_sym, const char *key) > > +{ > > + int base = strlen(key); > > + > > + int newlen = 1; > > + while (pow(base, newlen) < num) ++newlen; > > If strlen(key) is 0 or 1, this loop never ends. > > One issue is that pow requires -lm and <math.h>. > -lm is not always in LIBS.
I will fix this when I get the chance. I'll have to look at the code to see what makes the most sense, but I think I'll use "0123456789" if strlen returns 0 or 1. Removing pow and replacing it with some sort of *= shouldn't be too much trouble. I've been running the patch for a couple weeks so far, and it works great, but I did realize recently that the References in an elinks dump do not print the new link symbols, so I'll add that in with the new patch as well. -- Martin Miller netid: miller7 -- http://lists.linuxfromscratch.org/listinfo/elinks-dev Unsubscribe: See the above information page