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.
-- 
http://lists.linuxfromscratch.org/listinfo/elinks-dev
Unsubscribe: See the above information page

Reply via email to