47 Commits

Author SHA1 Message Date
Storm Dragon
16d146a9ae Implement reliable HTML heading navigation using tag-based detection
This commit completely overhauls the heading navigation feature (d/shift+D keys)
to use actual HTML tag information instead of unreliable text-based heuristics.

Key improvements:
- Navigation now works 100% reliably by tracking actual <h1>-<h6> HTML tags
- Eliminates false positives from bold text, links, and buttons
- No longer navigates to blank lines around headings
- Provides true screen reader-style heading navigation

Technical implementation:
- Added LINE_FLAG_HEADING flag to mark heading lines during HTML processing
- Enhanced readbuffer with in_heading field to track heading tag state
- Modified HTML parser to set/clear heading flags on <h>/<\/h> tags
- Updated TextLine and Line structures to preserve heading information
- Simplified navigation functions to use reliable flag-based detection
- Added content length check to avoid marking blank spacing lines

Also includes compilation fixes for modern GCC:
- Fixed function pointer type compatibility issues
- Updated signal handler declarations
- Resolved deprecation warnings for various system calls

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-16 02:11:37 -04:00
Storm Dragon
d20be554e3 Initial commit with heading and form navigation keys added. 2025-08-15 02:17:12 -04:00
Tatsuya Kinoshita
57b6c8ecd1 Merge pull request #251 from nsanmartin/high-intensity-colors
Add high-intensity colors option and cli flag.
2023-01-04 19:16:58 +09:00
Tatsuya Kinoshita
9724f060ef Merge pull request #246 from rokuyama/master
For sixel, no need to round image size to multiple of character size.
2022-12-25 10:08:48 +09:00
nico
4922d25917 Add high-intensity colors option and cli flag. 2022-11-19 13:39:15 -03:00
Rin Okuyama
8d7db37efc For sixel, no need to round image size to multiple of character size.
With this fix combined with fix to libsixel:

https://github.com/saitoha/libsixel/pull/170

browsing on slow machines (e.g., when floating-point calculation is
emulated by kernel) gets significantly speed up.

Note that if i->cache->a_width (i->cache->a_height) is zero, width
(height) should be set to zero. Otherwise, image in screen boundary
(i.e., partially displayed) becomes strangely resized.
2022-09-02 21:07:11 +09:00
NRK
faeebc076c fix all -Wmissing-prototypes warnings 2022-04-29 15:59:13 +06:00
NRK
d9284b1193 fix some -Wstrict-prototypes warnings 2022-04-29 15:59:13 +06:00
Rene Kita
cf2fd623fc Use cast to suppress warning 2022-02-20 11:14:54 +01:00
Rene Kita
b25abc595c Let strncpy write the null terminator 2022-02-20 11:14:53 +01:00
bptato
9e33f9ee12 Fix null pointer dereference in put_image_kitty 2021-05-16 11:25:53 +02:00
bptato
694a10271d Return Str from base64_encode, fix extraction of first gif frame for animations in put_image_kitty 2021-04-04 17:57:13 +02:00
bptato
60fd20597c Fix file handle leaks in kitty and iTerm2 image display 2021-03-05 15:44:44 +01:00
bptato
081f42e35c Convert images to PNG for kitty with ImageMagick 2021-02-19 23:48:52 +01:00
bptato
728fb34e28 Fix potential segfault 2021-02-18 20:37:06 +01:00
bptato
da628ebd88 Fix small images on kitty 2021-02-18 20:27:48 +01:00
bptato
3304675aff Support kitty image protocol 2021-02-18 19:18:06 +01:00
bptato
de26f6156c Handle iTerm2 images more efficiently 2021-02-18 17:23:42 +01:00
bptato
e4570e8b6e Support iTerm2 graphics protocol, replace encodeB with base64_encode 2021-02-02 22:14:46 +01:00
HIGUCHI Daisuke (VDR dai)
57b37c223b fix spelling error 2017-12-25 07:02:21 +09:00
David Crosby
7e5b33c30e Remove dead assignments flagged by Clang static analysis 2015-08-11 21:59:27 +09:00
Egmont Koblinger
b449322c1a Support sgrmouse for skip_escseq
Origin: https://sourceforge.net/p/w3m/patches/65/#e2aa
2015-08-09 06:57:00 +09:00
Daniel Schepler
53a9515b18 Wrap the functions used by image.c in USE_IMAGE
Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=789539
2015-06-23 06:58:04 +09:00
Araki Ken
2e8def7ab6 Add README.sixel. W3M_IMG2SIXEL environmental variable enables to specify options of img2sixel. 2014-12-06 20:47:05 +09:00
Araki Ken
982a8feab0 * Add n_terminal_image argument to put_image_{sixel|osc5379}(). * Use struct winsize to calculate ppc and ppl. 2014-12-06 20:47:05 +09:00
Araki Ken
f64d6bb899 If SCREEN_VARIANT=sixel on GNU screen, exec img2sixel without -P option. 2014-12-06 20:47:05 +09:00
Araki Ken
df84882eb3 ttymode_set() -> ttymode_reset(). 2014-12-06 20:47:05 +09:00
Araki Ken
78ae4478df Fix. 2014-12-06 20:47:05 +09:00
Araki Ken
3f3906151b Support GNU screen. 2014-12-06 20:47:05 +09:00
Araki Ken
0c25fd96f7 Show GIF (except animation GIF) correctly. 2014-12-06 20:47:05 +09:00
Araki Ken
4459dbe26e img2sixel exits by Ctrl+C. Enable GIF Animation if 'I' is pressed to show it. 2014-12-06 20:47:05 +09:00
Araki Ken
4a9c976e32 Show the first frame of animation gif files. 2014-12-06 20:47:05 +09:00
Araki Ken
e8b2d47358 system() -> fork()&execvp() 2014-12-06 20:47:05 +09:00
Araki Ken
2fe66f3a6f Add -sixel option which supports image processing by img2sixel. 2014-12-06 20:47:05 +09:00
Araki Ken
f941b1d562 * terms.c: Clear fd_set by FD_ZERO() before select(). 2014-12-06 20:47:04 +09:00
Araki Ken
a95a178971 * terms.c: Change time to wait for the response of "\x1b[14t\x1b[18t" from 0.1 sec to 0.5 sec.
* image.c:
  - clearImage() works.
  - Use cached image files created by w3m in getImage().

* file.c: Hack for alignment.
2014-12-06 20:47:04 +09:00
Araki Ken
147ef0048b - Adjust the image size to the terminal cell size. - If the image size is specified in html source, skip to load the image. 2014-12-06 20:47:04 +09:00
Araki Ken
f4268d8d18 Support remote image by OSC 5379 show_picture sequence. 2014-12-06 20:47:04 +09:00
Peter Poeml
c6f15256e9 Prevent segfault when editing a textarea field with vi
add fix for segfault that can occur when editing a textarea field
with vi, and returning to w3m (it seems to happen if the terminal
is not writable, as when using w3m after 'su - some_user')

Origin: https://build.opensuse.org/package/view_file/openSUSE:Factory/w3m/w3m-0.4.1-textarea-segfault.dif?expand=1
2014-12-06 16:50:16 +09:00
Tatsuya Kinoshita
9330f2393b Merge branch 'bug/cygwin-lang' 2013-10-14 09:18:07 +09:00
Jarek Czekalski
01d0530995 Fix paren in check_cygwin_console()
Bug: https://sourceforge.net/p/w3m/patches/66/
2013-10-14 09:17:35 +09:00
Tatsuya Kinoshita
af8e8cf7d1 Merge branch 'bug/cygwin-lang' 2013-10-13 12:33:34 +09:00
Tatsuya Kinoshita
f9ad57b0d3 Do not fail when LANG is not set
Check whether the value of LC_ALL, LC_CTYPE or LANG is not NULL in
check_cygwin_console().
Bug: https://sourceforge.net/p/w3m/patches/66/
2013-10-13 09:58:51 +09:00
Tatsuya Kinoshita
a342af3d63 Support SGR 1006 mouse reporting
Patch to support SGR 1006 mouse reporting, from [w3m-dev 04466]
on 2012-07-15, provided by Hayaki Saito.
2013-04-08 21:36:33 +09:00
Tatsuya Kinoshita
5397d09e58 Adding upstream version 0.5.3 2011-05-04 16:41:45 +09:00
Tatsuya Kinoshita
6db339b3d7 Adding upstream version 0.5.2 2011-05-04 16:23:02 +09:00
Tatsuya Kinoshita
72f72d64a4 Adding upstream version 0.5.1 2011-05-04 16:05:14 +09:00