Tests for ]8;;https://bugzilla.gnome.org/show_bug.cgi?id=779734\gnome-terminal #779734]8;;\ and ]8;;https://gitlab.com/gnachman/iterm2/issues/5158\iTerm2 #5158]8;;\ ═════════════════════════════════════════════════ commit ]8;;https://git.gnome.org/browse/vte/commit/?id=a9b0b4c75a6dc7282f7cfcaef71413d69f7f0731\a9b0b4c75a6dc7282f7cfcaef71413d69f7f0731]8;;\ Author: Egmont Koblinger <]8;;mailto:egmont@gmail.com\egmont@gmail.com]8;;\> Date: Sat Oct 24 00:12:22 2015 +0200 widget: Implement smooth scrolling ]8;;https://bugzilla.gnome.org/show_bug.cgi?id=746690\Bug #746690]8;;\ commit ]8;;https://git.gnome.org/browse/vte/commit/?id=6a74baeaabb0a1ce54444611b324338f94721a5c\6a74baeaabb0a1ce54444611b324338f94721a5c]8;;\ Merge: ]8;;https://git.gnome.org/browse/vte/commit/?id=3fac4469de267f662c761ea4f247c8017ced483d\3fac446]8;;\ ]8;;https://git.gnome.org/browse/vte/commit/?id=56ea5810759b9943a4203f9382919f058a66f224\56ea581]8;;\ Author: Christian Persch <]8;;mailto:chpe@gnome.org\chpe@gnome.org]8;;\> Date: Mon Apr 27 13:48:52 2015 +0200 Merge branch 'work-html' into merge-html ]8;;file:///var/lib/gconf/defaults/%25gconf-tree.xml\A file with a % sign in its name (escaped as %25)]8;;\ Icons: ]8;;file:///usr/share/icons/Adwaita/256x256/apps/preferences-desktop-theme.png\Theme]8;;\ ]8;;file:///usr/share/icons/Adwaita/256x256/categories/applications-graphics.png\Graphics]8;;\ ]8;;file:///usr/share/icons/Adwaita/256x256/status/starred.png\Star]8;;\ ]8;;file:///usr/share/icons/Adwaita/256x256/actions/system-log-out.png\Exit]8;;\ ]8;;file:///usr/share/icons/Adwaita/512x512/apps/utilities-terminal.png\Terminal]8;;\ Backgrounds: ]8;;file:///usr/share/backgrounds/gnome/Bokeh_Tails.jpg\Bokeh]8;;\ ]8;;file:///usr/share/backgrounds/gnome/Chmiri.jpg\Chmiri]8;;\ ]8;;file:///usr/share/backgrounds/gnome/Dark_Ivy.jpg\Ivy]8;;\ ]8;;file:///usr/share/backgrounds/gnome/Flowerbed.jpg\Flower]8;;\ ]8;;file:///usr/share/backgrounds/gnome/Godafoss_Iceland.jpg\Iceland]8;;\ ]8;;file:///usr/share/backgrounds/gnome/Icescape.jpg\Icescape]8;;\ ]8;;file:///usr/share/backgrounds/gnome/Mirror.jpg\Mirror]8;;\ ]8;;file:///usr/share/backgrounds/gnome/Road.jpg\Road]8;;\ ]8;;file:///usr/share/backgrounds/gnome/Sandstone.jpg\Sandstone]8;;\ ]8;;file:///usr/share/backgrounds/gnome/Stones.jpg\Stones]8;;\ ]8;;file:///usr/share/backgrounds/gnome/Waterfalls.jpg\Waterfalls]8;;\ ]8;;file:///usr/share/backgrounds/gnome/Waves.jpg\Waves]8;;\ ]8;;https://en.wikipedia.org/wiki/\Wiki page of (unescaped raw Latin-1; invalid UTF-8)]8;;\ ]8;;https://en.wikipedia.org/wiki/Á\Wiki page of Á (unescaped raw UTF-8)]8;;\ ]8;;https://en.wikipedia.org/wiki/%C3%81\Wiki page of Á (escaped as %C3%81)]8;;\ ]8;;https://en.wikipedia.org/wiki/%25\Wiki page of % (escaped as %25)]8;;\ ]8;;http://%d8%a7%d9%84%d9%85%d8%ba%d8%b1%d8%a8.icom.museum\http://المغرب.icom.museum (with URI-escaped domain name)]8;;\ ]8;;http://xn--4wa8awb4637h.org\http://xn--4wa8awb4637h.org (Παν語.org)]8;;\ Two adjacent links pointing to the same URL: ]8;;http://example.com/foo\foo]8;;\]8;;http://example.com/foo\foo]8;;\ Two adjacent links pointing to different URLs: ]8;;http://example.com/foo\foo]8;;\]8;;http://example.com/bar\bar]8;;\ The same two without closing the first link: ]8;;http://example.com/foo\foo]8;;http://example.com/foo\foo]8;;\ ]8;;http://example.com/foo\foo]8;;http://example.com/bar\bar]8;;\ A URL wrapping to the next line, and a trailing whitespace: ]8;;http://example.com/foobar\foo bar ]8;;\ ]8;;http://example.com/colors\Multi-colour link also tests that "\e[m" or "\e[0m" does not terminate the link]8;;\ Soft reset "\e[!p" resets attributes and terminates link: ]8;;http://example.com/softreset\foo[!pbar ]8;;http://example.com/width\Some CJK and combining accents: 䀀䀁䀂ćĝm̃n̄o̅]8;;\ (Introducing the "under_score" character for even more fun) Explicit and implicit link: ]8;;http://example.com/under_score\http://example.com/under_score]8;;\ Explicit and implicit link with different targets: ]8;;http://example.com/explicit_under_score\http://example.com/implicit_under_score]8;;\ Explicit and implicit link, broken into two lines: ]8;;http://example.com/under_score\http://examp le.com/under_score]8;;\ Explicitly underlined links ("\e[4m"): Explicit link only: ]8;;http://example.com/under_score\I'm an explicit link with under_score]8;;\ Implicit link only: http://example.com/under_score Both: ]8;;http://example.com/under_score\http://example.com/under_score]8;;\ Conflicting explicit and implicit links: http://example.com/foobar-]8;;http://example.com/explicit\explicit]8;;\-rest Invisible explicit link: «]8;;http://example.com/invisible\Can you see me?]8;;\» Invisible implicit link: «http://example.com/how_about_me» ]8;;asdfghjkl\Explicit link with stupid target]8;;\ ]8;;http://example.com/.........30........40........50........60........70........80........90.......100\URL of 100 bytes]8;;\ ]8;;http://example.com/.........30........40........50........60........70........80........90.......100.......110.......120.......130.......140.......150.......160.......170.......180.......190.......200\URL of 200 bytes]8;;\ ]8;;http://example.com/.........30........40........50........60........70........80........90.......100.......110.......120.......130.......140.......150.......160.......170.......180.......190.......200.......210.......220.......230.......240.......250.......260.......270.......280.......290.......300.......310.......320.......330.......340.......350.......360.......370.......380.......390.......400.......410.......420.......430.......440.......450.......460.......470.......480.......490.......500\URL of 500 bytes]8;;\ ]8;;http://example.com/.........30........40........50........60........70........80........90.......100.......110.......120.......130.......140.......150.......160.......170.......180.......190.......200.......210.......220.......230.......240.......250.......260.......270.......280.......290.......300.......310.......320.......330.......340.......350.......360.......370.......380.......390.......400.......410.......420.......430.......440.......450.......460.......470.......480.......490.......500.......510.......520.......530.......540.......550.......560.......570.......580.......590.......600.......610.......620.......630.......640.......650.......660.......670.......680.......690.......700.......710.......720.......730.......740.......750.......760.......770.......780.......790.......800.......810.......820.......830.......840.......850.......860.......870.......880.......890.......900.......910.......920.......930.......940.......950.......960.......970.......980.......990......1000\URL of 1000 bytes]8;;\ ]8;;http://example.com/.........30........40........50........60........70........80........90.......100.......110.......120.......130.......140.......150.......160.......170.......180.......190.......200.......210.......220.......230.......240.......250.......260.......270.......280.......290.......300.......310.......320.......330.......340.......350.......360.......370.......380.......390.......400.......410.......420.......430.......440.......450.......460.......470.......480.......490.......500.......510.......520.......530.......540.......550.......560.......570.......580.......590.......600.......610.......620.......630.......640.......650.......660.......670.......680.......690.......700.......710.......720.......730.......740.......750.......760.......770.......780.......790.......800.......810.......820.......830.......840.......850.......860.......870.......880.......890.......900.......910.......920.......930.......940.......950.......960.......970.......980.......990......1000......1010......1020......1030......1040......1050......1060......1070......1080......1090......1100......1110......1120......1130......1140......1150......1160......1170......1180......1190......1200......1210......1220......1230......1240......1250......1260......1270......1280......1290......1300......1310......1320......1330......1340......1350......1360......1370......1380......1390......1400......1410......1420......1430......1440......1450......1460......1470......1480......1490......1500\URL of 1500 bytes]8;;\ ]8;;http://example.com/.........30........40........50........60........70........80........90.......100.......110.......120.......130.......140.......150.......160.......170.......180.......190.......200.......210.......220.......230.......240.......250.......260.......270.......280.......290.......300.......310.......320.......330.......340.......350.......360.......370.......380.......390.......400.......410.......420.......430.......440.......450.......460.......470.......480.......490.......500.......510.......520.......530.......540.......550.......560.......570.......580.......590.......600.......610.......620.......630.......640.......650.......660.......670.......680.......690.......700.......710.......720.......730.......740.......750.......760.......770.......780.......790.......800.......810.......820.......830.......840.......850.......860.......870.......880.......890.......900.......910.......920.......930.......940.......950.......960.......970.......980.......990......1000......1010......1020......1030......1040......1050......1060......1070......1080......1090......1100......1110......1120......1130......1140......1150......1160......1170......1180......1190......1200......1210......1220......1230......1240......1250......1260......1270......1280......1290......1300......1310......1320......1330......1340......1350......1360......1370......1380......1390......1400......1410......1420......1430......1440......1450......1460......1470......1480......1490......1500......1510......1520......1530......1540......1550......1560......1570......1580......1590......1600......1610......1620......1630......1640......1650......1660......1670......1680......1690......1700......1710......1720......1730......1740......1750......1760......1770......1780......1790......1800......1810......1820......1830......1840......1850......1860......1870......1880......1890......1900......1910......1920......1930......1940......1950......1960......1970......1980......1990......2000\URL of 2000 bytes]8;;\ ]8;;http://example.com/.........30........40........50........60........70........80........90.......100.......110.......120.......130.......140.......150.......160.......170.......180.......190.......200.......210.......220.......230.......240.......250.......260.......270.......280.......290.......300.......310.......320.......330.......340.......350.......360.......370.......380.......390.......400.......410.......420.......430.......440.......450.......460.......470.......480.......490.......500.......510.......520.......530.......540.......550.......560.......570.......580.......590.......600.......610.......620.......630.......640.......650.......660.......670.......680.......690.......700.......710.......720.......730.......740.......750.......760.......770.......780.......790.......800.......810.......820.......830.......840.......850.......860.......870.......880.......890.......900.......910.......920.......930.......940.......950.......960.......970.......980.......990......1000......1010......1020......1030......1040......1050......1060......1070......1080......1090......1100......1110......1120......1130......1140......1150......1160......1170......1180......1190......1200......1210......1220......1230......1240......1250......1260......1270......1280......1290......1300......1310......1320......1330......1340......1350......1360......1370......1380......1390......1400......1410......1420......1430......1440......1450......1460......1470......1480......1490......1500......1510......1520......1530......1540......1550......1560......1570......1580......1590......1600......1610......1620......1630......1640......1650......1660......1670......1680......1690......1700......1710......1720......1730......1740......1750......1760......1770......1780......1790......1800......1810......1820......1830......1840......1850......1860......1870......1880......1890......1900......1910......1920......1930......1940......1950......1960......1970......1980......1990......2000......2010......2020......2030......2040......2050......2060......2070......2080...\URL of 2083 bytes]8;;\ ]8;;http://example.com/.........30........40........50........60........70........80........90.......100.......110.......120.......130.......140.......150.......160.......170.......180.......190.......200.......210.......220.......230.......240.......250.......260.......270.......280.......290.......300.......310.......320.......330.......340.......350.......360.......370.......380.......390.......400.......410.......420.......430.......440.......450.......460.......470.......480.......490.......500.......510.......520.......530.......540.......550.......560.......570.......580.......590.......600.......610.......620.......630.......640.......650.......660.......670.......680.......690.......700.......710.......720.......730.......740.......750.......760.......770.......780.......790.......800.......810.......820.......830.......840.......850.......860.......870.......880.......890.......900.......910.......920.......930.......940.......950.......960.......970.......980.......990......1000......1010......1020......1030......1040......1050......1060......1070......1080......1090......1100......1110......1120......1130......1140......1150......1160......1170......1180......1190......1200......1210......1220......1230......1240......1250......1260......1270......1280......1290......1300......1310......1320......1330......1340......1350......1360......1370......1380......1390......1400......1410......1420......1430......1440......1450......1460......1470......1480......1490......1500......1510......1520......1530......1540......1550......1560......1570......1580......1590......1600......1610......1620......1630......1640......1650......1660......1670......1680......1690......1700......1710......1720......1730......1740......1750......1760......1770......1780......1790......1800......1810......1820......1830......1840......1850......1860......1870......1880......1890......1900......1910......1920......1930......1940......1950......1960......1970......1980......1990......2000......2010......2020......2030......2040......2050......2060......2070......2080....\URL of 2084 bytes]8;;\ ]8;id=........10........20........30........40........50........60........70........80........90.......100.......110.......120.......130.......140.......150.......160.......170.......180.......190.......200.......210.......220.......230.......240.......250;http://example.com/id\ID of 250 bytes once,]8;;\ ]8;id=........10........20........30........40........50........60........70........80........90.......100.......110.......120.......130.......140.......150.......160.......170.......180.......190.......200.......210.......220.......230.......240.......250;http://example.com/id\twice]8;;\ ]8;id=........10........20........30........40........50........60........70........80........90.......100.......110.......120.......130.......140.......150.......160.......170.......180.......190.......200.......210.......220.......230.......240.......250.;http://example.com/id\ID of 251 bytes once,]8;;\ ]8;id=........10........20........30........40........50........60........70........80........90.......100.......110.......120.......130.......140.......150.......160.......170.......180.......190.......200.......210.......220.......230.......240.......250.;http://example.com/id\twice]8;;\ ]8;id=........10........20........30........40........50........60........70........80........90.......100.......110.......120.......130.......140.......150.......160.......170.......180.......190.......200.......210.......220.......230.......240.......250;http://example.com/.........30........40........50........60........70........80........90.......100.......110.......120.......130.......140.......150.......160.......170.......180.......190.......200.......210.......220.......230.......240.......250.......260.......270.......280.......290.......300.......310.......320.......330.......340.......350.......360.......370.......380.......390.......400.......410.......420.......430.......440.......450.......460.......470.......480.......490.......500.......510.......520.......530.......540.......550.......560.......570.......580.......590.......600.......610.......620.......630.......640.......650.......660.......670.......680.......690.......700.......710.......720.......730.......740.......750.......760.......770.......780.......790.......800.......810.......820.......830.......840.......850.......860.......870.......880.......890.......900.......910.......920.......930.......940.......950.......960.......970.......980.......990......1000......1010......1020......1030......1040......1050......1060......1070......1080......1090......1100......1110......1120......1130......1140......1150......1160......1170......1180......1190......1200......1210......1220......1230......1240......1250......1260......1270......1280......1290......1300......1310......1320......1330......1340......1350......1360......1370......1380......1390......1400......1410......1420......1430......1440......1450......1460......1470......1480......1490......1500......1510......1520......1530......1540......1550......1560......1570......1580......1590......1600......1610......1620......1630......1640......1650......1660......1670......1680......1690......1700......1710......1720......1730......1740......1750......1760......1770......1780......1790......1800......1810......1820......1830......1840......1850......1860......1870......1880......1890......1900......1910......1920......1930......1940......1950......1960......1970......1980......1990......2000......2010......2020......2030......2040......2050......2060......2070......2080...\ID of 250 bytes + URL of 2083 bytes]8;;\ ]8;id=........10........20........30........40........50........60........70........80........90.......100.......110.......120.......130.......140.......150.......160.......170.......180.......190.......200.......210.......220.......230.......240.......250.;http://example.com/.........30........40........50........60........70........80........90.......100.......110.......120.......130.......140.......150.......160.......170.......180.......190.......200.......210.......220.......230.......240.......250.......260.......270.......280.......290.......300.......310.......320.......330.......340.......350.......360.......370.......380.......390.......400.......410.......420.......430.......440.......450.......460.......470.......480.......490.......500.......510.......520.......530.......540.......550.......560.......570.......580.......590.......600.......610.......620.......630.......640.......650.......660.......670.......680.......690.......700.......710.......720.......730.......740.......750.......760.......770.......780.......790.......800.......810.......820.......830.......840.......850.......860.......870.......880.......890.......900.......910.......920.......930.......940.......950.......960.......970.......980.......990......1000......1010......1020......1030......1040......1050......1060......1070......1080......1090......1100......1110......1120......1130......1140......1150......1160......1170......1180......1190......1200......1210......1220......1230......1240......1250......1260......1270......1280......1290......1300......1310......1320......1330......1340......1350......1360......1370......1380......1390......1400......1410......1420......1430......1440......1450......1460......1470......1480......1490......1500......1510......1520......1530......1540......1550......1560......1570......1580......1590......1600......1610......1620......1630......1640......1650......1660......1670......1680......1690......1700......1710......1720......1730......1740......1750......1760......1770......1780......1790......1800......1810......1820......1830......1840......1850......1860......1870......1880......1890......1900......1910......1920......1930......1940......1950......1960......1970......1980......1990......2000......2010......2020......2030......2040......2050......2060......2070......2080...\ID of 251 bytes + URL of 2083 bytes]8;;\ ]8;id=........10........20........30........40........50........60........70........80........90.......100.......110.......120.......130.......140.......150.......160.......170.......180.......190.......200.......210.......220.......230.......240.......250;http://example.com/.........30........40........50........60........70........80........90.......100.......110.......120.......130.......140.......150.......160.......170.......180.......190.......200.......210.......220.......230.......240.......250.......260.......270.......280.......290.......300.......310.......320.......330.......340.......350.......360.......370.......380.......390.......400.......410.......420.......430.......440.......450.......460.......470.......480.......490.......500.......510.......520.......530.......540.......550.......560.......570.......580.......590.......600.......610.......620.......630.......640.......650.......660.......670.......680.......690.......700.......710.......720.......730.......740.......750.......760.......770.......780.......790.......800.......810.......820.......830.......840.......850.......860.......870.......880.......890.......900.......910.......920.......930.......940.......950.......960.......970.......980.......990......1000......1010......1020......1030......1040......1050......1060......1070......1080......1090......1100......1110......1120......1130......1140......1150......1160......1170......1180......1190......1200......1210......1220......1230......1240......1250......1260......1270......1280......1290......1300......1310......1320......1330......1340......1350......1360......1370......1380......1390......1400......1410......1420......1430......1440......1450......1460......1470......1480......1490......1500......1510......1520......1530......1540......1550......1560......1570......1580......1590......1600......1610......1620......1630......1640......1650......1660......1670......1680......1690......1700......1710......1720......1730......1740......1750......1760......1770......1780......1790......1800......1810......1820......1830......1840......1850......1860......1870......1880......1890......1900......1910......1920......1930......1940......1950......1960......1970......1980......1990......2000......2010......2020......2030......2040......2050......2060......2070......2080....\ID of 250 bytes + URL of 2084 bytes]8;;\ ]8;id=........10........20........30........40........50........60........70........80........90.......100.......110.......120.......130.......140.......150.......160.......170.......180.......190.......200.......210.......220.......230.......240.......250.;http://example.com/.........30........40........50........60........70........80........90.......100.......110.......120.......130.......140.......150.......160.......170.......180.......190.......200.......210.......220.......230.......240.......250.......260.......270.......280.......290.......300.......310.......320.......330.......340.......350.......360.......370.......380.......390.......400.......410.......420.......430.......440.......450.......460.......470.......480.......490.......500.......510.......520.......530.......540.......550.......560.......570.......580.......590.......600.......610.......620.......630.......640.......650.......660.......670.......680.......690.......700.......710.......720.......730.......740.......750.......760.......770.......780.......790.......800.......810.......820.......830.......840.......850.......860.......870.......880.......890.......900.......910.......920.......930.......940.......950.......960.......970.......980.......990......1000......1010......1020......1030......1040......1050......1060......1070......1080......1090......1100......1110......1120......1130......1140......1150......1160......1170......1180......1190......1200......1210......1220......1230......1240......1250......1260......1270......1280......1290......1300......1310......1320......1330......1340......1350......1360......1370......1380......1390......1400......1410......1420......1430......1440......1450......1460......1470......1480......1490......1500......1510......1520......1530......1540......1550......1560......1570......1580......1590......1600......1610......1620......1630......1640......1650......1660......1670......1680......1690......1700......1710......1720......1730......1740......1750......1760......1770......1780......1790......1800......1810......1820......1830......1840......1850......1860......1870......1880......1890......1900......1910......1920......1930......1940......1950......1960......1970......1980......1990......2000......2010......2020......2030......2040......2050......2060......2070......2080....\ID of 251 bytes + URL of 2084 bytes]8;;\ ]8;;http://example.com/BELBEL instead of ST]8;; (not standard) 8;;http://example.com/C1œC1 (U+009D [UTF-8: 0xC2 0x9D] as OSC and U+009C [UTF-8: 0xC2 0x9C] as ST)8;;œ (note: not all terminal emulators support C1 in UTF-8) Cursor movement within the same OSC 8 run: ]8;;http://example.com/cursor\moveright]8;;\ Alternating URIs, all with the same ID. Either all foos or all bars should be underlined on hover: ]8;id=1;http://example.com/foo\foo]8;;\]8;id=1;http://example.com/bar\bar]8;;\]8;foo=bar:id=1;http://example.com/foo\foo]8;;\]8;id=1;http://example.com/bar\bar]8;;\]8;id=1:baz=quux;http://example.com/foo\foo]8;;\]8;id=1;http://example.com/bar\bar]8;;\]8;foo=bar:id=1:baz=quux;http://example.com/foo\foo]8;;\ Screenshot from an imaginary text editor: ╔═ file1 ════╗ ║ ╔═ file2 ═══╗ ║]8;id=imaginary-text-editor-file1;http://example.com\http://exa]8;;\║Lorem ipsum║ ║]8;id=imaginary-text-editor-file1;http://example.com\le.com]8;;\ ║ dolor sit ║ ║ ║amet, conse║ ╚══════════║ctetur adip║ ╚═══════════╝