On 2023/05/30 12:50, Alexander Arkhipov wrote:
> Hello,
> 
> I noticed a problem with the OpenBSD port of lynx. There is a
> little-known (probably because it's barely documented) (and
> hilariously, one of the default keybindings ing is ^S :) feature of lynx
> for copying/pasting to/from a clipboard. It can be used by setting the
> following settings in lynx.cfg:
> 
> KEYMAP:<key>:PASTE_URL
> KEYMAP:<key>:TO_CLIBOARD
> 
> and setting environment variables RL_CLCOPY_CMD and RL_PASTE_CMD to
> appropriate commands (such as `xclip' an `xclip -o', or `tmux loadb -'
> and `tmux showb').
> 
> However, presumably because lynx is pledged on OpenBSD, attempting to
> actually use the feature aborts with the message
> "Abort trap (core dump)", and then I have to type `reset'.

Good find.

> Initially I thought to fix it by disabling the definition of CAN_CUT_AND_PASTE
> in WWW/Library/Implementation/HTUtils.h, but that gave me linker errors:
> 
> ld: error: undefined symbol: LYmsec_delay
> >>> referenced by LYMainLoop.c
> >>>               LYMainLoop.o:(set_curdoc_link_by_mouse)
> cc: error: linker command failed with exit code 1 (use -v to see invocation)
> *** Error 1 in src (makefile:111 'lynx')
> *** Error 2 in /usr/ports/pobj/lynx-2.8.9rel1/lynx2.8.9rel.1 (makefile:206 
> 'all')
> *** Error 2 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2961 
> '/usr/ports/pobj/lynx-2.8.9rel1/.build_done': @cd 
> /usr/ports/pobj/lynx-2.8.9...)
> *** Error 2 in /usr/ports/www/lynx 
> (/usr/ports/infrastructure/mk/bsd.port.mk:2601 'all': @lock=lynx-2.8.9rel1p0; 
>  export _LOCKS_HELD=" lynx-...)
> 
> So, instead I disabled clipboard in src/LYMainLoop.c (see diff below),
> and it seems to work now. Would like to see any other
> thoughts/seggestions.
> 
> Also, I had a bit of trouble understanding how to generate diffs for new
> files with cvs. Did I do it correctly?
> 
> $ cd /usr/ports/www/lynx
> $ cvs add patches/patch-src_LYMainLoop_c
> $ cvs diff -uNp

Yes you did, and your patch seems reasonable to me.

Also needs bumping REVISION in ports/www/lynx/Makefile but whoever
commits can handle that.

I'll wait a bit in case there's other feedback but this is OK with me.


> Index: patches/patch-src_LYMainLoop_c
> ===================================================================
> RCS file: patches/patch-src_LYMainLoop_c
> diff -N patches/patch-src_LYMainLoop_c
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_LYMainLoop_c    30 May 2023 11:31:48 -0000
> @@ -0,0 +1,12 @@
> +--- src/LYMainLoop.c.orig    Tue May 30 14:29:30 2023
> ++++ src/LYMainLoop.c Tue May 30 14:30:30 2023
> +@@ -7212,7 +7212,8 @@
> +         handle_LYK_DOWN_HALF(&old_c, real_c);
> +         break;
> + 
> +-#ifdef CAN_CUT_AND_PASTE
> ++/* Disabling clipboard interactions to avoid pledged calls to exec. */
> ++#if 0
> +     case LYK_TO_CLIPBOARD:  /* ^S */
> +         {
> +             char *s;
> 

Reply via email to