From 56b4fcc760cc2eee01f0f3553343688649495fd7 Mon Sep 17 00:00:00 2001 From: "Antoine R. Dumont (@ardumont)" <ardumont@softwareheritage.org> Date: Tue, 11 Jul 2023 18:41:11 +0200 Subject: [PATCH] Add stagit lister That lister is really near the cgit & gitweb implementations. But the dom data is again structured differently though so this implementation stands on its own. Refs. swh/meta#5048 --- setup.py | 1 + swh/lister/stagit/__init__.py | 12 ++ swh/lister/stagit/lister.py | 155 ++++++++++++++++++ swh/lister/stagit/tasks.py | 16 ++ swh/lister/stagit/tests/__init__.py | 0 .../tests/data/https_codemadness.org/README | 2 + .../tests/data/https_codemadness.org/foobar | 33 ++++ .../https_codemadness.org/foobar_bmf_log.html | 1 + .../foobar_dmenu_log.html | 1 + .../https_codemadness.org/foobar_dwm_log.html | 1 + .../foobar_stagit_log.html | 1 + .../tests/data/https_codemadness.org/git | 28 ++++ .../https_codemadness.org/git_bmf_log.html | 60 +++++++ .../https_codemadness.org/git_dmenu_log.html | 125 ++++++++++++++ .../https_codemadness.org/git_dwm_log.html | 125 ++++++++++++++ .../https_codemadness.org/git_stagit_log.html | 125 ++++++++++++++ swh/lister/stagit/tests/test_lister.py | 128 +++++++++++++++ swh/lister/stagit/tests/test_tasks.py | 30 ++++ swh/lister/tests/test_cli.py | 3 + 19 files changed, 847 insertions(+) create mode 100644 swh/lister/stagit/__init__.py create mode 100644 swh/lister/stagit/lister.py create mode 100644 swh/lister/stagit/tasks.py create mode 100644 swh/lister/stagit/tests/__init__.py create mode 100644 swh/lister/stagit/tests/data/https_codemadness.org/README create mode 100644 swh/lister/stagit/tests/data/https_codemadness.org/foobar create mode 120000 swh/lister/stagit/tests/data/https_codemadness.org/foobar_bmf_log.html create mode 120000 swh/lister/stagit/tests/data/https_codemadness.org/foobar_dmenu_log.html create mode 120000 swh/lister/stagit/tests/data/https_codemadness.org/foobar_dwm_log.html create mode 120000 swh/lister/stagit/tests/data/https_codemadness.org/foobar_stagit_log.html create mode 100644 swh/lister/stagit/tests/data/https_codemadness.org/git create mode 100644 swh/lister/stagit/tests/data/https_codemadness.org/git_bmf_log.html create mode 100644 swh/lister/stagit/tests/data/https_codemadness.org/git_dmenu_log.html create mode 100644 swh/lister/stagit/tests/data/https_codemadness.org/git_dwm_log.html create mode 100644 swh/lister/stagit/tests/data/https_codemadness.org/git_stagit_log.html create mode 100644 swh/lister/stagit/tests/test_lister.py create mode 100644 swh/lister/stagit/tests/test_tasks.py diff --git a/setup.py b/setup.py index 456cd0e7..983feb03 100755 --- a/setup.py +++ b/setup.py @@ -89,6 +89,7 @@ setup( lister.pypi=swh.lister.pypi:register lister.rubygems=swh.lister.rubygems:register lister.sourceforge=swh.lister.sourceforge:register + lister.stagit=swh.lister.stagit:register lister.tuleap=swh.lister.tuleap:register lister.maven=swh.lister.maven:register """, diff --git a/swh/lister/stagit/__init__.py b/swh/lister/stagit/__init__.py new file mode 100644 index 00000000..6a93edfa --- /dev/null +++ b/swh/lister/stagit/__init__.py @@ -0,0 +1,12 @@ +# Copyright (C) 2023 The Software Heritage developers +# License: GNU General Public License version 3, or any later version +# See top-level LICENSE file for more information + + +def register(): + from .lister import StagitLister + + return { + "lister": StagitLister, + "task_modules": [f"{__name__}.tasks"], + } diff --git a/swh/lister/stagit/lister.py b/swh/lister/stagit/lister.py new file mode 100644 index 00000000..b87ca66b --- /dev/null +++ b/swh/lister/stagit/lister.py @@ -0,0 +1,155 @@ +# Copyright (C) 2023 The Software Heritage developers +# License: GNU General Public License version 3, or any later version +# See top-level LICENSE file for more information + +from datetime import datetime, timezone +import logging +import re +from typing import Any, Dict, Iterator, List, Optional +from urllib.parse import urlparse + +from bs4 import BeautifulSoup +from requests.exceptions import HTTPError + +from swh.lister.pattern import CredentialsType, StatelessLister +from swh.scheduler.interface import SchedulerInterface +from swh.scheduler.model import ListedOrigin + +logger = logging.getLogger(__name__) + +Repositories = List[Dict[str, Any]] + + +class StagitLister(StatelessLister[Repositories]): + """Lister class for Stagit forge instances. + + This lister will retrieve the list of published git repositories by + parsing the HTML page(s) of the index retrieved at `url`. + + """ + + LISTER_NAME = "stagit" + + def __init__( + self, + scheduler: SchedulerInterface, + url: Optional[str] = None, + instance: Optional[str] = None, + credentials: Optional[CredentialsType] = None, + max_origins_per_page: Optional[int] = None, + max_pages: Optional[int] = None, + enable_origins: bool = True, + ): + """Lister class for Stagit repositories. + + Args: + url: (Optional) Root URL of the Stagit instance, i.e. url of the index of + published git repositories on this instance. Defaults to + :file:`https://{instance}` if unset. + instance: Name of stagit instance. Defaults to url's network location + if unset. + + """ + super().__init__( + scheduler=scheduler, + url=url, + instance=instance, + credentials=credentials, + max_origins_per_page=max_origins_per_page, + max_pages=max_pages, + enable_origins=enable_origins, + ) + + self.session.headers.update({"Accept": "application/html"}) + + def _get_and_parse(self, url: str) -> BeautifulSoup: + """Get the given url and parse the retrieved HTML using BeautifulSoup""" + response = self.http_request(url) + return BeautifulSoup(response.text, features="html.parser") + + def get_pages(self) -> Iterator[Repositories]: + """Generate git 'project' URLs found on the current Stagit server.""" + bs_idx = self._get_and_parse(self.url) + + page_results = [] + + for tr in bs_idx.find("table", {"id": re.compile("index")}).find_all("tr"): + link = tr.find("a") + if not link: + continue + + repo_description_url = self.url + "/" + link["href"] + + # This retrieves the date in format "%Y-%m-%d %H:%M" + tds = tr.find_all("td") + last_update = tds[-1].text if tds and tds[-1] else None + + page_results.append( + {"url": repo_description_url, "last_update": last_update} + ) + + yield page_results + + def get_origins_from_page( + self, repositories: Repositories + ) -> Iterator[ListedOrigin]: + """Convert a page of stagit repositories into a list of ListedOrigins.""" + assert self.lister_obj.id is not None + + for repo in repositories: + origin_url = self._get_origin_from_repository_url(repo["url"]) + if origin_url is None: + continue + + yield ListedOrigin( + lister_id=self.lister_obj.id, + url=origin_url, + visit_type="git", + last_update=_parse_date(repo["last_update"]), + ) + + def _get_origin_from_repository_url(self, repository_url: str) -> Optional[str]: + """Extract the git url from the repository page""" + try: + bs = self._get_and_parse(repository_url) + except HTTPError as e: + logger.warning( + "Unexpected HTTP status code %s on %s", + e.response.status_code, + e.response.url, + ) + return None + + urls = [ + td.find("a")["href"] + for row in bs.find_all("tr", {"class": "url"}) + for td in row.find_all("td") + if td.text.startswith("git clone") + ] + + if not urls: + return None + + urls = [url for url in urls if urlparse(url).scheme in ("https", "http", "git")] + if not urls: + return None + return urls[0] + + +def _parse_date(date: Optional[str]) -> Optional[datetime]: + """Parse the last update date.""" + if not date: + return None + + parsed_date = None + try: + parsed_date = datetime.strptime(date, "%Y-%m-%d %H:%M").replace( + tzinfo=timezone.utc + ) + except Exception: + logger.warning( + "Could not parse last_update date: %s", + date, + ) + + return parsed_date diff --git a/swh/lister/stagit/tasks.py b/swh/lister/stagit/tasks.py new file mode 100644 index 00000000..48a38407 --- /dev/null +++ b/swh/lister/stagit/tasks.py @@ -0,0 +1,16 @@ +# Copyright (C) 2023 The Software Heritage developers +# License: GNU General Public License version 3, or any later version +# See top-level LICENSE file for more information + +from typing import Dict + +from celery import shared_task + +from .lister import StagitLister + + +@shared_task(name=f"{__name__}.StagitListerTask") +def list_stagit(**lister_args) -> Dict[str, str]: + """Lister task for Stagit instances""" + lister = StagitLister.from_configfile(**lister_args) + return lister.run().dict() diff --git a/swh/lister/stagit/tests/__init__.py b/swh/lister/stagit/tests/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/swh/lister/stagit/tests/data/https_codemadness.org/README b/swh/lister/stagit/tests/data/https_codemadness.org/README new file mode 100644 index 00000000..2c03c9c2 --- /dev/null +++ b/swh/lister/stagit/tests/data/https_codemadness.org/README @@ -0,0 +1,2 @@ +These files are a partial dump of https://codemadness.org/git/. + diff --git a/swh/lister/stagit/tests/data/https_codemadness.org/foobar b/swh/lister/stagit/tests/data/https_codemadness.org/foobar new file mode 100644 index 00000000..55b06196 --- /dev/null +++ b/swh/lister/stagit/tests/data/https_codemadness.org/foobar @@ -0,0 +1,33 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Repositories</title> +<link rel="icon" type="image/png" href="favicon.png" /> +<link rel="stylesheet" type="text/css" href="style.css" /> +</head> +<body> +<table> +<tr><td><img src="logo.png" alt="" width="32" height="32" /></td> +<td><span class="desc">Repositories</span></td></tr><tr><td></td><td> +</td></tr> +</table> +<hr/> +<div id="content"> +<table id="index"><thead> +<tr><td><b>Name</b></td><td><b>Description</b></td><td><b>Owner</b></td><td><b>Last commit</b></td></tr></thead><tbody> +<tr><td><a href="bmf/log.html">bmf</a></td><td>bmf (Bayesian Mail Filter) 0.9.4 fork + patches +</td><td></td><td>2020-02-04 22:03</td></tr><tr><td><a href="dmenu/log.html">dmenu</a></td><td>my customized version of dmenu (hiltjo branch) +</td><td>Hiltjo Posthuma</td><td>2022-05-01 16:38</td></tr><tr><td><a href="dwm/log.html">dwm</a></td><td>my customized version of dwm (hiltjo branch) +</td><td>Hiltjo Posthuma</td><td>2023-04-10 10:34</td></tr><tr><td><a href="stagit/log.html">stagit</a></td><td>static git page generator +</td><td>Hiltjo Posthuma</td><td>2020-03-03 23:49</td></tr></tbody> +</td><td>Hiltjo Posthuma</td><td>2021-07-20 13:20</td></tr><tr><td><a href="twitch-go/log.html">twitch-go</a></td><td>twitch.tv web application in Go +</td><td>Hiltjo Posthuma</td><td>2019-05-02 18:14</td></tr><tr><td><a href="webdump/log.html">webdump</a></td><td>Text-based web client/page dump (experiment) +</td><td>Hiltjo Posthuma</td><td>2023-03-20 20:32</td></tr><tr><td><a href="www.codemadness.org/log.html">www.codemadness.org</a></td><td>www.codemadness.org saait content files +</td><td>Hiltjo Posthuma</td><td>2023-05-20 09:50</td></tr><tr><td><a href="xmlparser/log.html">xmlparser</a></td><td>XML parser +</td><td>Hiltjo Posthuma</td><td>2023-05-14 21:59</td></tr><tr><td><a href="xscreenshot/log.html">xscreenshot</a></td><td>screen capture tool +</table> +</div> +</body> +</html> diff --git a/swh/lister/stagit/tests/data/https_codemadness.org/foobar_bmf_log.html b/swh/lister/stagit/tests/data/https_codemadness.org/foobar_bmf_log.html new file mode 120000 index 00000000..b7ff337f --- /dev/null +++ b/swh/lister/stagit/tests/data/https_codemadness.org/foobar_bmf_log.html @@ -0,0 +1 @@ +git_bmf_log.html \ No newline at end of file diff --git a/swh/lister/stagit/tests/data/https_codemadness.org/foobar_dmenu_log.html b/swh/lister/stagit/tests/data/https_codemadness.org/foobar_dmenu_log.html new file mode 120000 index 00000000..06517b85 --- /dev/null +++ b/swh/lister/stagit/tests/data/https_codemadness.org/foobar_dmenu_log.html @@ -0,0 +1 @@ +git_dmenu_log.html \ No newline at end of file diff --git a/swh/lister/stagit/tests/data/https_codemadness.org/foobar_dwm_log.html b/swh/lister/stagit/tests/data/https_codemadness.org/foobar_dwm_log.html new file mode 120000 index 00000000..d167b8be --- /dev/null +++ b/swh/lister/stagit/tests/data/https_codemadness.org/foobar_dwm_log.html @@ -0,0 +1 @@ +git_dwm_log.html \ No newline at end of file diff --git a/swh/lister/stagit/tests/data/https_codemadness.org/foobar_stagit_log.html b/swh/lister/stagit/tests/data/https_codemadness.org/foobar_stagit_log.html new file mode 120000 index 00000000..63036ac9 --- /dev/null +++ b/swh/lister/stagit/tests/data/https_codemadness.org/foobar_stagit_log.html @@ -0,0 +1 @@ +git_stagit_log.html \ No newline at end of file diff --git a/swh/lister/stagit/tests/data/https_codemadness.org/git b/swh/lister/stagit/tests/data/https_codemadness.org/git new file mode 100644 index 00000000..c6660bfe --- /dev/null +++ b/swh/lister/stagit/tests/data/https_codemadness.org/git @@ -0,0 +1,28 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Repositories</title> +<link rel="icon" type="image/png" href="favicon.png" /> +<link rel="stylesheet" type="text/css" href="style.css" /> +</head> +<body> +<table> +<tr><td><img src="logo.png" alt="" width="32" height="32" /></td> +<td><span class="desc">Repositories</span></td></tr><tr><td></td><td> +</td></tr> +</table> +<hr/> +<div id="content"> +<table id="index"><thead> +<tr><td><b>Name</b></td><td><b>Description</b></td><td><b>Owner</b></td><td><b>Last commit</b></td></tr></thead><tbody> +<tr><td><a href="bmf/log.html">bmf</a></td><td>bmf (Bayesian Mail Filter) 0.9.4 fork + patches +</td><td></td><td>2020-02-04 22:03</td></tr><tr><td><a href="dmenu/log.html">dmenu</a></td><td>my customized version of dmenu (hiltjo branch) +</td><td>Hiltjo Posthuma</td><td>2022-05-01 16:38</td></tr><tr><td><a href="dwm/log.html">dwm</a></td><td>my customized version of dwm (hiltjo branch) +</td><td>Hiltjo Posthuma</td><td>2023-04-10 10:34</td></tr><tr><td><a href="stagit/log.html">stagit</a></td><td>static git page generator +</td><td>Hiltjo Posthuma</td><td>2020-03-03 23:49</td></tr></tbody> +</table> +</div> +</body> +</html> diff --git a/swh/lister/stagit/tests/data/https_codemadness.org/git_bmf_log.html b/swh/lister/stagit/tests/data/https_codemadness.org/git_bmf_log.html new file mode 100644 index 00000000..9c1345aa --- /dev/null +++ b/swh/lister/stagit/tests/data/https_codemadness.org/git_bmf_log.html @@ -0,0 +1,60 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Log - bmf - bmf (Bayesian Mail Filter) 0.9.4 fork + patches +</title> +<link rel="icon" type="image/png" href="favicon.png" /> +<link rel="alternate" type="application/atom+xml" title="bmf Atom Feed" href="atom.xml" /> +<link rel="alternate" type="application/atom+xml" title="bmf Atom Feed (tags)" href="tags.xml" /> +<link rel="stylesheet" type="text/css" href="style.css" /> +</head> +<body> +<table><tr><td><a href="../"><img src="logo.png" alt="" width="32" height="32" /></a></td><td><h1>bmf</h1><span class="desc">bmf (Bayesian Mail Filter) 0.9.4 fork + patches +</span></td></tr><tr class="url"><td></td><td>git clone <a href="git://git.codemadness.org/bmf">git://git.codemadness.org/bmf</a></td></tr><tr><td></td><td> +<a href="log.html">Log</a> | <a href="files.html">Files</a> | <a href="refs.html">Refs</a> | <a href="file/README.html">README</a> | <a href="file/LICENSE.html">LICENSE</a></td></tr></table> +<hr/> +<div id="content"> +<table id="log"><thead> +<tr><td><b>Date</b></td><td><b>Commit message</b></td><td><b>Author</b></td><td class="num" align="right"><b>Files</b></td><td class="num" align="right"><b>+</b></td><td class="num" align="right"><b>-</b></td></tr> +</thead><tbody> +<tr><td>2020-02-04 22:03</td><td><a href="commit/9372645e9887679999d441e106da7bbc572fb2a6.html">update TODO</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+2</td><td class="num" align="right">-0</td></tr> +<tr><td>2020-02-04 21:59</td><td><a href="commit/8a316864887a48a5fd2867b6bde5d5e3b215e288.html">add a bulk test mode option (-b)</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">3</td><td class="num" align="right">+83</td><td class="num" align="right">-3</td></tr> +<tr><td>2019-01-26 19:10</td><td><a href="commit/da5b33ffd35e25649614ac678df293afcffb3f35.html">README: typo applicatios -> applications</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+2</td><td class="num" align="right">-3</td></tr> +<tr><td>2019-01-26 18:39</td><td><a href="commit/2d06b1eeab72bd1e4715d9191ca2b03cd0ab50de.html">fix -d parameter</a></td><td>Julian Schweinsberg</td><td class="num" align="right">2</td><td class="num" align="right">+2</td><td class="num" align="right">-2</td></tr> +<tr><td>2018-11-09 10:18</td><td><a href="commit/40a406768615f5b89a6ba6e802fed5597c769c1a.html">fix statdump call parameter</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2018-11-09 10:17</td><td><a href="commit/21257a01a467925aaf99a6dbb0b7604a58762473.html">fix statdump declaration</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2018-11-08 17:12</td><td><a href="commit/e39d60975a228c3d1e5b9512e082fb8bb1c28001.html">statdump: use standard I/O functions for buffering</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+7</td><td class="num" align="right">-17</td></tr> +<tr><td>2018-11-08 17:07</td><td><a href="commit/24fa4a0c3c143c6f36f1ca08b41135156c68f9ff.html">fix uninitialized memory when parsing bogofilter header</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+2</td><td class="num" align="right">-1</td></tr> +<tr><td>2018-10-27 18:05</td><td><a href="commit/b627d86afb6118bb029d5601078fe972d576ab3e.html">function declaration: use the same parameter names</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">4</td><td class="num" align="right">+14</td><td class="num" align="right">-15</td></tr> +<tr><td>2018-10-27 18:02</td><td><a href="commit/57c341a511e88733eedf95a443567f27198247e3.html">set rdonly earlier for unveil, make open() error more clear</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">2</td><td class="num" align="right">+3</td><td class="num" align="right">-3</td></tr> +<tr><td>2018-10-27 17:56</td><td><a href="commit/da144ef21a75e5a1f78c1faf2d76d93c68f6180f.html">fix unveil(2) permissions and path name + misc code fixes</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">6</td><td class="num" align="right">+25</td><td class="num" align="right">-29</td></tr> +<tr><td>2018-10-27 17:33</td><td><a href="commit/8c0e2cad22ac8e72666e90b8069cb0b082e38429.html">dbh_open -> dbtext_db_open</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">2</td><td class="num" align="right">+2</td><td class="num" align="right">-2</td></tr> +<tr><td>2018-10-27 17:31</td><td><a href="commit/60b437c6d0bc19fc9f67ca8cfaf6cbfc50d47423.html">merge dbh and dbtext (WIP)</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">7</td><td class="num" align="right">+511</td><td class="num" align="right">-566</td></tr> +<tr><td>2018-10-27 17:14</td><td><a href="commit/4c3c79f49125ef555fba1df7f6cbab2c7b26ea00.html">initial unveil(2) support + some code-cleanup and remove unused functions</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">7</td><td class="num" align="right">+35</td><td class="num" align="right">-35</td></tr> +<tr><td>2018-10-27 17:13</td><td><a href="commit/ea2535f01b1fb73863f7104b0e21719b577620c1.html">whoops, fix regression in opening "database"</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2018-10-27 16:37</td><td><a href="commit/f5e56cc70c117352ec5b7a7984065eaa65db162f.html">many improvements</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">17</td><td class="num" align="right">+144</td><td class="num" align="right">-610</td></tr> +<tr><td>2018-10-25 10:41</td><td><a href="commit/20a0f52d5b478e240450fd72fa3bbd3ab5c58c48.html">fix some undefined behaviour with ctype functions</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+16</td><td class="num" align="right">-15</td></tr> +<tr><td>2018-09-29 11:15</td><td><a href="commit/f368a24da9457e4d269ca281bbc07f0eef08751e.html">improve Makefile</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+77</td><td class="num" align="right">-28</td></tr> +<tr><td>2018-09-29 11:14</td><td><a href="commit/486c23d144116c1794e3800c0c0e051b2f3469e3.html">define PACKAGE macro in C file</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+2</td><td class="num" align="right">-0</td></tr> +<tr><td>2018-09-29 10:52</td><td><a href="commit/ed1d073e8b0ab5ad0745d7d9a75ee978b460659a.html">remove unused code, leftover -f flag documentation</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">7</td><td class="num" align="right">+2</td><td class="num" align="right">-91</td></tr> +<tr><td>2018-09-29 10:49</td><td><a href="commit/8c2b855490c62d2b8f20a0dcbb85ed1dc7686155.html">dbg: simplify verbose function</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+3</td><td class="num" align="right">-8</td></tr> +<tr><td>2018-09-23 12:39</td><td><a href="commit/1e2885e37b75f738445d13b6a61caf9786b28fea.html">config.h: disable pledge for non-OpenBSD</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+5</td><td class="num" align="right">-0</td></tr> +<tr><td>2018-09-23 12:37</td><td><a href="commit/c8fb28f55c568c95be709803ef153199f1557035.html">Makefile: order dependencies, remove unneeded [ -d ] check</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+3</td><td class="num" align="right">-3</td></tr> +<tr><td>2018-09-23 12:36</td><td><a href="commit/0f11e5e148314939e59850ef2aaa607f2b06bc90.html">improve code-style</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">7</td><td class="num" align="right">+1531</td><td class="num" align="right">-1663</td></tr> +<tr><td>2018-09-23 12:29</td><td><a href="commit/cd31f403d6c7b3acf4a41365c063c4cefef34e83.html">bmf.c: improve some code-style</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+250</td><td class="num" align="right">-282</td></tr> +<tr><td>2018-09-23 12:19</td><td><a href="commit/d4c3810c7f1e6030166288e0e30224c17dfd5ba5.html">update TODO</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+9</td><td class="num" align="right">-6</td></tr> +<tr><td>2018-09-22 18:05</td><td><a href="commit/79f641da0818fd7a43a970ad425e16300f4e6572.html">remove -i and -f from usage</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+0</td><td class="num" align="right">-2</td></tr> +<tr><td>2018-09-22 16:51</td><td><a href="commit/46b7439476354ab85b37689f5bec97b0231b251a.html">Makefile: install in /usr/local</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+2</td><td class="num" align="right">-4</td></tr> +<tr><td>2018-09-22 16:49</td><td><a href="commit/41e1e6b8e9d49a1300c070f03070db4ce2d0bbbd.html">pledge test mode, no need to reopen goodlist and spamlist for each message in test mode</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">2</td><td class="num" align="right">+52</td><td class="num" align="right">-16</td></tr> +<tr><td>2018-09-22 16:27</td><td><a href="commit/bd5dd52e982fcb2c07eddb303e585a6e9b738508.html">tweak pledge</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+2</td><td class="num" align="right">-2</td></tr> +<tr><td>2018-09-22 16:27</td><td><a href="commit/30cf7b5fcb8028582d3c746e9c72289be77c3f87.html">remove code leftover from -i option</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+0</td><td class="num" align="right">-17</td></tr> +<tr><td>2018-09-22 16:12</td><td><a href="commit/13b02490de8ddfe9a9ad66cc2484f7fd3a3b9278.html">remove NDEBUG code</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">3</td><td class="num" align="right">+2</td><td class="num" align="right">-281</td></tr> +<tr><td>2018-09-22 16:05</td><td><a href="commit/107ae911553ca8a5885eecaa2da0c37e030c216d.html">small cleanup, remove DB_USER, DB_PASS</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">2</td><td class="num" align="right">+7</td><td class="num" align="right">-10</td></tr> +<tr><td>2018-09-22 15:57</td><td><a href="commit/e805a804b42a190f0b06d8c495fd0f29011b1329.html">changes</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">15</td><td class="num" align="right">+60</td><td class="num" align="right">-2004</td></tr> +<tr><td>2018-09-22 15:49</td><td><a href="commit/4857ceba2cfedeafd8971a8e6e3db4ce2ea7f1b6.html">add patches from OpenBSD port</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">2</td><td class="num" align="right">+20</td><td class="num" align="right">-1</td></tr> +<tr><td>2018-09-22 15:46</td><td><a href="commit/0983b0f64c3e1bf7fa03f2a4060e6f25e9e79cef.html">import bmf 0.9.4</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">31</td><td class="num" align="right">+5898</td><td class="num" align="right">-0</td></tr> +</tbody></table></div> +</body> +</html> diff --git a/swh/lister/stagit/tests/data/https_codemadness.org/git_dmenu_log.html b/swh/lister/stagit/tests/data/https_codemadness.org/git_dmenu_log.html new file mode 100644 index 00000000..52f61168 --- /dev/null +++ b/swh/lister/stagit/tests/data/https_codemadness.org/git_dmenu_log.html @@ -0,0 +1,125 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Log - dmenu - my customized version of dmenu (hiltjo branch) +</title> +<link rel="icon" type="image/png" href="favicon.png" /> +<link rel="alternate" type="application/atom+xml" title="dmenu Atom Feed" href="atom.xml" /> +<link rel="alternate" type="application/atom+xml" title="dmenu Atom Feed (tags)" href="tags.xml" /> +<link rel="stylesheet" type="text/css" href="style.css" /> +</head> +<body> +<table><tr><td><a href="../"><img src="logo.png" alt="" width="32" height="32" /></a></td><td><h1>dmenu</h1><span class="desc">my customized version of dmenu (hiltjo branch) +</span></td></tr><tr class="url"><td></td><td>git clone <a href="git://git.codemadness.org/dmenu">git://git.codemadness.org/dmenu</a></td></tr><tr><td></td><td> +<a href="log.html">Log</a> | <a href="files.html">Files</a> | <a href="refs.html">Refs</a> | <a href="file/README.html">README</a> | <a href="file/LICENSE.html">LICENSE</a></td></tr></table> +<hr/> +<div id="content"> +<table id="log"><thead> +<tr><td><b>Date</b></td><td><b>Commit message</b></td><td><b>Author</b></td><td class="num" align="right"><b>Files</b></td><td class="num" align="right"><b>+</b></td><td class="num" align="right"><b>-</b></td></tr> +</thead><tbody> +<tr><td>2022-05-01 16:38</td><td><a href="commit/28fb3e28120db29ea45d1951eee7047b4109ab5f.html">Makefile: add manual path for OpenBSD</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-0</td></tr> +<tr><td>2022-04-30 11:19</td><td><a href="commit/fe5d5c6709a77ac5d554e26dda76a67df68618ae.html">fix incorrect comment, math is hard</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2022-04-29 18:15</td><td><a href="commit/e1e1de7b3b8399cba90ddca9613f837b2dbef7b9.html">inputw: improve correctness and startup performance, by NRK</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+2</td><td class="num" align="right">-8</td></tr> +<tr><td>2022-03-28 15:38</td><td><a href="commit/33685b06e9332638769e677e77b257e24e069fd1.html">drw_text: account for fallback fonts in ellipsis_width</a></td><td>NRK</td><td class="num" align="right">1</td><td class="num" align="right">+4</td><td class="num" align="right">-2</td></tr> +<tr><td>2022-03-27 19:02</td><td><a href="commit/e4827b0c4048718ab06670cf60ef68d028fe7fc4.html">drw_text: don't segfault when called with 0 width</a></td><td>NRK</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2022-03-26 16:58</td><td><a href="commit/e73651f12a406629778f02d8e5acbe2caec0dfc2.html">fix UB with the function iscntrl()</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2022-03-26 16:57</td><td><a href="commit/31fa07b9849b0ffbf4b7efb55943f466b3ff160f.html">Revert "avoid redraw when there's no change"</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+2</td><td class="num" align="right">-3</td></tr> +<tr><td>2022-03-25 21:51</td><td><a href="commit/6818e07291f3b2913e687c8ec3d3fe4711724050.html">avoid redraw when there's no change</a></td><td>NRK</td><td class="num" align="right">1</td><td class="num" align="right">+3</td><td class="num" align="right">-2</td></tr> +<tr><td>2022-03-25 21:51</td><td><a href="commit/b43ec0577f2ad8ad33a0b893fe5360d966036786.html">free all allocated items, use %zu for size_t</a></td><td>NRK</td><td class="num" align="right">1</td><td class="num" align="right">+6</td><td class="num" align="right">-3</td></tr> +<tr><td>2022-03-23 18:37</td><td><a href="commit/22511c41d55a38a770541ae617a09383d5e6ad1c.html">drw_text: improve performance when there's no match</a></td><td>NRK</td><td class="num" align="right">1</td><td class="num" align="right">+12</td><td class="num" align="right">-1</td></tr> +<tr><td>2022-03-23 18:37</td><td><a href="commit/77526f756e23e362081ac807521f901f2e5cd5e6.html">inputw: improve correctness and startup performance</a></td><td>NRK</td><td class="num" align="right">1</td><td class="num" align="right">+9</td><td class="num" align="right">-10</td></tr> +<tr><td>2022-03-23 20:04</td><td><a href="commit/7269c5355d257dd2ad2c53f15dc9c1cf6796aea5.html">significantly improve performance on large strings</a></td><td>NRK</td><td class="num" align="right">1</td><td class="num" align="right">+10</td><td class="num" align="right">-3</td></tr> +<tr><td>2022-03-23 20:00</td><td><a href="commit/6be057f060543bb0f3ed9423904263617cdffffe.html">introduce drw_fontset_getwidth_clamp()</a></td><td>NRK</td><td class="num" align="right">2</td><td class="num" align="right">+18</td><td class="num" align="right">-2</td></tr> +<tr><td>2022-03-23 18:37</td><td><a href="commit/41fdabbf7c517f8d524b70cbd78238cc319ccef3.html">drw_text: improve both performance and correctness</a></td><td>NRK</td><td class="num" align="right">1</td><td class="num" align="right">+28</td><td class="num" align="right">-28</td></tr> +<tr><td>2022-03-01 21:45</td><td><a href="commit/3a505cebe8adab204e5619357e0bfe3f9f3a92ff.html">remove false-positive warning for int comparison as bool</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2022-02-11 11:26</td><td><a href="commit/308fe78b83836371720c7d7eb2c3eac409f3cc16.html">bump version to 5.1</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">2</td><td class="num" align="right">+2</td><td class="num" align="right">-2</td></tr> +<tr><td>2022-02-08 20:45</td><td><a href="commit/c4b656e0da36070a834b03ceb76269ffee8ac952.html">code-style: rm newline (oops)</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+0</td><td class="num" align="right">-1</td></tr> +<tr><td>2022-02-08 18:32</td><td><a href="commit/3e39c526d28582b0b5606d3e3bb36ee3d271e616.html">revert using strcasestr and use a more optimized portable version</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">2</td><td class="num" align="right">+21</td><td class="num" align="right">-2</td></tr> +<tr><td>2022-02-07 09:36</td><td><a href="commit/a9a3836861bd23387b5a51d6f6ac23377e98e26f.html">follow-up fix: add -D_GNU_SOURCE for strcasestr for some systems</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2022-02-06 23:21</td><td><a href="commit/eb96af27f4059c93d7e000e910b71d74829a239b.html">improve performance of case-insensitive matching</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-12</td></tr> +<tr><td>2021-08-20 21:05</td><td><a href="commit/d78ff08d99780a73447d5a95bf1e358e8c23aa3c.html">Revert "Improve speed of drw_text when provided with large strings"</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+2</td><td class="num" align="right">-5</td></tr> +<tr><td>2021-08-09 16:39</td><td><a href="commit/cd2133a5f66b42f992a9a1b92bbbce11dc26b941.html">add support for more keypad keys</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+11</td><td class="num" align="right">-0</td></tr> +<tr><td>2021-08-08 01:34</td><td><a href="commit/c585e8e498ec6f9c423ab8ea07cf853ee5b05fbe.html">Improve speed of drw_text when provided with large strings</a></td><td>Miles Alan</td><td class="num" align="right">1</td><td class="num" align="right">+5</td><td class="num" align="right">-2</td></tr> +<tr><td>2021-07-25 01:55</td><td><a href="commit/523aa08f51a88c59ad4b1f600f8ce3d122e9e289.html">remove always true condition in if statement</a></td><td>Guilherme Janczak</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2020-09-02 16:30</td><td><a href="commit/1a13d0465d1a6f4f74bc5b07b04c9bd542f20ba6.html">bump version to 5.0</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">2</td><td class="num" align="right">+2</td><td class="num" align="right">-2</td></tr> +<tr><td>2020-06-11 16:45</td><td><a href="commit/9b38fda6feda68f95754d5b8932b1a69471df960.html">Fix memory leaks in drw</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-0</td></tr> +<tr><td>2019-03-03 12:08</td><td><a href="commit/db6093f6ec1bb884f7540f2512935b5254750b30.html">revert IME support</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+3</td><td class="num" align="right">-12</td></tr> +<tr><td>2019-02-12 21:58</td><td><a href="commit/a9b1de384ae1ad30805e893af5cd6ea9b87c89da.html">improve xopenim error message</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2019-02-12 21:13</td><td><a href="commit/43b0c2c3dd3e694cf674097d493ef6630efc5403.html">make dmenu_path script executable</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+0</td><td class="num" align="right">-0</td></tr> +<tr><td>2019-02-12 18:10</td><td><a href="commit/f5036b90efd9423d805923a0bc73cd54e30e72ab.html">fix crash when XOpenIM returns NULL</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+11</td><td class="num" align="right">-2</td></tr> +<tr><td>2019-02-03 23:29</td><td><a href="commit/153aaf88bf9bf5c6c4b118bd871f8cf1eafdcab5.html">Close when the embedding window is destroyed</a></td><td>Quentin Rameau</td><td class="num" align="right">2</td><td class="num" align="right">+7</td><td class="num" align="right">-2</td></tr> +<tr><td>2019-02-02 12:54</td><td><a href="commit/65be875f5adf31e9c4762ac8a8d74b1dfdd78584.html">Prepared 4.9 release.</a></td><td>Anselm R Garbe</td><td class="num" align="right">3</td><td class="num" align="right">+18</td><td class="num" align="right">-4</td></tr> +<tr><td>2019-01-27 14:28</td><td><a href="commit/7d19b2055d98e5c0249efe582c852b8b8b30cd41.html">dmenu.1: document improved fastgrab behaviour from previous patch</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+2</td><td class="num" align="right">-2</td></tr> +<tr><td>2019-01-26 14:49</td><td><a href="commit/11a65377da8fc198d15cf041dbbbb9718e5798cd.html">Use slow path if stdin is a tty</a></td><td>dok</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-3</td></tr> +<tr><td>2018-07-21 10:47</td><td><a href="commit/bbc464dc80225b8cf9390f14fac6c682f63940d2.html">dmenu_path: always use the cachedir</a></td><td>Quentin Rameau</td><td class="num" align="right">1</td><td class="num" align="right">+6</td><td class="num" align="right">-6</td></tr> +<tr><td>2018-06-02 15:09</td><td><a href="commit/a314412f4b80af5100901344856a341f8ea4cc7a.html">Makefile: just show the compiler output</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+28</td><td class="num" align="right">-38</td></tr> +<tr><td>2018-06-02 15:01</td><td><a href="commit/a9eae39e934d8dab7f1772570efb5f25825bfe01.html">Do not strip at link stage</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2018-05-25 11:07</td><td><a href="commit/851b73d178c8d7665c6d8a0bc34dbd4f9d1aa77b.html">code-style for pledge: check the return code -1, not < 0</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2018-05-25 11:03</td><td><a href="commit/05c138f5b8f19070a190b97728c83b454855f52b.html">code-style for pledge(2)</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+5</td><td class="num" align="right">-6</td></tr> +<tr><td>2018-05-25 10:04</td><td><a href="commit/cd132c8d5b17ac2f4a3e611836d4cde4995d7a0c.html">Pledge on OpenBSD</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+9</td><td class="num" align="right">-0</td></tr> +<tr><td>2018-05-09 19:27</td><td><a href="commit/e75494b730ea6883e68072a106a09a301cfaf845.html">Use bold for keyboard shortcuts in dmenu.1</a></td><td>David Demelier</td><td class="num" align="right">1</td><td class="num" align="right">+28</td><td class="num" align="right">-28</td></tr> +<tr><td>2018-04-22 12:18</td><td><a href="commit/0f76dd2fb89748eb5460adbc87c4e98bcce09763.html">Fix cursor drawn position with wide glyphs</a></td><td>Quentin Rameau</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2018-03-22 10:18</td><td><a href="commit/0b5748021877b2f214474b034d8bf0122ee88ed2.html">Makefile: bikesheddingly replace ${} with $()</a></td><td>Quentin Rameau</td><td class="num" align="right">2</td><td class="num" align="right">+43</td><td class="num" align="right">-43</td></tr> +<tr><td>2018-03-19 14:42</td><td><a href="commit/377bd37e212b1ec4c03a481245603c6560d0be22.html">Handle IME input</a></td><td>Quentin Rameau</td><td class="num" align="right">1</td><td class="num" align="right">+4</td><td class="num" align="right">-1</td></tr> +<tr><td>2018-03-16 15:51</td><td><a href="commit/b6d2cc9aea979cb3557db39dbe65a2870d13e597.html">Fix handling of input strings</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+21</td><td class="num" align="right">-14</td></tr> +<tr><td>2018-03-15 09:16</td><td><a href="commit/2f398981feb562285b0a96cd315bf2b3244c7309.html">Update LICENSE</a></td><td>Quentin Rameau</td><td class="num" align="right">1</td><td class="num" align="right">+6</td><td class="num" align="right">-4</td></tr> +<tr><td>2018-03-14 18:48</td><td><a href="commit/23051d78dd80468042e2a5095533ec68bfb43a51.html">bump version to 4.8</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2018-03-13 16:15</td><td><a href="commit/e2a280541eab62717d6a9a72d047c832e5cb1edc.html">add key bindings for moving to the word start or end</a></td><td>Quentin Rameau</td><td class="num" align="right">2</td><td class="num" align="right">+46</td><td class="num" align="right">-0</td></tr> +<tr><td>2018-01-04 22:45</td><td><a href="commit/889512811d7ae410eb4ab60be3568278b3e23f2e.html">Fix regression in 84a1bc5</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+2</td><td class="num" align="right">-1</td></tr> +<tr><td>2018-01-04 12:27</td><td><a href="commit/84a1bc5d0d6b54eb23268e8f02a787be9ccbd919.html">Instantiate j var outside #ifdef XINEMARA directive because it is used in loop outside directive</a></td><td>Vincent Carluer</td><td class="num" align="right">1</td><td class="num" align="right">+2</td><td class="num" align="right">-3</td></tr> +<tr><td>2017-11-03 20:10</td><td><a href="commit/f0a5b75d6a0d2a62da45e9f65d92ea4a6a2d5831.html">drw: drw_scm_create: use Clr type</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2017-11-03 14:31</td><td><a href="commit/1cabeda5505dcc35d4d2ca2a09151a7c449fb401.html">fix a possible free of a uninitialize variable in paste()</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+6</td><td class="num" align="right">-4</td></tr> +<tr><td>2017-11-03 20:05</td><td><a href="commit/41379f7c39e6aa0a17d7807b22b49ea148f5b0fa.html">init colors using SchemeLast</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+2</td><td class="num" align="right">-3</td></tr> +<tr><td>2017-11-03 16:49</td><td><a href="commit/64ab2801fbbbcc028c359080ae4bd546fc871f67.html">Set class name on menu window</a></td><td>Omar Sandoval</td><td class="num" align="right">1</td><td class="num" align="right">+2</td><td class="num" align="right">-0</td></tr> +<tr><td>2017-05-02 16:32</td><td><a href="commit/f428f3e01a4ced5b1df07ddf913bb022692f8035.html">release 4.7</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2016-12-07 14:45</td><td><a href="commit/5cd66e2c6ca6a82e59927d495498fa6e478594d6.html">Revert "fix input text matching"</a></td><td>Andrew Gregory</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2016-11-25 12:38</td><td><a href="commit/e90b88e12a88d6214c00d5ee58ceb69446aa5ac4.html">Xinerama: correct variable declarations in preprocessor conditional</a></td><td>Thomas Gardner</td><td class="num" align="right">1</td><td class="num" align="right">+6</td><td class="num" align="right">-5</td></tr> +<tr><td>2016-11-05 10:36</td><td><a href="commit/a280bdad1f16943a70eaff086852d3b11043b060.html">die() on calloc failure</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2016-10-08 12:08</td><td><a href="commit/a9a5c6cc2d7d55ed7e556a4fe9d75307c6df2e84.html">add embedding support with -w option</a></td><td>Quentin Rameau</td><td class="num" align="right">2</td><td class="num" align="right">+58</td><td class="num" align="right">-12</td></tr> +<tr><td>2016-10-08 12:42</td><td><a href="commit/a97f550aa7b81d2add1d2a99e594c038da01fc19.html">dmenu.1: group single options</a></td><td>Quentin Rameau</td><td class="num" align="right">2</td><td class="num" align="right">+3</td><td class="num" align="right">-6</td></tr> +<tr><td>2016-10-08 12:36</td><td><a href="commit/ff8daf88475960f6ccc4e3ded3214147ecb21809.html">dmenu.1: fix -l option</a></td><td>Quentin Rameau</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2016-08-12 12:39</td><td><a href="commit/026827fd65c1163a92a984c4eae3882a6d69f8df.html">die() consistency: always add newline</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">3</td><td class="num" align="right">+9</td><td class="num" align="right">-7</td></tr> +<tr><td>2016-07-26 21:13</td><td><a href="commit/d14670b9959f8b3760b63dd40a70687a90312b8a.html">fix crash if negative monitor (< -1) was passed</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+2</td><td class="num" align="right">-2</td></tr> +<tr><td>2016-07-26 21:02</td><td><a href="commit/aa92cd68bdff95c181cc854043598e6c6007d45e.html">Revert "Print highlighted input text only on single match"</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+3</td><td class="num" align="right">-13</td></tr> +<tr><td>2016-07-26 10:48</td><td><a href="commit/a4053bc4e403ae57343f43b7e363a0911bba5a3a.html">Print highlighted input text only on single match</a></td><td>Quentin Rameau</td><td class="num" align="right">1</td><td class="num" align="right">+13</td><td class="num" align="right">-3</td></tr> +<tr><td>2016-07-25 09:33</td><td><a href="commit/657122f7819fd74d66706ffb607deb44884401b7.html">Partially revert 44c7de3: fix items text width offset calculation</a></td><td>Quentin Rameau</td><td class="num" align="right">1</td><td class="num" align="right">+2</td><td class="num" align="right">-2</td></tr> +<tr><td>2016-06-28 15:56</td><td><a href="commit/3c91eed0fb74657c3fa25bc4fd65cd0aa88464c0.html">config.def.h: style improvement, use color Scheme enum</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+5</td><td class="num" align="right">-5</td></tr> +<tr><td>2016-06-28 05:11</td><td><a href="commit/76eb5783046cf89ba6b7e9f8cdab35fe86d07a82.html">fix: Do not crash on e.g. dmenu < /dev/null</a></td><td>S. Gilles</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2016-05-21 19:51</td><td><a href="commit/44c7de3dcf49ee568863f55610f40c7a05b4dfe7.html">import new drw from libsl and minor fixes.</a></td><td>Markus Teich</td><td class="num" align="right">5</td><td class="num" align="right">+231</td><td class="num" align="right">-236</td></tr> +<tr><td>2016-02-22 14:03</td><td><a href="commit/b3d9451c2ddfad7c1b10e9a868afed4d92b37e41.html">arg.h: fixed argv checks order</a></td><td>Lucas Gabriel Vuotto</td><td class="num" align="right">1</td><td class="num" align="right">+2</td><td class="num" align="right">-2</td></tr> +<tr><td>2016-01-11 12:26</td><td><a href="commit/3de85ca21cedf2a9f67755afc8ef031a9170b96a.html">Typofix</a></td><td>Klemens Nanni</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2015-12-19 18:58</td><td><a href="commit/bf3deb6357f1c864ba6b9771a33dc31e18a68e16.html">Shut up glibc about _BSD_SOURCE being deprecated</a></td><td>Quentin Rameau</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2015-12-19 08:32</td><td><a href="commit/120e8401074254d39be916ad83bafda9ef25e6a9.html">Add config option for word delimiters</a></td><td>Quentin Rameau</td><td class="num" align="right">2</td><td class="num" align="right">+10</td><td class="num" align="right">-2</td></tr> +<tr><td>2015-11-08 22:37</td><td><a href="commit/32f2564dbbbf5aeafb7190a3d35066142f34448f.html">arg.h: remove unused ARGNUM* macros</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+0</td><td class="num" align="right">-14</td></tr> +<tr><td>2015-11-08 22:03</td><td><a href="commit/cc596365ac9c522beb8978cfca741d23d3bf83ae.html">unboolify dmenu</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">2</td><td class="num" align="right">+7</td><td class="num" align="right">-9</td></tr> +<tr><td>2015-11-08 15:46</td><td><a href="commit/c9e4e152e61b22186ba4f4ca58ae8c8d3d83e81e.html">Makefile: package config.def.h on make dist</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+3</td><td class="num" align="right">-2</td></tr> +<tr><td>2015-11-08 15:44</td><td><a href="commit/cc99007809b18c27ef441b1a2ccb38cbbec664c7.html">remove .hgtags file</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+0</td><td class="num" align="right">-49</td></tr> +<tr><td>2015-11-07 11:53</td><td><a href="commit/34f549adb2f586b58467345c89a0082bcc8833f2.html">dmenu.1: clarify monitor numbers are starting from 0 (first mon)</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+2</td><td class="num" align="right">-1</td></tr> +<tr><td>2015-11-07 11:43</td><td><a href="commit/da0b9eb6c98288e7f9455352a78ba30d4b8b17f5.html">fix: multimon: always spawn client on first monitor if specified with -m 0</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2015-10-20 20:56</td><td><a href="commit/44b242c76359e21b97418675f253d45feb7c04e0.html">drw: cleanup drw_text, prevent gcc warning false-positive of unused var</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+14</td><td class="num" align="right">-21</td></tr> +<tr><td>2015-10-20 20:55</td><td><a href="commit/e2e7fcb2198d40e2a50591932ee2b2a8f9969a5f.html">drw: simplify drw_font_xcreate and prevent a potential unneeded allocation</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+19</td><td class="num" align="right">-22</td></tr> +<tr><td>2015-10-20 20:53</td><td><a href="commit/1f2226df1380f178240bb81dddcad6c5ff2e9d62.html">drw: a valid (non-NULL) Drw and Fnt context must be passed</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+3</td><td class="num" align="right">-16</td></tr> +<tr><td>2015-10-20 20:51</td><td><a href="commit/5a20b409c673a6736c3f9326cb54edc32908f717.html">add sbase-style ecalloc(), calloc: or die</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">3</td><td class="num" align="right">+18</td><td class="num" align="right">-12</td></tr> +<tr><td>2015-10-18 16:37</td><td><a href="commit/164986763a29db97abb52b15cbd282b5636d83c0.html">free schemes as array</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+6</td><td class="num" align="right">-6</td></tr> +<tr><td>2015-10-04 12:47</td><td><a href="commit/09d0a36e0370f7ca9bdb171bf93c5ac3131c5a92.html">fix input text matching</a></td><td>Quentin Rameau</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2015-10-04 12:01</td><td><a href="commit/acbf35a5e35b6f6a7dd3f8da49a6e5ec5ac075ce.html">fix incorrect ordering of match results</a></td><td>Davide Del Zompo</td><td class="num" align="right">1</td><td class="num" align="right">+3</td><td class="num" align="right">-2</td></tr> +<tr><td>2015-10-04 10:32</td><td><a href="commit/240a7810e492ec01075614729a1a1c45ef9f7af2.html">fix paste from clipboard (ctrl+shift+y)</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-0</td></tr> +<tr><td>2015-09-27 22:38</td><td><a href="commit/d5ce8df9d9a86bf0d1cb97e4cfe4cd6951f2f1f5.html">minor style fix</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+2</td><td class="num" align="right">-1</td></tr> +<tr><td>2015-09-27 22:19</td><td><a href="commit/ba75bb30fa1f458ea4d80a2858ffeaf9d49afbcc.html">Remove function prototypes and reorder functions accordingly</a></td><td>FRIGN</td><td class="num" align="right">1</td><td class="num" align="right">+64</td><td class="num" align="right">-80</td></tr> +<tr><td>2015-09-27 22:15</td><td><a href="commit/10fd4f275feaef0b505cc8e65a2deccae69a0968.html">Untypedef struct item</a></td><td>FRIGN</td><td class="num" align="right">1</td><td class="num" align="right">+9</td><td class="num" align="right">-10</td></tr> +<tr><td>2015-09-27 22:18</td><td><a href="commit/b048eacc9ddc6ca995783411d4df84c23f3a0351.html">Fix the conversion from microseconds to nanoseconds</a></td><td>Quentin Rameau</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2015-09-27 22:06</td><td><a href="commit/c42c3780274e6b12eaeab918cf7c13d2c36cf253.html">Replace deprecated usleep() with nanosleep()</a></td><td>Quentin Rameau</td><td class="num" align="right">1</td><td class="num" align="right">+3</td><td class="num" align="right">-2</td></tr> +<tr><td>2015-09-27 22:02</td><td><a href="commit/c15a95a061bdb8235220b37638d1b586611f0ac6.html">config.mk: use -std=c99</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2015-09-27 21:57</td><td><a href="commit/cf0fb79cd8303f6d1089b7e919add4b0fc8d9069.html">dmenu: style improvements</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+213</td><td class="num" align="right">-204</td></tr> +<tr><td>2015-09-27 21:56</td><td><a href="commit/03cb1ec55abebb6355858f582d68e33dabcfe6f5.html">drw style improvements</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">2</td><td class="num" align="right">+106</td><td class="num" align="right">-93</td></tr> +<tr><td>2015-09-27 21:02</td><td><a href="commit/bc20c13db0fdb73a5ef2c0d4b791e05e3f324aba.html">separate program-specific c99 bool and X11</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">2</td><td class="num" align="right">+10</td><td class="num" align="right">-11</td></tr> +<tr><td>2015-09-27 20:55</td><td><a href="commit/96e60c66bc85985fe34cfdcd989abc08fc46a5e2.html">config.mk: fix _XOPEN_SOURCE=700 for getline()</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2015-09-27 20:38</td><td><a href="commit/2d2175ff6f67e2bc85138d3f359d2f7580bcb754.html">config.mk: improve feature test check</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2015-08-06 02:19</td><td><a href="commit/bbf7b95dc93a47dbb5a4143b903797dc97197515.html">Fixed typo introduced by shared code</a></td><td>Eric Pruitt</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2015-07-19 19:34</td><td><a href="commit/d6742ef8a6ce03f28ee9431ef51901ef712ffd76.html">stest: get rid of getopt, use suckless arg.h</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">3</td><td class="num" align="right">+141</td><td class="num" align="right">-53</td></tr> +<tr><td></td><td colspan="5">497 more commits remaining, fetch the repository</td></tr> +</tbody></table></div> +</body> +</html> diff --git a/swh/lister/stagit/tests/data/https_codemadness.org/git_dwm_log.html b/swh/lister/stagit/tests/data/https_codemadness.org/git_dwm_log.html new file mode 100644 index 00000000..ceeb30a9 --- /dev/null +++ b/swh/lister/stagit/tests/data/https_codemadness.org/git_dwm_log.html @@ -0,0 +1,125 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Log - dwm - my customized version of dwm (hiltjo branch) +</title> +<link rel="icon" type="image/png" href="favicon.png" /> +<link rel="alternate" type="application/atom+xml" title="dwm Atom Feed" href="atom.xml" /> +<link rel="alternate" type="application/atom+xml" title="dwm Atom Feed (tags)" href="tags.xml" /> +<link rel="stylesheet" type="text/css" href="style.css" /> +</head> +<body> +<table><tr><td><a href="../"><img src="logo.png" alt="" width="32" height="32" /></a></td><td><h1>dwm</h1><span class="desc">my customized version of dwm (hiltjo branch) +</span></td></tr><tr class="url"><td></td><td>git clone <a href="git://git.codemadness.org/dwm">git://git.codemadness.org/dwm</a></td></tr><tr><td></td><td> +<a href="log.html">Log</a> | <a href="files.html">Files</a> | <a href="refs.html">Refs</a> | <a href="file/README.html">README</a> | <a href="file/LICENSE.html">LICENSE</a></td></tr></table> +<hr/> +<div id="content"> +<table id="log"><thead> +<tr><td><b>Date</b></td><td><b>Commit message</b></td><td><b>Author</b></td><td class="num" align="right"><b>Files</b></td><td class="num" align="right"><b>+</b></td><td class="num" align="right"><b>-</b></td></tr> +</thead><tbody> +<tr><td>2022-08-26 12:48</td><td><a href="commit/c2b748e7931e5f28984efc236f9b1a212dbc65e8.html">Remove dmenumon variable</a></td><td>Stein</td><td class="num" align="right">2</td><td class="num" align="right">+1</td><td class="num" align="right">-4</td></tr> +<tr><td>2022-08-18 16:13</td><td><a href="commit/84d7322113c2bf023f5eaa8537fb0e72d4105046.html">config.def.h: make keys and buttons const</a></td><td>NRK</td><td class="num" align="right">1</td><td class="num" align="right">+2</td><td class="num" align="right">-2</td></tr> +<tr><td>2022-08-15 12:31</td><td><a href="commit/5799dd1fca6576b662d299e210cd5933b29d502d.html">Remove blw variable in favour of calculating the value when needed</a></td><td>Stein</td><td class="num" align="right">1</td><td class="num" align="right">+3</td><td class="num" align="right">-3</td></tr> +<tr><td>2022-08-11 09:15</td><td><a href="commit/44adafe0069e73aa03a3829d7bb39591cd8b3f1d.html">Make floating windows spawn within the monitor's window area</a></td><td>Stein</td><td class="num" align="right">1</td><td class="num" align="right">+5</td><td class="num" align="right">-5</td></tr> +<tr><td>2022-08-09 08:38</td><td><a href="commit/a859676ead17017bbe81b4989b2f2e0b00a0b4ba.html">Simplify client y-offset correction</a></td><td>Stein</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-3</td></tr> +<tr><td>2022-08-08 08:43</td><td><a href="commit/e0dee911455cee739a5b05a994828f4a37a2764d.html">sync code-style patch from libsl</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+12</td><td class="num" align="right">-11</td></tr> +<tr><td>2022-08-05 22:27</td><td><a href="commit/5e76e7e21da042c493c59235ca82d7275f20a7e4.html">code-style: simplify some checks</a></td><td>NRK</td><td class="num" align="right">1</td><td class="num" align="right">+8</td><td class="num" align="right">-15</td></tr> +<tr><td>2022-07-29 23:26</td><td><a href="commit/5b2e5e7a4001479e4dc3e245f96e49f7ea0da658.html">spawn: reduce 2 lines, change fprintf() + perror() + exit() to die("... :")</a></td><td>explosion-mental</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-3</td></tr> +<tr><td>2022-08-01 09:42</td><td><a href="commit/786f6e2a6f8466ad94706781bc93bc6eb6e69512.html">unmanage: stop listening for events for unmanaged windows</a></td><td>Stein</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-0</td></tr> +<tr><td>2022-07-22 07:18</td><td><a href="commit/e03248a4d5feaaacb130416be6e467a04de81f78.html">Revert "do not call signal-unsafe function inside sighanlder"</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+2</td><td class="num" align="right">-2</td></tr> +<tr><td>2022-07-14 01:26</td><td><a href="commit/6613d9f9a1a5630bab30bc2b70bdc793977073ee.html">do not call signal-unsafe function inside sighanlder</a></td><td>NRK</td><td class="num" align="right">1</td><td class="num" align="right">+2</td><td class="num" align="right">-2</td></tr> +<tr><td>2022-07-14 01:27</td><td><a href="commit/9bffa845faa181fb3afe05f3dc86ad79c80736be.html">use named parameter for func prototype</a></td><td>NRK</td><td class="num" align="right">1</td><td class="num" align="right">+2</td><td class="num" align="right">-2</td></tr> +<tr><td>2022-05-10 17:07</td><td><a href="commit/d3f93c7c1a13a2a78f04fb41ad1935525df948db.html">sync latest drw.{c,h} changes from dmenu</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">2</td><td class="num" align="right">+59</td><td class="num" align="right">-30</td></tr> +<tr><td>2022-05-01 16:37</td><td><a href="commit/cd0773cee9bad694dc9a6b1355a32bbe61abadff.html">Makefile: add manual path for OpenBSD</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-0</td></tr> +<tr><td>2022-04-26 08:42</td><td><a href="commit/8b48e309735f5fe49d35f86e967f4b5dea2a2f2d.html">manage: Make sure c->isfixed is applied before floating checks</a></td><td>Chris Down</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-0</td></tr> +<tr><td>2022-04-26 13:50</td><td><a href="commit/a83dc2031050d786ddf5f329b57d658a931c94b7.html">LICENSE: add Chris Down</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-0</td></tr> +<tr><td>2022-04-26 08:30</td><td><a href="commit/a4771de5ba54a38b062a7d748635f21c141b5c7e.html">Revert "manage: For isfloating/oldstate check/set, ensure trans client actually exists"</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2022-02-21 14:58</td><td><a href="commit/d93ff48803f04f1363bf303af1d7e6ccc5cb8d3f.html">Update monitor positions also on removal</a></td><td>Santtu Lakkala</td><td class="num" align="right">1</td><td class="num" align="right">+34</td><td class="num" align="right">-34</td></tr> +<tr><td>2022-03-17 15:56</td><td><a href="commit/8806b6e2379372900e3d9e0bf6604bc7f727350b.html">manage: propertynotify: Reduce cost of unused size hints</a></td><td>Chris Down</td><td class="num" align="right">1</td><td class="num" align="right">+5</td><td class="num" align="right">-3</td></tr> +<tr><td>2022-02-21 06:10</td><td><a href="commit/bece862a0fc4fc18ef9065b18cd28e2032d0d975.html">manage: For isfloating/oldstate check/set, ensure trans client actually exists</a></td><td>Miles Alan</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2022-03-11 14:40</td><td><a href="commit/60e9a14998bfe8666c641f7c27fec18e85ac7494.html">fix mem leak in cleanup()</a></td><td>NRK</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-0</td></tr> +<tr><td>2022-01-07 11:39</td><td><a href="commit/d39e2f3441fe18aba8d1a62c08918a411ec6f237.html">bump version to 6.3</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2021-12-18 16:58</td><td><a href="commit/8657affa2a61e85ca8df76b62e43cb02897d1d80.html">drawbar: Don't expend effort drawing bar if it is occluded</a></td><td>Chris Down</td><td class="num" align="right">1</td><td class="num" align="right">+3</td><td class="num" align="right">-0</td></tr> +<tr><td>2021-08-20 21:09</td><td><a href="commit/a786211d6cb794fba0ea406d86002c7618998afc.html">Revert "Improve speed of drw_text when provided with large strings"</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+2</td><td class="num" align="right">-5</td></tr> +<tr><td>2021-08-09 16:24</td><td><a href="commit/716233534b35f74dba5a46ade8f1a6f8cc72fea4.html">Improve speed of drw_text when provided with large strings</a></td><td>Miles Alan</td><td class="num" align="right">1</td><td class="num" align="right">+5</td><td class="num" align="right">-2</td></tr> +<tr><td>2021-07-12 21:44</td><td><a href="commit/138b405f0c8aa24d8a040cc1a1cf6e3eb5a0ebc7.html">Add a configuration option for fullscreen locking</a></td><td>Quentin Rameau</td><td class="num" align="right">2</td><td class="num" align="right">+2</td><td class="num" align="right">-1</td></tr> +<tr><td>2020-07-02 19:18</td><td><a href="commit/67d76bdc68102df976177de351f65329d8683064.html">Do not allow focus to drift from fullscreen client via focusstack()</a></td><td>Chris Down</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2020-03-03 22:23</td><td><a href="commit/61bb8b2241d4db08bea4261c82e27cd9797099e7.html">Fix x coordinate calculation in buttonpress.</a></td><td>Ian Remmler</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2020-07-08 16:05</td><td><a href="commit/bb2e7222baeec7776930354d0e9f210cc2aaad5f.html">dwm.1: fix wrong text in man page</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2020-06-11 13:28</td><td><a href="commit/f04cac6d6e39cd9e3fc4fae526e3d1e8df5e34b2.html">Fix memory leaks in drw</a></td><td>Alex Flierl</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-0</td></tr> +<tr><td>2020-04-23 07:50</td><td><a href="commit/f09418bbb6651ab4c299cfefbe1d18de401f630e.html">dwm crashes when opening 50+ clients (tile layout)</a></td><td>bakkeby</td><td class="num" align="right">1</td><td class="num" align="right">+4</td><td class="num" align="right">-2</td></tr> +<tr><td>2020-04-22 14:48</td><td><a href="commit/ed3ab6b4fceded0e9f2d22372df49a2bbd58de66.html">drawbar: Don't shadow sw global</a></td><td>Chris Down</td><td class="num" align="right">1</td><td class="num" align="right">+4</td><td class="num" align="right">-4</td></tr> +<tr><td>2020-04-22 14:48</td><td><a href="commit/f087d20e6e60a49c756936b4312f5d194d8e63b4.html">getatomprop: Add forward declaration</a></td><td>Chris Down</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-0</td></tr> +<tr><td>2020-04-20 15:41</td><td><a href="commit/a8e9513783f335b1ac7255e40a663adfffc4b475.html">setmfact: Unify bounds for compile-time and runtime mfact</a></td><td>Chris Down</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2020-04-03 13:36</td><td><a href="commit/c82db690cc0c4624dad4dc6ae899020799ec84db.html">config.mk: fix POSIX_C_SOURCE macro for feature test for snprintf()</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2019-02-02 12:50</td><td><a href="commit/cb3f58ad06993f7ef3a7d8f61468012e2b786cab.html">Prepare 6.2 release.</a></td><td>Anselm R Garbe</td><td class="num" align="right">3</td><td class="num" align="right">+17</td><td class="num" align="right">-3</td></tr> +<tr><td>2018-06-02 15:15</td><td><a href="commit/b69c870a3076d78ab595ed1cd4b41cf6b03b2610.html">pledge: add rpath promise for the ugly Xft font fallback</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2018-06-02 15:04</td><td><a href="commit/e78b4a9207d92956cee3e5bc3f70b5acabe72e5c.html">Makefile: just show the compiler output</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+17</td><td class="num" align="right">-26</td></tr> +<tr><td>2018-06-02 13:12</td><td><a href="commit/3cd4023fb35d0aeb6e888bfdc1845f2f0251ad20.html">Do not strip at link stage</a></td><td>Klemens Nanni</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2018-05-25 05:56</td><td><a href="commit/f40f86fa873bc4acccdf3d929aa0f786993ae31d.html">Pledge on OpenBSD</a></td><td>Klemens Nanni</td><td class="num" align="right">1</td><td class="num" align="right">+4</td><td class="num" align="right">-0</td></tr> +<tr><td>2018-05-25 04:56</td><td><a href="commit/c3a2e016bb65c00bd44b6461b1b1bbaa61f20093.html">config.def.h: ClkTagBar missing from comment</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2018-05-02 22:09</td><td><a href="commit/c8e9479186dd7e3a0d6dc938369ab3bf7dc4a1d0.html">Function declarations in correct order.</a></td><td>Christopher Drelich</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2018-05-12 17:14</td><td><a href="commit/10dfa65860d770cbce2cdaf67618f44f726a27c3.html">remove old TODO and BUGS entries</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">4</td><td class="num" align="right">+4</td><td class="num" align="right">-58</td></tr> +<tr><td>2018-03-14 20:03</td><td><a href="commit/3bd8466e93b2c81be86e67c6ecdda4e1d240fe4b.html">update README: remove mentioning the old dextra repo</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+0</td><td class="num" align="right">-3</td></tr> +<tr><td>2018-03-14 17:58</td><td><a href="commit/76c8c16d79d4fd2a3e776800637d211e4dc8e50a.html">All functions in alphabetical order except for this one.</a></td><td>Christopher Drelich</td><td class="num" align="right">1</td><td class="num" align="right">+9</td><td class="num" align="right">-9</td></tr> +<tr><td>2018-03-14 16:44</td><td><a href="commit/3cb34830eb25ebda15a23d8391fd69cddb4fc024.html">ColBorder has been moved to the enum with ColFg and ColBg.</a></td><td>Christopher Drelich</td><td class="num" align="right">2</td><td class="num" align="right">+1</td><td class="num" align="right">-2</td></tr> +<tr><td>2017-12-27 12:36</td><td><a href="commit/db2236001c1cb042a2f24052849da96578273b1c.html">dont NUL terminate _NET_WM_NAME</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2017-11-03 20:20</td><td><a href="commit/3756f7f6b8dccf7a31789ffaf073a76fd1a87eb9.html">sync dmenu drw.{c,h} code: use Clr* (was Scm)</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">3</td><td class="num" align="right">+13</td><td class="num" align="right">-13</td></tr> +<tr><td>2017-11-03 15:36</td><td><a href="commit/99f78fa553f9ddb23fab73e47a408d66ca7f974c.html">gettextprop: check result of XGetTextProperty (undefined behaviour for XFree)</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-2</td></tr> +<tr><td>2017-11-03 16:58</td><td><a href="commit/a9b6a312a77b9cc81ca8b08a95c09e9f7948d7a6.html">Set class name on status bar</a></td><td>Omar Sandoval</td><td class="num" align="right">1</td><td class="num" align="right">+2</td><td class="num" align="right">-0</td></tr> +<tr><td>2017-10-10 21:10</td><td><a href="commit/6aa8e37efe22c8a2a7713d9a437491c564c04b7e.html">simplify isfixed conditions</a></td><td>Daniel Cousens</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-2</td></tr> +<tr><td>2017-05-08 19:08</td><td><a href="commit/ceac8c91ff3bf45ae53135658d6f560cb2335133.html">yet another cleanup</a></td><td>Anselm R Garbe</td><td class="num" align="right">2</td><td class="num" align="right">+35</td><td class="num" align="right">-35</td></tr> +<tr><td>2017-01-07 16:21</td><td><a href="commit/5b238c8dab945023b6a16a6c9f642b11137f2204.html">Don't restrict snap in mousemove</a></td><td>Markus Teich</td><td class="num" align="right">1</td><td class="num" align="right">+11</td><td class="num" align="right">-14</td></tr> +<tr><td>2017-01-07 16:21</td><td><a href="commit/022d07605412bc5bd9726f74af9355c562ba4957.html">Button passthrough when client is not focused</a></td><td>Markus Teich</td><td class="num" align="right">1</td><td class="num" align="right">+11</td><td class="num" align="right">-10</td></tr> +<tr><td>2017-01-07 16:21</td><td><a href="commit/2952b68db88f38be8d34b80c7a7d2c7eb5b2484d.html">cleanup</a></td><td>Markus Teich</td><td class="num" align="right">3</td><td class="num" align="right">+32</td><td class="num" align="right">-36</td></tr> +<tr><td>2016-12-05 09:16</td><td><a href="commit/bb3bd6fec37174e8d4bb9457ca815c00609e5157.html">applied Markus' tagset purge of alternative view on _NET_ACTIVE_WINDOW event</a></td><td>Anselm R Garbe</td><td class="num" align="right">1</td><td class="num" align="right">+18</td><td class="num" align="right">-20</td></tr> +<tr><td>2016-12-05 09:09</td><td><a href="commit/e63bf229485a576d68975dd4eb00c210394133ae.html">applied Ivan Delalande's NET_SUPPORTING_WM_CHECK patch for gtk3 compatibility</a></td><td>Anselm R Garbe</td><td class="num" align="right">1</td><td class="num" align="right">+14</td><td class="num" align="right">-2</td></tr> +<tr><td>2016-12-05 09:05</td><td><a href="commit/5376947571040a4654384ea8889a54cc2313cca7.html">applied Ian Remmler's man page adjustment suggestions</a></td><td>Anselm R Garbe</td><td class="num" align="right">1</td><td class="num" align="right">+5</td><td class="num" align="right">-4</td></tr> +<tr><td>2016-12-05 09:01</td><td><a href="commit/975c8983762246b50026d43079c60a78b341f81c.html">applied Markus' decouple color-scheme patch</a></td><td>Anselm R Garbe</td><td class="num" align="right">2</td><td class="num" align="right">+8</td><td class="num" align="right">-6</td></tr> +<tr><td>2016-12-05 08:54</td><td><a href="commit/a137a86a234476bc3c7128fecbf845e6fc1de995.html">applied Markus' clarify status text padding patch</a></td><td>Anselm R Garbe</td><td class="num" align="right">1</td><td class="num" align="right">+2</td><td class="num" align="right">-2</td></tr> +<tr><td>2016-11-14 10:49</td><td><a href="commit/839c7f6939368fe5784058975ee95062cc88d4c3.html">LICENSE: update people</a></td><td>Quentin Rameau</td><td class="num" align="right">1</td><td class="num" align="right">+10</td><td class="num" align="right">-6</td></tr> +<tr><td>2016-11-14 10:18</td><td><a href="commit/7a59cd14573b2ead4e69a609e27992f0b7493b19.html">dwm.1: add keybinding for spawning dmenu</a></td><td>Quentin Rameau</td><td class="num" align="right">1</td><td class="num" align="right">+5</td><td class="num" align="right">-0</td></tr> +<tr><td>2016-11-05 10:34</td><td><a href="commit/24849acada79977cea6acd2d8741d2bd00891ff6.html">die() on calloc failure</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2016-08-12 12:35</td><td><a href="commit/ab9571bbc5f6fb04fd583238a665a7e830fc1397.html">die() consistency: always add newline</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">3</td><td class="num" align="right">+10</td><td class="num" align="right">-8</td></tr> +<tr><td>2016-06-28 16:04</td><td><a href="commit/56a31dc4a7be459e3a1ea06d45427e1a4087a1a6.html">config.def.h: style improvement, use color Scheme enum</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+4</td><td class="num" align="right">-4</td></tr> +<tr><td>2016-05-22 20:33</td><td><a href="commit/7af4d439bdb5a2e40aca69446a3367bd71431c45.html">import new drw from libsl and minor fixes.</a></td><td>Markus Teich</td><td class="num" align="right">5</td><td class="num" align="right">+209</td><td class="num" align="right">-208</td></tr> +<tr><td>2016-05-25 23:33</td><td><a href="commit/cd2d7549b3ae5ec234b45d85608f79f4d3aaa851.html">Configure geometry before applying rules</a></td><td>Eric Pruitt</td><td class="num" align="right">1</td><td class="num" align="right">+7</td><td class="num" align="right">-6</td></tr> +<tr><td>2015-12-19 19:25</td><td><a href="commit/3465bed290abc62cb2e69a8096084ba6b8eb4956.html">fix fullscreen clients not resized on X display resolution change</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+6</td><td class="num" align="right">-1</td></tr> +<tr><td>2015-12-19 19:04</td><td><a href="commit/4ec3a673ff81275a9157d6801ea4a2b17031e5ba.html">Shut up glibc about _BSD_SOURCE being deprecated</a></td><td>Quentin Rameau</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2015-11-08 22:11</td><td><a href="commit/5ed9c481968a45f5032f1011d92ab8d5237aeba1.html">code-style consistency</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+503</td><td class="num" align="right">-433</td></tr> +<tr><td>2015-11-08 21:48</td><td><a href="commit/3c91283ede911916452345d545435b08dce9d556.html">unboolification</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">2</td><td class="num" align="right">+77</td><td class="num" align="right">-78</td></tr> +<tr><td>2015-11-08 19:38</td><td><a href="commit/e941181f464e43765bab98509ef6524e688a46ff.html">sort include + whitespace fix</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+3</td><td class="num" align="right">-3</td></tr> +<tr><td>2015-11-07 13:04</td><td><a href="commit/43e82adf0dc37411fdcc6406b3cdf5d572387b9f.html">separate program-specific c99 bool and X11</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">2</td><td class="num" align="right">+77</td><td class="num" align="right">-75</td></tr> +<tr><td>2015-11-08 15:52</td><td><a href="commit/42cf1c7d8f94e1c51a71761ab24414c2f49dac26.html">Makefile: package all files with make dist</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+2</td><td class="num" align="right">-2</td></tr> +<tr><td>2015-11-07 13:09</td><td><a href="commit/dce4fb373757727374d00c857ec0dfd225bbeafd.html">setfullscreen: don't process the property twice</a></td><td>Quentin Rameau</td><td class="num" align="right">1</td><td class="num" align="right">+2</td><td class="num" align="right">-2</td></tr> +<tr><td>2015-10-20 21:34</td><td><a href="commit/646b351cc79845f4cc77415dfff474b9ae0053d9.html">sync updated drw code from dmenu</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">5</td><td class="num" align="right">+164</td><td class="num" align="right">-158</td></tr> +<tr><td>2015-10-20 21:30</td><td><a href="commit/e3b7e1d620e18818222c1e5033356ae29dd49e7f.html">dwm: use ecalloc, prevent theoretical overflow</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+3</td><td class="num" align="right">-6</td></tr> +<tr><td>2015-10-20 21:28</td><td><a href="commit/04db03a4e69eba88c56c12128340125fb0ef1960.html">cleanup, dont use c++ style comments</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+4</td><td class="num" align="right">-4</td></tr> +<tr><td>2015-10-20 21:27</td><td><a href="commit/4a4817b3aa84ac61d6071674d3bbc1af7f69cdb7.html">dwm: cleanup: free schemes and cursors as array</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+8</td><td class="num" align="right">-9</td></tr> +<tr><td>2015-10-20 21:10</td><td><a href="commit/7e1182ce555985ff2c5860d88403888eabc6ee4b.html">config.h: use common default font, pass Xft font name to dmenu</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+2</td><td class="num" align="right">-4</td></tr> +<tr><td>2015-10-20 21:01</td><td><a href="commit/40529e1469b399114048185e1d5b7237b1cc7f3e.html">config.mk: add $FREETYPELIBS and $FREETYPEINC, simpler to override (ports and *BSDs)</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+8</td><td class="num" align="right">-2</td></tr> +<tr><td>2015-03-06 04:26</td><td><a href="commit/14343e69cc596b847f71f1e825d3019ab1a29aa8.html">Add Xft and follback-fonts support to graphics lib</a></td><td>Eric Pruitt</td><td class="num" align="right">6</td><td class="num" align="right">+299</td><td class="num" align="right">-103</td></tr> +<tr><td>2014-11-23 14:25</td><td><a href="commit/35db6d8afc3fd9f80166feac6c1e4adf71d553c3.html">removed .hgtags, thanks Dimitris for spotting</a></td><td>Anselm R Garbe</td><td class="num" align="right">1</td><td class="num" align="right">+0</td><td class="num" align="right">-73</td></tr> +<tr><td>2014-08-11 05:24</td><td><a href="commit/3d1090ba896319368c4771b88d325fcee368a608.html">applied Hiltjo's resize/move limitation</a></td><td>Anselm R Garbe</td><td class="num" align="right">2</td><td class="num" align="right">+12</td><td class="num" align="right">-2</td></tr> +<tr><td>2014-05-29 16:05</td><td><a href="commit/18248ebf4b9465b837e717dcd14a5202a98248e0.html">same as before with dwm.c as well</a></td><td>Anselm R Garbe</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2014-05-29 16:02</td><td><a href="commit/b468873b2b71d351ed7b5a4c75f62060999c46eb.html">updated copyright notice in LICENSE file</a></td><td>Anselm R Garbe</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2013-08-27 18:39</td><td><a href="commit/cdec9782a1789bd5c3a84772fd59abb9da288597.html">applied Lukas' focus suggestion at startup, thanks</a></td><td>Anselm R Garbe</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-0</td></tr> +<tr><td>2013-08-02 20:40</td><td><a href="commit/6af273771cb0e28e4394c78ab0322f77025a57f3.html">applied improved version of Martti Kühne's dmenu/multi monitor approach from dwm, no dmenuspawn required</a></td><td>Anselm R Garbe</td><td class="num" align="right">2</td><td class="num" align="right">+4</td><td class="num" align="right">-1</td></tr> +<tr><td>2013-07-20 07:08</td><td><a href="commit/4fb31e08968c5058362021887fab4bbea746aecf.html">do not take our font declaration as default for st</a></td><td>Anselm R Garbe</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2013-06-23 19:53</td><td><a href="commit/b800a1d1366c2ba22b7c934f7527de0b1542fe78.html">applied Jochen's drw_text patch, thanks</a></td><td>Anselm R Garbe</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2013-06-19 17:35</td><td><a href="commit/33a74489f036600bb80a3c34fcdf10e5f9dafae1.html">applied Julian's enum approach, however renamed theme into scheme resp. Theme into ClrScheme</a></td><td>Anselm R Garbe</td><td class="num" align="right">3</td><td class="num" align="right">+37</td><td class="num" align="right">-40</td></tr> +<tr><td>2013-06-16 13:20</td><td><a href="commit/5364697914fd4272fc1a6494b4fc522d2935427a.html">finished libsl/drw integration</a></td><td>Anselm R Garbe</td><td class="num" align="right">3</td><td class="num" align="right">+185</td><td class="num" align="right">-264</td></tr> +<tr><td>2013-05-02 15:31</td><td><a href="commit/7edc59631193813cf4d64030f8864de36b193cfc.html">include font argument for st by default</a></td><td>Anselm R Garbe</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2013-05-01 13:45</td><td><a href="commit/68b400e95d2622265c26f8992205806eefe9be16.html">added st to SEE ALSO section</a></td><td>Anselm R Garbe</td><td class="num" align="right">1</td><td class="num" align="right">+2</td><td class="num" align="right">-1</td></tr> +<tr><td>2013-05-01 13:41</td><td><a href="commit/656882d76f330543b8ecddcf5158e6da575f9202.html">use st as default terminal from now on</a></td><td>Anselm R Garbe</td><td class="num" align="right">2</td><td class="num" align="right">+2</td><td class="num" align="right">-2</td></tr> +<tr><td>2013-05-01 13:39</td><td><a href="commit/1479e76f01bf066c441e096ad3f9370b433ce552.html">shut up about deprecated Xlib functions</a></td><td>Anselm R Garbe</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2013-04-17 19:21</td><td><a href="commit/f2544a331845ad80655c1f79c9dc61922fe3441c.html">renamed draw into drw</a></td><td>Anselm R Garbe</td><td class="num" align="right">6</td><td class="num" align="right">+265</td><td class="num" align="right">-268</td></tr> +<tr><td>2012-12-09 18:11</td><td><a href="commit/aafeaf731701e528f4ae9d7c7432b3e92fee4392.html">continued with draw.c and draw.h implementation, now the integration begins</a></td><td>Anselm R Garbe</td><td class="num" align="right">2</td><td class="num" align="right">+71</td><td class="num" align="right">-29</td></tr> +<tr><td>2012-12-08 09:13</td><td><a href="commit/f21d46ea7def76221c4173f644eb2188ae9edbb1.html">continued with draw.c abstraction, also started util.{h,c} implementation, that will be used by draw.c as well</a></td><td>Anselm R Garbe</td><td class="num" align="right">6</td><td class="num" align="right">+80</td><td class="num" align="right">-29</td></tr> +<tr><td>2012-11-18 16:52</td><td><a href="commit/c0ba635c50dc53f06e4fc96392415b3d19b25826.html">removed DDC, all is Draw-dependent</a></td><td>anselm@garbe.us</td><td class="num" align="right">2</td><td class="num" align="right">+40</td><td class="num" align="right">-82</td></tr> +<tr><td></td><td colspan="5">1612 more commits remaining, fetch the repository</td></tr> +</tbody></table></div> +</body> +</html> diff --git a/swh/lister/stagit/tests/data/https_codemadness.org/git_stagit_log.html b/swh/lister/stagit/tests/data/https_codemadness.org/git_stagit_log.html new file mode 100644 index 00000000..ce1d6707 --- /dev/null +++ b/swh/lister/stagit/tests/data/https_codemadness.org/git_stagit_log.html @@ -0,0 +1,125 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Log - stagit - static git page generator +</title> +<link rel="icon" type="image/png" href="favicon.png" /> +<link rel="alternate" type="application/atom+xml" title="stagit Atom Feed" href="atom.xml" /> +<link rel="alternate" type="application/atom+xml" title="stagit Atom Feed (tags)" href="tags.xml" /> +<link rel="stylesheet" type="text/css" href="style.css" /> +</head> +<body> +<table><tr><td><a href="../"><img src="logo.png" alt="" width="32" height="32" /></a></td><td><h1>stagit</h1><span class="desc">static git page generator +</span></td></tr><tr class="url"><td></td><td>git clone <a href="git://git.codemadness.org/stagit">git://git.codemadness.org/stagit</a></td></tr><tr><td></td><td> +<a href="log.html">Log</a> | <a href="files.html">Files</a> | <a href="refs.html">Refs</a> | <a href="file/README.html">README</a> | <a href="file/LICENSE.html">LICENSE</a></td></tr></table> +<hr/> +<div id="content"> +<table id="log"><thead> +<tr><td><b>Date</b></td><td><b>Commit message</b></td><td><b>Author</b></td><td class="num" align="right"><b>Files</b></td><td class="num" align="right"><b>+</b></td><td class="num" align="right"><b>-</b></td></tr> +</thead><tbody> +<tr><td>2023-04-10 10:33</td><td><a href="commit/5e0b02d248653b1434c3317f1654cb5c6f011320.html">in Atom (RFC4287) an atomTextConstruct specifies the type text as the default</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+2</td><td class="num" align="right">-2</td></tr> +<tr><td>2022-08-16 11:17</td><td><a href="commit/37f2b1165a709e27d810624359b14acb487028fe.html">prefix usage with the common prefix "usage: "</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">2</td><td class="num" align="right">+2</td><td class="num" align="right">-2</td></tr> +<tr><td>2022-08-07 08:10</td><td><a href="commit/02c00248d8134c69758557a78e3c632ac77ae687.html">bump version to 1.2</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2022-07-26 21:50</td><td><a href="commit/174ea5d6fee240ec5df3afabfea1c5ce1319e3ea.html">Makefile: add workaround for distros still using older libgit2 versions</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+4</td><td class="num" align="right">-0</td></tr> +<tr><td>2022-05-27 19:29</td><td><a href="commit/289045115432562f5fb4ddc721bd9008e8df4ad5.html">Revert "remain compatible with slightly older libgit versions for now"</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">2</td><td class="num" align="right">+0</td><td class="num" align="right">-4</td></tr> +<tr><td>2022-05-24 12:07</td><td><a href="commit/70541c5e2cbdc141ba94e76899aba5f07047cecf.html">remain compatible with slightly older libgit versions for now</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">2</td><td class="num" align="right">+4</td><td class="num" align="right">-0</td></tr> +<tr><td>2022-05-24 08:58</td><td><a href="commit/1357ad5181f80a99fe9c436af134e947ec7f4d29.html">Allow git to run on an other user repository</a></td><td>Anton Lindqvist</td><td class="num" align="right">2</td><td class="num" align="right">+4</td><td class="num" align="right">-0</td></tr> +<tr><td>2022-04-02 15:35</td><td><a href="commit/a8a5e9c3b37e133d26fe3ea5cd361281d7a56c85.html">bump version to 1.1</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2022-03-19 11:22</td><td><a href="commit/d0e36eb6abce72c587dd53dcabc35120c3cf3a81.html">improve stream read and write error handling</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">2</td><td class="num" align="right">+42</td><td class="num" align="right">-9</td></tr> +<tr><td>2022-03-15 15:58</td><td><a href="commit/7c419a8bac26e491206953bf2646ac634296b160.html">add dark mode support for the example stylesheet</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+48</td><td class="num" align="right">-0</td></tr> +<tr><td>2022-01-03 11:22</td><td><a href="commit/037d2c70531b879ced2f013e3d75e95c1b29553b.html">bump LICENSE year</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2022-01-03 11:21</td><td><a href="commit/4d19863b062ac469fe09dec014976ba3b8677fb0.html">libgit2 config opts: set the search to an empty path</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">2</td><td class="num" align="right">+8</td><td class="num" align="right">-0</td></tr> +<tr><td>2021-12-14 19:51</td><td><a href="commit/df2a31c67a7b6ca782121248f650526a4fbe08d2.html">do not percent-encode: ',' or '-' or '.' it looks ugly</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">2</td><td class="num" align="right">+4</td><td class="num" align="right">-4</td></tr> +<tr><td>2021-11-30 17:13</td><td><a href="commit/cd5814fdedba47b03d42833019e6753b2a20b6ef.html">bump version to 1.0</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2021-11-16 17:17</td><td><a href="commit/67e5e6c5e74117b478c150480c282a03543fe887.html">Print the number of remaining commits</a></td><td>Quentin Rameau</td><td class="num" align="right">1</td><td class="num" align="right">+16</td><td class="num" align="right">-11</td></tr> +<tr><td>2021-11-16 13:24</td><td><a href="commit/5f78d89d591ad26b902947288625b90528954372.html">ignore '\r' in writing the blob aswell</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+3</td><td class="num" align="right">-2</td></tr> +<tr><td>2021-11-16 13:16</td><td><a href="commit/6eeefd208743b0b2edbd7330dea36eea5b1099b7.html">percent encode characters in path names</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">2</td><td class="num" align="right">+50</td><td class="num" align="right">-6</td></tr> +<tr><td>2021-11-16 10:44</td><td><a href="commit/961cf0f9d86e1e043d80398e4a71d218c28123a0.html">encode the name, it could contain XML entities</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+6</td><td class="num" align="right">-4</td></tr> +<tr><td>2021-08-03 17:22</td><td><a href="commit/1b6a24c893866a604d9b7bc425f9b23706f39912.html">man pages: add EXAMPLES section</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">2</td><td class="num" align="right">+16</td><td class="num" align="right">-2</td></tr> +<tr><td>2021-07-30 23:09</td><td><a href="commit/61be8f532818ac1c8d16e418d6e3124d10f82bd6.html">small typo fixes and url -> URL</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">3</td><td class="num" align="right">+4</td><td class="num" align="right">-4</td></tr> +<tr><td>2021-05-27 10:41</td><td><a href="commit/57f84d0fd12d6466122dc8a2190e7e284f5668d7.html">bump version to 0.9.6</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2021-05-18 09:42</td><td><a href="commit/45394004a3455f76a2eef42d6f36c250f5e9a9ac.html">man page: codemadness is the primary server. make logo brandless (not 2f30)</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">3</td><td class="num" align="right">+3</td><td class="num" align="right">-2</td></tr> +<tr><td>2021-05-18 08:38</td><td><a href="commit/ddc581bd9088d0b3503606993eb8ed9dbeb44347.html">README: improve a bit the usage examples</a></td><td>Quentin Rameau</td><td class="num" align="right">1</td><td class="num" align="right">+8</td><td class="num" align="right">-3</td></tr> +<tr><td>2021-05-05 17:15</td><td><a href="commit/c827ab1b1dee13e512f8ae24aa824879d547d0db.html">do not simplify the history by first-parent</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">2</td><td class="num" align="right">+0</td><td class="num" align="right">-3</td></tr> +<tr><td>2021-03-25 17:17</td><td><a href="commit/727e02be6c6aaafd929341963465bf6e1ff2947d.html">tiny comment change</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2021-03-25 17:13</td><td><a href="commit/295e4b8cb95114bb74b582c7332bc4c171f36dd3.html">add function to print a single line, ignoring \r and \n</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+22</td><td class="num" align="right">-1</td></tr> +<tr><td>2021-03-19 10:29</td><td><a href="commit/995f7d5c5d8e396b06e70b1497ac96df63ffec36.html">add meta viewport on stagit-index too</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-0</td></tr> +<tr><td>2021-03-14 15:23</td><td><a href="commit/f46405850133e43dcae95e0a41b74bcca7b10027.html">bump version to 0.9.5</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2021-03-05 11:47</td><td><a href="commit/c4d5fecc40e51ab4667315bd11dabd2023e357f3.html">LICENSE: update</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+0</td><td class="num" align="right">-1</td></tr> +<tr><td>2021-03-05 11:44</td><td><a href="commit/5ced189f1993fc17ae683f0a542218db7be7267b.html">change STAGIT_BASEURL to an -u option and also update the example script</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">4</td><td class="num" align="right">+13</td><td class="num" align="right">-13</td></tr> +<tr><td>2021-03-05 10:51</td><td><a href="commit/7968c0bc9c0172bd654e1f87d8194aef7fb69865.html">add $STAGIT_BASEURL environment variable to make Atom links absolute</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">2</td><td class="num" align="right">+15</td><td class="num" align="right">-3</td></tr> +<tr><td>2021-03-05 10:50</td><td><a href="commit/d1c528fb5ad81c876f07a69e1b759764f69cb9de.html">README: mention tags.xml feature</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+2</td><td class="num" align="right">-1</td></tr> +<tr><td>2021-01-09 13:59</td><td><a href="commit/722f8364601d2b6ee2439b42cd75750f6aac90ed.html">micro-optimization: fputc (function) -> putc (macro/inline function)</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">2</td><td class="num" align="right">+8</td><td class="num" align="right">-8</td></tr> +<tr><td>2021-01-08 13:32</td><td><a href="commit/5044ddeea3c77fea97daa62d51593d73b0e08413.html">LICENSE: bump year</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2020-11-28 11:28</td><td><a href="commit/e1c0aebde443979a524a944027b81f84f4323ff3.html">fix warning with libgit2 v0.99+, remain compatible with older versions</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+7</td><td class="num" align="right">-8</td></tr> +<tr><td>2020-11-16 22:24</td><td><a href="commit/66df204c440de3b0cf3442d3a0c719016cdcf9c6.html">add abbreviated commit hash to submodule file</a></td><td>Oscar Benedito</td><td class="num" align="right">1</td><td class="num" align="right">+5</td><td class="num" align="right">-2</td></tr> +<tr><td>2020-11-15 20:11</td><td><a href="commit/a63645a5ea4e60523c0024f69c627f586b601d82.html">add meta viewport for scaling on mobile</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-0</td></tr> +<tr><td>2020-11-15 20:11</td><td><a href="commit/ae41add24a87027343e3a6f7eea19f3902af4a12.html">style.css: improve contrast</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+3</td><td class="num" align="right">-3</td></tr> +<tr><td>2020-11-15 19:59</td><td><a href="commit/fc5ef41165df39d6def252e5230a63cc6839bfc1.html">use size_t to count lines</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+7</td><td class="num" align="right">-7</td></tr> +<tr><td>2020-11-15 19:58</td><td><a href="commit/4f60446c011b45e862540c97b684c62fd8dc3c60.html">avoid shadowed `name' global variable</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+3</td><td class="num" align="right">-3</td></tr> +<tr><td>2020-11-15 19:58</td><td><a href="commit/9467f347a2224ac95b96ef5c74d50a4e2aad5241.html">refs_cmp: remove unneeded cast</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-2</td></tr> +<tr><td>2020-11-15 19:58</td><td><a href="commit/3e7865f8f9ef87f622a7a94e7ae70355753ee66a.html">use LEN() macros for arrays</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+4</td><td class="num" align="right">-2</td></tr> +<tr><td>2020-08-17 14:09</td><td><a href="commit/75555cd99ee4d5df765f7dd6f0d09f2f925be725.html">bump version to 0.9.4</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2020-08-10 14:09</td><td><a href="commit/5334f3e0009bb7d5835c3bad60db507bfd146930.html">fix a small memleak in writeatom()</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+6</td><td class="num" align="right">-10</td></tr> +<tr><td>2020-08-08 18:01</td><td><a href="commit/dc0709f6f4f7e256e27272cb0b8611715caf1f3b.html">stagit-index: remove unveil support for argv</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+0</td><td class="num" align="right">-4</td></tr> +<tr><td>2020-08-05 22:11</td><td><a href="commit/174a763058f9a90831ab5a2aeb1c9bfbecdabf48.html">fix submodule lookup in bare repos</a></td><td>kst</td><td class="num" align="right">1</td><td class="num" align="right">+2</td><td class="num" align="right">-3</td></tr> +<tr><td>2020-07-20 12:15</td><td><a href="commit/f05e6b0fcb3b874180970d06ebcde05fb5aea470.html">regression: do not show unset or empty tags</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2020-07-19 14:41</td><td><a href="commit/d80a163acd47df2bd9ab145be6b249814aa9eceb.html">refactor get reference, add another feed for tags/releases</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">2</td><td class="num" align="right">+146</td><td class="num" align="right">-86</td></tr> +<tr><td>2020-07-19 12:07</td><td><a href="commit/693c06448972f049d74addbd4942365cd37d92e4.html">sort branches and tags by time (descending)</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+92</td><td class="num" align="right">-72</td></tr> +<tr><td>2020-02-23 19:30</td><td><a href="commit/467dfeb8f4bf2dd1ddb69e5c9592147acb425aab.html">bump version to 0.9.3</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2020-02-21 12:46</td><td><a href="commit/bbeffc281df6838182ea17be4b915a6f0eb97570.html">atom.xml: improve output format a bit</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+2</td><td class="num" align="right">-2</td></tr> +<tr><td>2020-02-12 22:20</td><td><a href="commit/2f7e7f2503014f66607b588f32de0b1be69c28a1.html">improve includes, stagit-index does not need compat.h</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">2</td><td class="num" align="right">+3</td><td class="num" align="right">-7</td></tr> +<tr><td>2019-12-29 18:02</td><td><a href="commit/4a93974f52683114dd6c4db3bad0b7adace7c771.html">style.css: highlight anchor ids, useful for linking highlighting lines in a diff</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+4</td><td class="num" align="right">-0</td></tr> +<tr><td>2019-12-22 11:53</td><td><a href="commit/31c0f006516d494dd91b10bc0486e4f9be2ca623.html">small code-style white-space/newline</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-0</td></tr> +<tr><td>2019-12-01 17:31</td><td><a href="commit/edee68f398f5b190f4be0127338956c0a2500662.html">add OpenBSD unveil support</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">2</td><td class="num" align="right">+10</td><td class="num" align="right">-0</td></tr> +<tr><td>2019-12-01 17:26</td><td><a href="commit/b5607f75afb9c6e6e6ab49128f9760d3538809cd.html">some README tweaks and rewording, reordering</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+9</td><td class="num" align="right">-7</td></tr> +<tr><td>2019-12-01 17:26</td><td><a href="commit/adaff713dc3e9ff494632a44d5743cbc0e0e16c7.html">Makefile improvements</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">2</td><td class="num" align="right">+20</td><td class="num" align="right">-37</td></tr> +<tr><td>2019-05-05 17:11</td><td><a href="commit/d6937c195f3459194d5ab056397981e1ade54871.html">README: works also on NetBSD</a></td><td>Leonardo Taccari</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2019-04-23 18:53</td><td><a href="commit/c783e54dae5bd74de2280e31223ce8a0ad0d611d.html">bump version to 0.9.2</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2019-03-16 12:07</td><td><a href="commit/028c7526bac907c91ef8afc6c3ae0f6d424bd229.html">escape HTML in paths</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+12</td><td class="num" align="right">-4</td></tr> +<tr><td>2019-03-09 11:39</td><td><a href="commit/bb1d06eb204b1d1135fcddccd14f6306abcd7f72.html">pedantic snprintf() improvement</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">2</td><td class="num" align="right">+4</td><td class="num" align="right">-4</td></tr> +<tr><td>2019-03-01 10:49</td><td><a href="commit/587b01428d6ec2be1ab6b468198663118d483990.html">fix issues in example scripts</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">2</td><td class="num" align="right">+2</td><td class="num" align="right">-2</td></tr> +<tr><td>2019-02-22 10:13</td><td><a href="commit/477d50169a42431d7fb0f939eb851ef6a2d80c3a.html">bump version to 0.9.1</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2019-02-09 14:02</td><td><a href="commit/9224d31cf6fd63b6b0a29d43185ccc64035449ec.html">Makefile: add DOCPREFIX for installing docs in ports</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">2</td><td class="num" align="right">+11</td><td class="num" align="right">-9</td></tr> +<tr><td>2019-02-07 20:00</td><td><a href="commit/3fbef5c9b0dee2106537a6718e2380eaa6e27f15.html">change order of commits in log from most recent to old to applied order</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">4</td><td class="num" align="right">+4</td><td class="num" align="right">-7</td></tr> +<tr><td>2019-02-03 14:24</td><td><a href="commit/583c44395ccc0e052c8db5217bd51fc21f7ffbb7.html">fix compile: libgit2 0.28 changed giterr_last to git_error_last</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">2</td><td class="num" align="right">+2</td><td class="num" align="right">-6</td></tr> +<tr><td>2018-12-25 12:44</td><td><a href="commit/9ad1cb6e42096a8e1f8663bc0968bb7ea49a5052.html">bump version to 0.9</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2018-12-25 12:39</td><td><a href="commit/1df3f334f6ae77950c9343299fb4bbd449d93729.html">style: keep default browser style for links, except patch chunks</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+4</td><td class="num" align="right">-5</td></tr> +<tr><td>2018-11-18 17:08</td><td><a href="commit/3a151527e1d72aa75d9461ee9918bda3bd08bcb1.html">in the diffstat prefix the type of change, allow CSS styling</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">2</td><td class="num" align="right">+18</td><td class="num" align="right">-1</td></tr> +<tr><td>2018-11-18 17:07</td><td><a href="commit/608593b0f875012875f13d28fbccd533d1266fd2.html">don't use a heuristic for renames, the content must match exactly</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+3</td><td class="num" align="right">-1</td></tr> +<tr><td>2018-11-18 17:06</td><td><a href="commit/c100c3cc30dd948c881abd96720ca4fb2ddbb82f.html">detect filetype changes in diff (for example a normal file to symlink)</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+3</td><td class="num" align="right">-1</td></tr> +<tr><td>2018-11-11 17:23</td><td><a href="commit/84bb2212e86c54f67dc18cf803bd2ac6edf24804.html">detect more names for README and LICENSE</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+30</td><td class="num" align="right">-16</td></tr> +<tr><td>2018-11-11 17:09</td><td><a href="commit/8c45dfc58edc069a3787224f522c7f62da501a80.html">detect copies and renames based on the threshold of changes</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+9</td><td class="num" align="right">-0</td></tr> +<tr><td>2018-08-19 20:03</td><td><a href="commit/175094899d7c453786857d0e5a7d2e634611aea4.html">simplify range check</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-4</td></tr> +<tr><td>2018-08-19 12:06</td><td><a href="commit/1f76a28422e1081400b1c0a3319553c73620b065.html">stagit: log: indicate when using the -l option and there are more commits</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+4</td><td class="num" align="right">-0</td></tr> +<tr><td>2018-05-25 16:43</td><td><a href="commit/187daac42007c87e6af9317a20446e3b81907f63.html">assume OpenBSD 5.9+, always try pledge(2) on OpenBSD</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">3</td><td class="num" align="right">+4</td><td class="num" align="right">-11</td></tr> +<tr><td>2018-05-09 16:51</td><td><a href="commit/c7f158c58c338961b1a1a91f41a5dade42853dec.html">Clarify usage regarding -c and -l mutual exclusion</a></td><td>Quentin Rameau</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2018-04-07 12:14</td><td><a href="commit/66e341067762857e5b3e6b4279395a2dcae46f04.html">bump version to 0.8</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2018-04-06 17:28</td><td><a href="commit/6a1224afae24c2ae875978108137962e64dc2d24.html">stagit-index: pledge after git_libgit2_init</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+4</td><td class="num" align="right">-3</td></tr> +<tr><td>2018-03-26 18:08</td><td><a href="commit/3c07e52f98b0f49250c3de026b31202b426eb45a.html">pledge after git_libgit2_init</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+8</td><td class="num" align="right">-5</td></tr> +<tr><td>2018-03-18 14:34</td><td><a href="commit/f53f481b3f02431b151ae9953998d7c7b3138585.html">optimization: only diff the tree when it is needed for the diffstat...</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+27</td><td class="num" align="right">-17</td></tr> +<tr><td>2018-01-28 15:27</td><td><a href="commit/20c37e4fe4bfef13642542f3fa15aa73c92a037c.html">README: improve tarball generation by tag example</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+8</td><td class="num" align="right">-2</td></tr> +<tr><td>2018-01-21 15:47</td><td><a href="commit/31392c13cf805602c6e4a46695a27325d908f3fb.html">stagit: add -l option: limit the amount of commits for the log.html file</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">2</td><td class="num" align="right">+50</td><td class="num" align="right">-13</td></tr> +<tr><td>2018-01-21 14:23</td><td><a href="commit/2f2ecde5c38db848cf6286aca9fc0f73137244e6.html">bump LICENSE to 2018</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2018-01-20 12:18</td><td><a href="commit/67a862df28c21d893def371780bcee59f13e26f8.html">style.css: improve compatibility with older browsers, namely dillo</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+5</td><td class="num" align="right">-0</td></tr> +<tr><td>2017-12-02 18:04</td><td><a href="commit/fd3a542c94ae54c6730084f2095f3c329a70c51f.html">Remove a non-portable syntax in Makefile</a></td><td>Quentin Rameau</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2017-11-25 15:06</td><td><a href="commit/fb0ec82a615db929d100f6bed2f7299f91afbb5d.html">Makefile: bump version to 0.7.2</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2017-11-25 15:02</td><td><a href="commit/020673b8fddfc649e391831aee2e5562ac25210c.html">post-receive: fix warning in script for example when pushing deleted tags</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-0</td></tr> +<tr><td>2017-11-25 11:09</td><td><a href="commit/1add4bf3ae0105ce19d9189a499bf450e32ec171.html">Sort style.css in alphabetical order</a></td><td>Aaron Marcher</td><td class="num" align="right">1</td><td class="num" align="right">+2</td><td class="num" align="right">-2</td></tr> +<tr><td>2017-11-19 13:58</td><td><a href="commit/04d36c3a724bd3d0a53e9e8527f7e045f43b4d58.html">Makefile: bump version to 0.7.1</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2017-11-19 13:52</td><td><a href="commit/2ff0c0d6c02dc0d7b5570d12895f12e0ccafd657.html">fix: add "fattr" pledge for chmod(2) for cachefile</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+5</td><td class="num" align="right">-7</td></tr> +<tr><td>2017-11-18 11:53</td><td><a href="commit/6662b8ee42f0f31c163786d8ed4db2fbf32fdbca.html">Makefile: bump version to 0.7</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2017-11-11 00:34</td><td><a href="commit/870b024671694465cac79dcbc58f9a298e901fad.html">Makefile: remove unused $SCRIPTS</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+5</td><td class="num" align="right">-5</td></tr> +<tr><td>2017-11-10 19:55</td><td><a href="commit/26bd89f681b631ce3596148c9320c3208e16f8e9.html">fix file permissions for cachefile and respect umask(2)</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+10</td><td class="num" align="right">-2</td></tr> +<tr><td>2017-11-10 19:53</td><td><a href="commit/1bab6952c6dcac50e66418f117032bb0f627d559.html">more verbose errors: show which file failed on open</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+2</td><td class="num" align="right">-2</td></tr> +<tr><td>2017-10-31 22:25</td><td><a href="commit/2a5669514088684bc9bfe1fddb5e353fb07ae6d6.html">README: clarify some cons</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+15</td><td class="num" align="right">-6</td></tr> +<tr><td>2017-10-31 22:20</td><td><a href="commit/cfbf4a11adc8c2e3b55724e7341b18b21fc5b6f7.html">post-receive hook: force UTF-8 locale</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+4</td><td class="num" align="right">-0</td></tr> +<tr><td>2017-09-04 16:14</td><td><a href="commit/d7e003a51924d1686574598f7db5557faf65000e.html">allow umask to handle permissions</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td>2017-08-09 16:52</td><td><a href="commit/8787f495e09fd3857fd4bbbb7c32784f86787df6.html">ignore object 0000000000000000000000000000000000000000</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+2</td><td class="num" align="right">-0</td></tr> +<tr><td>2017-08-02 16:54</td><td><a href="commit/304d095d3d31cee82ac1b868d912abb946cef6b9.html">bump version for a release soon</a></td><td>Hiltjo Posthuma</td><td class="num" align="right">1</td><td class="num" align="right">+1</td><td class="num" align="right">-1</td></tr> +<tr><td></td><td colspan="5">263 more commits remaining, fetch the repository</td></tr> +</tbody></table></div> +</body> +</html> diff --git a/swh/lister/stagit/tests/test_lister.py b/swh/lister/stagit/tests/test_lister.py new file mode 100644 index 00000000..15fbdcb1 --- /dev/null +++ b/swh/lister/stagit/tests/test_lister.py @@ -0,0 +1,128 @@ +# Copyright (C) 2023 The Software Heritage developers +# License: GNU General Public License version 3, or any later version +# See top-level LICENSE file for more information + +import os +from typing import List + +import pytest + +from swh.lister import __version__ +from swh.lister.pattern import ListerStats +from swh.lister.stagit.lister import StagitLister, _parse_date + +MAIN_INSTANCE = "codemadness.org" +MAIN_INSTANCE_URL = f"https://{MAIN_INSTANCE}/git" + + +def test_lister_stagit_instantiate(swh_scheduler): + """Build a lister with either an url or an instance is supported.""" + url = MAIN_INSTANCE_URL + lister = StagitLister(swh_scheduler, url=url) + assert lister is not None + assert lister.url == url + + assert StagitLister(swh_scheduler, instance=MAIN_INSTANCE) is not None + assert lister is not None + assert lister.url == url + + +def test_lister_stagit_fail_to_instantiate(swh_scheduler): + """Build a lister without its url nor its instance should raise""" + # ... It will raise without any of those + with pytest.raises(ValueError, match="'url' or 'instance'"): + StagitLister(swh_scheduler) + + +def test_lister_stagit_get_pages(requests_mock_datadir, swh_scheduler): + """Computing the number of pages scrapped during a listing.""" + url = MAIN_INSTANCE_URL + lister_stagit = StagitLister(swh_scheduler, url=url) + + expected_nb_origins = 4 + + repos: List[List[str]] = list(lister_stagit.get_pages()) + flattened_repos = sum(repos, []) + assert len(flattened_repos) == expected_nb_origins + + for listed_url in flattened_repos: + assert MAIN_INSTANCE in listed_url["url"] + + +def test_lister_stagit_run(requests_mock_datadir, swh_scheduler): + """Gitweb lister nominal listing case.""" + + url = MAIN_INSTANCE_URL + lister_stagit = StagitLister(swh_scheduler, url=url) + + stats = lister_stagit.run() + + expected_nb_origins = 4 # main page will get filtered out + assert stats == ListerStats(pages=1, origins=expected_nb_origins) + + # test page parsing + scheduler_origins = swh_scheduler.get_listed_origins( + lister_stagit.lister_obj.id + ).results + assert len(scheduler_origins) == expected_nb_origins + + # test listed repositories + for listed_origin in scheduler_origins: + assert listed_origin.visit_type == "git" + assert MAIN_INSTANCE in listed_origin.url + assert listed_origin.last_update is not None + + # test user agent content + for request in requests_mock_datadir.request_history: + assert "User-Agent" in request.headers + user_agent = request.headers["User-Agent"] + assert "Software Heritage stagit lister" in user_agent + assert __version__ in user_agent + + +def test_lister_stagit_get_pages_with_pages_and_retry( + requests_mock_datadir, requests_mock, datadir, mocker, swh_scheduler +): + """Rate limited page are tested back after some time so ingestion can proceed.""" + url = MAIN_INSTANCE_URL + with open(os.path.join(datadir, f"https_{MAIN_INSTANCE}/git"), "rb") as page: + requests_mock.get( + url, + [ + {"content": None, "status_code": 429}, + {"content": None, "status_code": 429}, + {"content": page.read(), "status_code": 200}, + ], + ) + + lister_stagit = StagitLister(swh_scheduler, url=url) + + mocker.patch.object(lister_stagit.http_request.retry, "sleep") + + pages: List[List[str]] = list(lister_stagit.get_pages()) + flattened_repos = sum(pages, []) + assert len(pages) == 1 + assert len(flattened_repos) == 4 + + +def test_lister_stagit_get_origin_from_repo_failing( + swh_scheduler, requests_mock_datadir +): + """Instances whose summary does not return anything are filtered out.""" + # This instance has some more origins which no longer returns their summary + lister_stagit = StagitLister(swh_scheduler, url=f"https://{MAIN_INSTANCE}/foobar") + + stats = lister_stagit.run() + + # so they are filtered out, only the 7 we know are thus listed + expected_nb_origins = 4 + assert stats == ListerStats(pages=1, origins=expected_nb_origins) + + +def test__parse_date(): + assert _parse_date(None) is None + assert _parse_date("No commits") is None + + date = _parse_date("2022-08-26 12:48") + assert date is not None + assert date.tzinfo is not None diff --git a/swh/lister/stagit/tests/test_tasks.py b/swh/lister/stagit/tests/test_tasks.py new file mode 100644 index 00000000..1e5cc343 --- /dev/null +++ b/swh/lister/stagit/tests/test_tasks.py @@ -0,0 +1,30 @@ +# Copyright (C) 2023 The Software Heritage developers +# See the AUTHORS file at the top-level directory of this distribution +# License: GNU General Public License version 3, or any later version +# See top-level LICENSE file for more information + +from swh.lister.pattern import ListerStats + + +def test_gitweb_lister_task( + swh_scheduler_celery_app, swh_scheduler_celery_worker, mocker +): + # setup the mocked GitwebLister + lister = mocker.patch("swh.lister.gitweb.tasks.GitwebLister") + lister.from_configfile.return_value = lister + lister.run.return_value = ListerStats(pages=10, origins=500) + + kwargs = dict( + url="https://git.gentoo.org/", instance="kernel", base_git_url=None, max_pages=1 + ) + + res = swh_scheduler_celery_app.send_task( + "swh.lister.gitweb.tasks.GitwebListerTask", + kwargs=kwargs, + ) + assert res + res.wait() + assert res.successful() + + lister.from_configfile.assert_called_once_with(**kwargs) + lister.run.assert_called_once_with() diff --git a/swh/lister/tests/test_cli.py b/swh/lister/tests/test_cli.py index 8ce3c607..00b11f28 100644 --- a/swh/lister/tests/test_cli.py +++ b/swh/lister/tests/test_cli.py @@ -48,6 +48,9 @@ lister_args = { "gitiles": { "instance": "gerrit.googlesource.com", }, + "stagit": { + "url": "https://git.codemadness.org", + }, } -- GitLab