)]}'
{
  "log": [
    {
      "commit": "2503239d9fb453b5d67d3b33690c5a8e914bc58c",
      "tree": "c40f6adce5d52b7fe2f28880bc909ec051f38038",
      "parents": [
        "3c7fe273989626b299eb78d3ad1acb88ed64db64"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Fri Aug 09 17:15:07 2024 +0200"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Thu Aug 15 10:12:52 2024 +0200"
      },
      "message": "Drop unused function Process_rowSetPriority()\n"
    },
    {
      "commit": "11bf6a74dd3f921f5eb59da90075bef0b7da05b3",
      "tree": "5deeb8c631e43d7ff2988368328e9c0d613d8924",
      "parents": [
        "8edd449a2329bea03373df335f5fa059744fe847"
      ],
      "author": {
        "name": "Nico Sonack",
        "email": "nsonack@herrhotzenplotz.de",
        "time": "Sat Apr 20 21:30:40 2024 +0200"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Thu Aug 01 20:03:50 2024 +0200"
      },
      "message": "Fix nice handling for FreeBSD\n\nThe nice handling on FreeBSD was broken for multiple reasons:\n\n  - Idletime and Realtime scheduled processes were not properly\n    detected and insane values were reported back\n  - There was no indicator for processes that were scheduled in\n    idletime or realtime\n  - A sentinel for unknown process niceness has been added such\n    that an indication is shown when we were unable to compute\n    the value.\n\nThis now adds a platform specific field for the scheduling type\nwhich one can add to interpret the niceness of a process better.\n\nSigned-off-by: Nico Sonack \u003cnsonack@herrhotzenplotz.de\u003e\n"
    },
    {
      "commit": "b4d5b5cea98f557a856c89500dc169f511a2b817",
      "tree": "aa57a74027c0e3b9b91dc7d5ecd14bcab04d315b",
      "parents": [
        "eb27a94ba411793aa1a25c331b3e1bb328739583"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Fri May 05 20:23:15 2023 +0200"
      },
      "committer": {
        "name": "cgzones",
        "email": "cgzones@googlemail.com",
        "time": "Sat Apr 06 19:42:28 2024 +0200"
      },
      "message": "Linux: gather permitted capabilities via capget(2)\n\n#1211 has shown reading /proc/\u003cpid\u003e/status might have a significant\nperformance impact.  It was started to be read by default to gather the\npermitted capabilities of the process.\n\nGather permitted capabilities via the syscall capget(2) instead.\ncap_get_proc(3) is not used to avoid linking with -lcap.\n"
    },
    {
      "commit": "95f77eb28bbc7afa4c847515cbcb91909d7fa061",
      "tree": "86c69495b8d5426038c5a13e4f87a143686bc983",
      "parents": [
        "59b30d692a8d3fca876ff62875c200546d15a178"
      ],
      "author": {
        "name": "Explorer09",
        "email": "explorer09@gmail.com",
        "time": "Thu Mar 21 14:59:40 2024 +0800"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Fri Mar 22 09:39:12 2024 +0100"
      },
      "message": "Simplify expression in Process_updateCPUFieldWidths()\n\nBecause the compilers weren\u0027t yet able to optimize this one. :)\n"
    },
    {
      "commit": "299ca6ed2febc6e51fb164578bbab7aa5b8fd34c",
      "tree": "3578438c547915ec80761ba8569e6f9cf9829aa1",
      "parents": [
        "5d3444ce327fdd4c17a67ecaf8886e9b15781d20"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Wed Mar 20 19:31:32 2024 +0100"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Wed Mar 20 20:40:14 2024 +0100"
      },
      "message": "Avoid too large CPU field widths\n\nIn case the current CPU usage percentage is NAN the width calculation is\ninvalid.  Use the default with of 4, which is appropriate for \"N/A \".\n"
    },
    {
      "commit": "32cb30273b9785ba2dd2cada5d0a677f97db7ec0",
      "tree": "6b5c7559ad1700b6536bba0843f0884b87212b77",
      "parents": [
        "ea30b98b8621de82f44d546e20be9b8b4ada34a7"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Sat Jan 27 23:22:31 2024 +0100"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Sun Jan 28 00:01:37 2024 +0100"
      },
      "message": "Disable basename matching for kernel threads\n\nKernel threads are commonly not based on an executable and their cmdline\ntherefore just a human readable string.\nOn Linux this string might contain slashes, e.g. kworker/7:5H-ttm, which\ncause Process_writeCommand() to print only the trailing parts if the\noption *Show Program Path* is disabled.\n\nReported-and-Suggested-By: mmrmaximuzz\nFixes: #1391\n"
    },
    {
      "commit": "5d778eaacc78c69d5597b57afb4f98062d8856ef",
      "tree": "b72f0b2fa9b4a2e3ce7802d4632b413499b8b715",
      "parents": [
        "49c13511c498bedf23586d660b72f4d41dbe93cd"
      ],
      "author": {
        "name": "Nathan Scott",
        "email": "nathans@redhat.com",
        "time": "Wed Jan 17 14:04:24 2024 +1100"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Wed Jan 17 09:12:30 2024 +0100"
      },
      "message": "Undo too-aggressive code collapsing from tree mode refactoring\n\nWhile abstracting processes from row display, code relating to\nrow parent sorting was moved to row-level that in fact must be\ndone at process-level (using the Row_compareByParent_Base call\ncircumvented this unintentially).\n\nResolves #1378\n"
    },
    {
      "commit": "e56089e1fa880064999ed6881e93f500445eacfb",
      "tree": "14cb774b63abff35d87e77bac204fecf9613ecb9",
      "parents": [
        "20bd78493be0740f1eb2bfcb651b97e98f418e7a"
      ],
      "author": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Tue Nov 28 15:15:03 2023 +0100"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Tue Dec 26 15:14:19 2023 +0100"
      },
      "message": "Update includes based on IWYU\n"
    },
    {
      "commit": "2aacbf84cb397e17e677b7e46cc4548ab599493a",
      "tree": "d6fd34701f8c90cc52bc4c43e6df32c2fcc50545",
      "parents": [
        "6aa9ef2726e42c4ae062b55be4d5cc015767d997"
      ],
      "author": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Wed Nov 29 21:27:07 2023 +0100"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Tue Dec 26 15:14:19 2023 +0100"
      },
      "message": "Use consistent style for process field output/compare functions\n"
    },
    {
      "commit": "6aa9ef2726e42c4ae062b55be4d5cc015767d997",
      "tree": "d5bd033946b404fa99b70b0b1c560725cef302bf",
      "parents": [
        "a98fc47ffe67e88b1a83f94382795b8787a9bfe8"
      ],
      "author": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Thu Nov 23 12:22:02 2023 +0100"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Tue Dec 26 15:14:19 2023 +0100"
      },
      "message": "Fix code style\n"
    },
    {
      "commit": "3716fc7bc6de07eb0c07b81c2ad9f2bd205284c8",
      "tree": "ac9b2e516c3bb9e93ba3b810c8c7f72b39a9adf0",
      "parents": [
        "e79788c250c23e0c7c9f3e29fdca578ce9e9bca0"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Sun Sep 24 14:43:30 2023 +0200"
      },
      "committer": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Sun Sep 24 14:43:30 2023 +0200"
      },
      "message": "Initialize user ID\n\nSet the process user ID to an invalid value of -1 to trigger a name\nlookup for IDs with the value 0 (\"root\").  This initialization was\ndropped in commit 0f751e99 (\"Introduce Row and Table classes for screens\nbeyond top-processes\").\n\nFixes: 0f751e99 (\"Introduce Row and Table classes for screens beyond top-processes\")\n"
    },
    {
      "commit": "b74673fe37fd379fc350789e696470556776d815",
      "tree": "cbe4f036962c439f9c07a9c96302f5908f6410b0",
      "parents": [
        "214166a049c2a6ac454dbb37b85b04c039a6a17a"
      ],
      "author": {
        "name": "Nathan Scott",
        "email": "nathans@redhat.com",
        "time": "Thu Aug 31 11:56:43 2023 +1000"
      },
      "committer": {
        "name": "Nathan Scott",
        "email": "nathans@redhat.com",
        "time": "Thu Aug 31 14:13:16 2023 +1000"
      },
      "message": "Rename ProcessList to ProcessTable throughout\n\nFollowing up with some discusson from a few months back,\nwhere it was proposed that ProcessTable is a better name.\nThis data structure is definitely not a list ... if it\nwas one-dimensional it\u0027d be a set, but in practice it has\nmuch more in common with a two-dimensional table.\n\nThe Process table is a familiar operating system concept\nfor many people too so it resonates a little in that way\nas well.\n"
    },
    {
      "commit": "53bdcab942298e0e452d62237bc18e3a4cd551cf",
      "tree": "e7a62910b9f4a1a58560a4ded2e6f7e83d0b631e",
      "parents": [
        "0f751e991d399769fb8d7800f7c4bccec2ca7f60"
      ],
      "author": {
        "name": "Sohaib Mohamed",
        "email": "sohaib.amhmd@gmail.com",
        "time": "Tue Aug 22 16:46:59 2023 +1000"
      },
      "committer": {
        "name": "Nathan Scott",
        "email": "nathans@redhat.com",
        "time": "Wed Aug 30 13:11:57 2023 +1000"
      },
      "message": "Support dynamic screens with \u0027top-most\u0027 entities beyond processes\n\nThis implements our concept of \u0027dynamic screens\u0027 in htop, with a\nfirst use-case of pcp-htop displaying things like top-filesystem\nand top-cgroups under new screen tabs.  However the idea is more\ngeneral than use in pcp-htop and we\u0027ve paved the way here for us\nto collectively build mroe general tabular screens in core htop,\nas well.\n\nFrom the pcp-htop side of things, dynamic screens are configured\nusing text-based configuration files that define the mapping for\nPCP metrics to columns (and metric instances to rows).  Metrics\nare defined either directly (via metric names) or indirectly via\nPCP derived metric specifications.  Value scaling and the units\ndisplayed is automatic based on PCP metric units and data types.\n\nThis commit represents a collaborative effort of several months,\nprimarily between myself, Nathan and BenBE.\n\nSigned-off-by: Sohaib Mohamed \u003csohaib.amhmd@gmail.com\u003e\nSigned-off-by: Nathan Scott \u003cnathans@redhat.com\u003e\n"
    },
    {
      "commit": "0f751e991d399769fb8d7800f7c4bccec2ca7f60",
      "tree": "34cd7838f7ebf51049816f9acb6a63cea175af06",
      "parents": [
        "68f4f10f012d11bd57bb725fe4113b2af937fc1d"
      ],
      "author": {
        "name": "Nathan Scott",
        "email": "nathans@redhat.com",
        "time": "Tue Aug 22 16:11:05 2023 +1000"
      },
      "committer": {
        "name": "Nathan Scott",
        "email": "nathans@redhat.com",
        "time": "Wed Aug 30 13:11:57 2023 +1000"
      },
      "message": "Introduce Row and Table classes for screens beyond top-processes\n\nThis commit refactors the Process and ProcessList structures such\nthey each have a new parent - Row and Table, respectively.  These\nnew classes handle screen updates relating to anything that could\nbe represented in tabular format, e.g. cgroups, filesystems, etc,\nwithout us having to reimplement the display logic repeatedly for\neach new entity.\n"
    },
    {
      "commit": "076b913c7f876ba0489b9751043eeb61aa34680f",
      "tree": "35173363985f959a0e77993b07c3b9fe09a2c1c6",
      "parents": [
        "93d76fd37627a3594f52afda32092fa3858f28dc"
      ],
      "author": {
        "name": "Explorer09",
        "email": "explorer09@gmail.com",
        "time": "Thu Aug 17 04:21:05 2023 +0800"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Fri Aug 18 12:52:28 2023 +0200"
      },
      "message": "Compare all percentage fields with compareRealNumbers()\n\nThe SPACESHIP_NUMBER() macro does not work well with floating point\nvalues that are possible to be NaNs. Change the compare logic of all\npercentage fields of Process entries to use compareRealNumbers().\n\nSigned-off-by: Kang-Che Sung \u003cexplorer09@gmail.com\u003e\n"
    },
    {
      "commit": "b416433fbe7ccf935ad4e268396aa423143c2318",
      "tree": "55a38c76f4f0091ed6b06d7369706bd2f1f6f61e",
      "parents": [
        "c6fd64fce8502a4e557711abe9fee394763ac52c"
      ],
      "author": {
        "name": "Explorer09",
        "email": "explorer09@gmail.com",
        "time": "Sat Jul 29 16:24:12 2023 +0800"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Fri Aug 18 12:52:28 2023 +0200"
      },
      "message": "Replace isnan() with better comparisons (isgreater(), etc.)\n\nThe standard isnan() function is defined to never throw FP exceptions\neven when the argument is a \"signaling\" NaN. This makes isnan() more\nexpensive than (x !\u003d x) expression unless the compiler flag\n\u0027-fno-signaling-nans\u0027 is given.\n\nIntroduce functions isNaN(), isNonnegative(), isPositive(),\nsumPositiveValues() and compareRealNumbers(), and replace isnan() in\nhtop\u0027s codebase with the new functions. These functions utilize\nisgreater() and isgreaterequal() comparisons, which do not throw FP\nexceptions on \"quiet\" NaNs, which htop uses extensively.\n\nWith isnan() removed, there is no need to suppress the warning\n\u0027-Wno-c11-extensions\u0027 in FreeBSD. Remove the code from \u0027configure.ac\u0027.\n\nSigned-off-by: Kang-Che Sung \u003cexplorer09@gmail.com\u003e\n"
    },
    {
      "commit": "518685818c52fcd5504405aed9d624eb5aafbd0e",
      "tree": "570700cdf539c3b01697196222c0c06b259fb0d8",
      "parents": [
        "3d2f5e1a1a77dbc1613d15a61a5ce79e3cb8d505"
      ],
      "author": {
        "name": "Explorer09",
        "email": "explorer09@gmail.com",
        "time": "Sat Jul 29 16:20:14 2023 +0800"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Fri Aug 18 12:52:28 2023 +0200"
      },
      "message": "Minor data type fixes in Process.c and PCPProcess.c\n\nIn PCPProcess_writeField(), the \"n\" variable should be size_t type.\nThe \"n\" parameters of Process_printPercentage() and\nPCPProcess_printDelay() should be size_t type as well.\n\nSigned-off-by: Kang-Che Sung \u003cexplorer09@gmail.com\u003e\n"
    },
    {
      "commit": "0f1a05ef3016cb8ebc26617d7dcd2d8f0b0676de",
      "tree": "97a298a3b25ce2610b0837b14e516955f3934da6",
      "parents": [
        "278ebbbfafe51a5040fc55169fb8ef50314938c7"
      ],
      "author": {
        "name": "Xavier G",
        "email": "xavier@kindwolf.org",
        "time": "Wed Aug 09 01:16:02 2023 +0200"
      },
      "committer": {
        "name": "Xavier G",
        "email": "xavier@kindwolf.org",
        "time": "Thu Aug 10 23:18:56 2023 +0200"
      },
      "message": "Process_printBytes(): fix XX.XG and XX.XT byte fields.\n\nhtop was liable to display erroneous sizes. For instance, a program\nconsuming 85.00 TiB (93.46 TB) of virtual memory used to be reported as\nconsuming \"87.0T\".\n"
    },
    {
      "commit": "2d4e5cba225439217464938bf7eaed277427e12d",
      "tree": "8d08818ce250cc0fbb85329de292bad9d4b8ea22",
      "parents": [
        "78c7b1c86bee3c188b3fe7acbbde548b34c9340a"
      ],
      "author": {
        "name": "arza",
        "email": "arza@arza.us",
        "time": "Sat Jul 22 20:04:55 2023 +0300"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Mon Jul 31 09:50:04 2023 +0200"
      },
      "message": "Reuse old time() value\n"
    },
    {
      "commit": "78c7b1c86bee3c188b3fe7acbbde548b34c9340a",
      "tree": "bab4fa201b9d12e32c502bace0701d4c6d90a55b",
      "parents": [
        "5558c015f6699c9da47d1cb871318c23dedd4919"
      ],
      "author": {
        "name": "arza",
        "email": "arza@arza.us",
        "time": "Thu Oct 20 17:20:51 2022 +0300"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Mon Jul 31 09:50:04 2023 +0200"
      },
      "message": "Show year as start time for processes older than a year\n"
    },
    {
      "commit": "ea23eee8e224b5ec0b0fb832aa0c59d2e90d096b",
      "tree": "0eb5e7ca0808ca8f92c0716cb2bb687e38adbc5d",
      "parents": [
        "d8fe027875427be6f5e598fc82373ecb5ed84859"
      ],
      "author": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Fri Jun 16 11:12:47 2023 +0200"
      },
      "committer": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Fri Jun 16 11:12:56 2023 +0200"
      },
      "message": "Fix typos\n"
    },
    {
      "commit": "0bdade1b6cb40c5bd374a93ac0489058a7421bb5",
      "tree": "0e0225f7dbf6867402c5ed3481a705d01941f42e",
      "parents": [
        "e4ebe18b67c366d367231a1123b057c82018cf5b"
      ],
      "author": {
        "name": "Nathan Scott",
        "email": "nathans@redhat.com",
        "time": "Tue May 02 09:02:22 2023 +1000"
      },
      "committer": {
        "name": "Nathan Scott",
        "email": "nathans@redhat.com",
        "time": "Mon May 08 13:06:07 2023 +1000"
      },
      "message": "Introduce Machine class for host-specific info (split from ProcessList)\n\nFirst stage in sanitizing the process list structure so that htop\ncan support other types of lists too (cgroups, filesystems, ...),\nin the not-too-distant future.\n\nThis introduces struct Machine for system-wide information while\nkeeping process-list information in ProcessList (now much less).\nNext step is to propogate this separation into each platform, to\nmatch these core changes.\n"
    },
    {
      "commit": "f66f04e6e0e6350ff8ea8242031ad43ce06a0a2b",
      "tree": "2eeddc8366ae720c72dbf367b20ef2f8eac30765",
      "parents": [
        "a5c46500f39bab23b513567bd1a7af197ea707c5"
      ],
      "author": {
        "name": "Stefan",
        "email": "stefan.haubenthal@gmail.com",
        "time": "Thu Mar 30 11:25:46 2023 +0200"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Thu Mar 30 13:00:39 2023 +0200"
      },
      "message": "Minor typo"
    },
    {
      "commit": "e3481a9846ef01bb27c169b71eafeee704e10c68",
      "tree": "47e5003f85875872813677895b7fa298d14af269",
      "parents": [
        "8ea144df7494bad0c46d3bf4f16c9a6556c500d2"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Sat Oct 29 19:21:12 2022 +0200"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Sun Feb 05 00:24:13 2023 +0100"
      },
      "message": "Linux: highlight username if process has elevated privileges\n\nHighlight processes started from binaries with file capabilities set,\nlike kwin_wayland, or retaining Linux capabilities, via the ambient set,\nafter switching from the root user, e.g. rtkit.\n"
    },
    {
      "commit": "da494896914a327476ab7e0298619d742a6205d4",
      "tree": "700db7b14d148c492b1fb0295462fee2214239ed",
      "parents": [
        "f1da8cfa28cce46cc7a4ab1661be35e2173155ab"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Tue Jan 10 19:40:04 2023 +0100"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Sun Feb 05 00:17:33 2023 +0100"
      },
      "message": "Add support for scheduling policies\n\nAdd a process column for scheduling policy to show the current\nscheduling policy of the process.\n\nAdd a the ability to change the scheduling policy of a process via the\nkey \u0027Y\u0027.\n\nCurrently implemented on Linux and FreeBSD only but should be portable,\nsince sched_getscheduler(2) is part of POSIX.1-2001.\n\nCloses: #1161\n"
    },
    {
      "commit": "623ee31cfe3a39c87e6066c3044c7c38ce676e6b",
      "tree": "fa81ee2673e3cce64da7100bc246c8733d661cea",
      "parents": [
        "4d40680aa04370b06e9a2acd732f0be2ee6b6eba"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Sun May 23 16:04:43 2021 +0200"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Fri Feb 03 09:23:25 2023 +0100"
      },
      "message": "Add option to shadow path prefixes\n\nShadow path prefixes which are used by distributions, like\n  /usr/bin/\n  /usr/sbin/\n  /bin/\n  /sbin/\n  /usr/libexec/\n"
    },
    {
      "commit": "40104588f38250afde9f71b6204d789039bbfe3e",
      "tree": "745e532580371db2ca85b4ae57b10f1ad3396531",
      "parents": [
        "4ad530d1c00f649dcd02b818a3ccc7ded0aaf12d"
      ],
      "author": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Sat Oct 22 19:19:39 2022 +0200"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Mon Oct 24 23:13:22 2022 +0200"
      },
      "message": "Reformat code base\n\nThis includes:\n- Wrap function implementations\n- Pointer alignment for function signatures\n- Pointer alignment for variable declarations\n- Whitespace after keywords\n- Whitespace after comma\n- Whitespace around initializers\n- Whitespace around operators\n- Code indentation\n- Line break for single line statements\n- Misleading alignment\n"
    },
    {
      "commit": "9a4879b48f9ca1a39aa4eaa67bccc171cd5bca35",
      "tree": "ea05b3a733209b83bcebc40a8f8af120ac8ebfca",
      "parents": [
        "3e1908b80ab214b7b449b49183d1bd5d39c174e3"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Thu Aug 04 21:09:44 2022 +0200"
      },
      "committer": {
        "name": "cgzones",
        "email": "cgzones@googlemail.com",
        "time": "Tue Aug 09 20:30:05 2022 +0200"
      },
      "message": "Please Clang 15\n\n    CRT.c:1015:14: error: a function declaration without a prototype is deprecated in all versions of C [-Werror,-Wstrict-prototypes]\n    void CRT_done() {\n                 ^\n                  void\n"
    },
    {
      "commit": "9631bc98a95d5144a149b6b9dfcbe077449fea22",
      "tree": "bb941cdca94216f04a78c95a0124bfa82d65fea8",
      "parents": [
        "584b487306b9219f3767275ba60d0480445871a5"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Tue Jun 21 21:10:47 2022 +0200"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Thu Aug 04 19:49:52 2022 +0200"
      },
      "message": "Avoid UB for deep nested processes\n\nAlso increase the limit for nesting by using 64 bit integers.\n\nProcessList.c:242:36: runtime error: left shift of 1 by 31 places cannot be represented in type \u0027int\u0027\n    #0 0x561cfec000a8 in ProcessList_buildTreeBranch ProcessList.c:242:36\n    #1 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7\n    #2 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7\n    #3 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7\n    #4 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7\n    #5 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7\n    #6 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7\n    #7 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7\n    #8 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7\n    #9 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7\n    #10 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7\n    #11 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7\n    #12 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7\n    #13 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7\n    #14 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7\n    #15 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7\n    #16 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7\n    #17 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7\n    #18 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7\n    #19 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7\n    #20 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7\n    #21 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7\n    #22 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7\n    #23 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7\n    #24 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7\n    #25 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7\n    #26 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7\n    #27 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7\n    #28 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7\n    #29 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7\n    #30 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7\n    #31 0x561cfebffec2 in ProcessList_buildTreeBranch ProcessList.c:243:7\n    #32 0x561cfebfb734 in ProcessList_buildTree ProcessList.c:312:10\n    #33 0x561cfebfb050 in ProcessList_updateDisplayList ProcessList.c:326:10\n    #34 0x561cfebfc58b in ProcessList_rebuildPanel ProcessList.c:374:4\n    #35 0x561cfec07953 in checkRecalculation ScreenManager.c:139:7\n    #36 0x561cfec07953 in ScreenManager_run ScreenManager.c:226:10\n    #37 0x561cfeb8899a in CommandLine_run CommandLine.c:378:4\n    #38 0x561cfeb6d6d4 in main htop.c:15:11\n    #39 0x7f14860291e9 in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16\n    #40 0x7f148602929b in __libc_start_main csu/../csu/libc-start.c:392:3\n    #41 0x561cfeaafb20 in _start (htop+0x105b20) (BuildId: fc4b9e52ffc111ca8b4cd53136a238414120a858)\n"
    },
    {
      "commit": "584b487306b9219f3767275ba60d0480445871a5",
      "tree": "5614cc2519a3651600c2ac6723deb292aee00204",
      "parents": [
        "2b2420d0ebd4734b59f5d72ad2d5959af90da261"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Tue Jun 21 21:11:16 2022 +0200"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Thu Aug 04 19:49:52 2022 +0200"
      },
      "message": "Optimize indent calculation\n"
    },
    {
      "commit": "2999fff88eef0cad39dbbc0054bdf8af9a92215e",
      "tree": "59789d67f430d134c5dbe7f48ddf4bbb21bd244b",
      "parents": [
        "2613db4b0d714b2525ae388680523f55b80451b8"
      ],
      "author": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Sun May 29 23:03:56 2022 +0200"
      },
      "committer": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Tue May 31 13:55:43 2022 +0200"
      },
      "message": "Refactor code for rendering command line cache\n\nFixes #1008\n"
    },
    {
      "commit": "9eed30949beb1c4cf4b0361310d2913aa50b9ded",
      "tree": "1761e23c0a31e50a2a647e36e943e410c6662232",
      "parents": [
        "ce5009532392692ffe4ce6b394b63ca82ba4686b"
      ],
      "author": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Mon May 30 22:38:59 2022 +0200"
      },
      "committer": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Mon May 30 22:38:59 2022 +0200"
      },
      "message": "Restore functionality of stripExeFromCmdline setting\n\nThis was accidentally lost in fbec3e4005ee\n"
    },
    {
      "commit": "0af08bcfc99e9533e84b84e374ce17a3c01b81e1",
      "tree": "9e5f1e7293fd78068daaf7fe6ed5d8e70a455900",
      "parents": [
        "e053446cbd52d422cb4be4876a64e184adfde5c7"
      ],
      "author": {
        "name": "Kumar",
        "email": "kumar@onenetbeyond.org",
        "time": "Thu Apr 14 16:35:02 2022 +0530"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Thu May 26 15:03:39 2022 +0200"
      },
      "message": "Process: Display single digit precision for CPU% greater than 99.9%\n\nSince commit edf319e[1], we\u0027re dynamically adjusting column width of\n\"CPU%\", showing single digit precision also for values greater than\n\"99.9%\" makes \"CPU%\" column consistent with all other values.\n\n[1]: edf319e53d1fb77546505e238d75160a3febe56e\n\nChange \"Process_printPercentage()\" function\u0027s logic to always display\nvalue (i.e. \"val\") with single precision. Except when value is greater\nthan \"99.9%\" for columns like \"MEM%\", whose width is fixed to \"4\" and\nvalue cannot go beyond \"100%\".\n\nCredits: @Explorer09, thanks for the patch[2] to fix title alignment\n         issue.\n\n[2]: https://github.com/htop-dev/htop/pull/959#issuecomment-1092480951\n\nCloses: #957\n"
    },
    {
      "commit": "08166b27b191e7be62d74054d92a9720c3a141ab",
      "tree": "c5b839805f0565b11058ff7b7832b5fadfb4bc55",
      "parents": [
        "c7413fd6771b65388bea14ef42863444c6eaa419"
      ],
      "author": {
        "name": "Charlie Vieth",
        "email": "charlie.vieth@gmail.com",
        "time": "Sat Feb 05 18:47:43 2022 -0500"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Thu May 05 09:17:51 2022 +0200"
      },
      "message": "ProcessList: fix quadratic process removal when scanning\n\nThis commit changes ProcessList_scan to lazily remove Processes by\nindex, which is known, instead of performing a brute-force search by\npid and immediately reclaiming the lost vector space via compaction.\n\nSearching by pid is potentially quadratic in ProcessList_scan because\nthe process we are searching for is always at the back of the vector\n(the scan starts from the back of the vector). Additionally, removal\nvia Vector_remove immediately reclaims space (by sliding elements\ndown).\n\nWith these changes process removal in ProcessList_scan is now linear.\n\nChanges:\n  * ProcessList: add new ProcessList_removeIndex function to remove\n    by index\n  * Vector: add Vector_softRemove and Vector_compact functions to\n    support lazy removal/deletion of entries Vector_softRemove\n    Vector_compact\n  * Vector: replace Vector_count with Vector_countEquals since it only\n    used for consistency assertions.\n"
    },
    {
      "commit": "ec809b7f71f21c93c96398caa552eab486c3423d",
      "tree": "15e6b1de376aac99674cfdd633aa7077728f4407",
      "parents": [
        "b83ce85d89c6d368ffb8146043b878a441226ada"
      ],
      "author": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Wed Apr 13 07:25:09 2022 +0200"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Thu Apr 21 08:56:56 2022 +0200"
      },
      "message": "Avoid extremely large year values when printing time\n"
    },
    {
      "commit": "b83ce85d89c6d368ffb8146043b878a441226ada",
      "tree": "923031ec72ab0c41947c615440202290f8b4d4a8",
      "parents": [
        "ee1bf2f9172ab11f867a87d7031408f9df1d8889"
      ],
      "author": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Sun Apr 03 12:57:23 2022 +0200"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Thu Apr 21 08:56:56 2022 +0200"
      },
      "message": "Force elapsed time display to zero if process seems started in the future\n"
    },
    {
      "commit": "ee1bf2f9172ab11f867a87d7031408f9df1d8889",
      "tree": "0837add6fdd1afa7ba67e7ad5244ec79965b5d36",
      "parents": [
        "afc4a9d657790265dc8b005366d6ba7ca9cc2f95"
      ],
      "author": {
        "name": "Explorer09",
        "email": "explorer09@gmail.com",
        "time": "Mon Apr 18 11:17:21 2022 +0800"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Mon Apr 18 12:30:40 2022 +0200"
      },
      "message": "Process: Fix PID \u0026 UID column widths off-by-one error\n\nIf the max PID or UID value for a platform is exactly a power of ten\n(10000, 100000, etc.) the column widths of PID and UID would be 1 char\nless than the correct number of digits. This is caused by the wrong\nrounding function (ceil(x)); change to the correct one (trunc(x) + 1).\n\nSigned-off-by: Kang-Che Sung \u003cexplorer09@gmail.com\u003e\n"
    },
    {
      "commit": "edf319e53d1fb77546505e238d75160a3febe56e",
      "tree": "c735eef42730d65228958c2e104817ae7362e614",
      "parents": [
        "b6c0667eae104521e71ab9c4f4a785e386bce3e5"
      ],
      "author": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Sun Feb 27 20:29:40 2022 +0100"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Sun Mar 06 19:56:25 2022 +0100"
      },
      "message": "Auto-size (normalized) CPU usage columns\n"
    },
    {
      "commit": "3ba695293c981af034d243605a30dac6cb55f880",
      "tree": "5c09f11bfbe34680f52b86cc00f2225bd45615b9",
      "parents": [
        "6133cac721f355aec0d6b5581fef90db34305f29"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Sat Dec 04 19:57:47 2021 +0100"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Sun Mar 06 19:56:25 2022 +0100"
      },
      "message": "Linux: dynamically adjust the SECATTR column width\n\nSELinux contexts can be quite long; adjust the column width dynamically\nat each cycle to the longest value.\n\nAlso with the recent addition of multiple screens, over-long columns can\nbe moved into their own screen.\n"
    },
    {
      "commit": "6133cac721f355aec0d6b5581fef90db34305f29",
      "tree": "41a6544910c4b8485aa78374fef8d34f079f1730",
      "parents": [
        "da653f8148228c2202117cf2cea946b305039552"
      ],
      "author": {
        "name": "Kumar",
        "email": "kumar@onenetbeyond.org",
        "time": "Sat Feb 19 07:35:04 2022 +0530"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Sat Feb 19 12:21:26 2022 +0100"
      },
      "message": "Process: Handle rounding ambiguity between 99.9 and 100.0\n\nDepending upon default behavior of the compiler and floating-point\nenvironment, compiler could round down the value between \"99.9\" and\n\"100.0\" to \"99.0\", instead of rounding it to the nearest value, \"100.0\".\n\nNote: The floating-point environment access and modification is only\nmeaningful when \"#pragma STD FENV_ACCESS\" is set to \"ON\"[1]. Otherwise\nimplementation is free to assume that floating-point control modes are\nalways the default. So it would be a good idea to address the rounding\nambiguity between \"99.9\" and \"100.0\" to become compiler agnostic.\n\n[1]: https://en.cppreference.com/w/c/numeric/fenv\n\nCredits: @Explorer09, thanks for the suggestion.\n"
    },
    {
      "commit": "da653f8148228c2202117cf2cea946b305039552",
      "tree": "ab897c6e12bf28fd5d5fe6a71fcb66a5fc40e5e0",
      "parents": [
        "d35db47c9ad7bfe02c319b39c573c20fa823d387"
      ],
      "author": {
        "name": "Kumar",
        "email": "kumar@onenetbeyond.org",
        "time": "Tue Feb 15 20:33:44 2022 +0530"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Sat Feb 19 12:21:26 2022 +0100"
      },
      "message": "Process: Show only integer value when CPU% more than 99.9%\n\nWhen we run a process which utilizes CPU between 100.0% and 999.9%, htop\nshows an unnecessary decimal character at the end of the value. For\nexample, \u0027100.x\u0027 and \u0027247.x\u0027 become \u0027100.\u0027 and \u0027247.\u0027 respectively.\n\nWhen CPU utilization is less than and equal to \u002799.9%\u0027, show the result\nwith single digit precision and if result is less than four characters,\npad it with the blank space. When CPU utilization is greater than\n\u002799.9%\u0027, show only integral part of the result and if it\u0027s less than\nfour characters, pad it with the blank space.\n\nCloses: #946\n"
    },
    {
      "commit": "8c99683b04ca38e98b1405d63a8c83f890e05ae0",
      "tree": "b4db7d9b8b07a9015aec705055556a82ba289d28",
      "parents": [
        "265a7b8a501174e2f5c8268a76b5e88d6688ad70"
      ],
      "author": {
        "name": "Jan Kończak",
        "email": "jan.konczak@cs.put.poznan.pl",
        "time": "Wed Jan 05 14:27:51 2022 +0100"
      },
      "committer": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Sun Feb 13 16:59:29 2022 +0100"
      },
      "message": "Fix custom thread name display issue\n\nFixes #877\n"
    },
    {
      "commit": "1ef8c0e12f29606cb5bfb77d9bce78ae5e6bbb0e",
      "tree": "07aeddcb9fff9efda3d23906df8cb7a8357c7924",
      "parents": [
        "6fcb1994c88cc33677c04352ddd8d6448c22c908"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Thu Dec 16 15:57:37 2021 +0100"
      },
      "committer": {
        "name": "cgzones",
        "email": "cgzones@googlemail.com",
        "time": "Fri Dec 17 14:45:15 2021 +0100"
      },
      "message": "Drop getCommandStr member of Process\n\nFormatting the merged command string is now implemented in an platform\nindependent way. Drop the Process member getCommandStr designed for\noverrides of individual platforms.\n"
    },
    {
      "commit": "fa9f260f63d657e25e756d7c1529dadee522db47",
      "tree": "76e9ef45a9d827201e671c95c51436af19819399",
      "parents": [
        "1da78b58187ba29ad618233b4cd38b159412909e"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Wed Dec 08 13:02:18 2021 +0100"
      },
      "committer": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Wed Dec 08 14:48:20 2021 +0100"
      },
      "message": "Process: print default key\n"
    },
    {
      "commit": "72ba20fa5f077bab4286dd78f9944df15de3b3b4",
      "tree": "0c4fb4e63b80b3a20d5f50bdac6bed9fe2bee607",
      "parents": [
        "ff4f44b22ae8d6522ee22599174a6cdd41bc0314"
      ],
      "author": {
        "name": "Hisham Muhammad",
        "email": "hisham@gobolinux.org",
        "time": "Tue Aug 31 15:38:52 2021 +1000"
      },
      "committer": {
        "name": "Nathan Scott",
        "email": "nathans@redhat.com",
        "time": "Tue Dec 07 17:04:49 2021 +1100"
      },
      "message": "Introduce screen tabs\n\nThis is a forward port (by nathans) of Hisham\u0027s original code.\n"
    },
    {
      "commit": "a38f48481edeb696b2973c8a1bb2107658108a41",
      "tree": "a5e01250ec5adf152d95c3afe1b15984d90f1361",
      "parents": [
        "61c9fe44a3c31aaab14ec01c568ecf2f081e1bdf"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Sat Dec 04 18:12:36 2021 +0100"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Sun Dec 05 19:29:10 2021 +0100"
      },
      "message": "Process: highlight UNINTERRUPTIBLE_WAIT state (D)\n\nCommit d8dfbbd3 (\"Tidy up process state handling\") did change the\nhighlighting of the UNINTERRUPTIBLE_WAIT state (D) from red to gray.\nAs this state might means the process probably still has work to do and\ncan hint at bottlenecks, revert this particular change.\n\nFixes: d8dfbbd3 (\"Tidy up process state handling\")\n"
    },
    {
      "commit": "d8dfbbd37ca7855be44391697424edac9015f14f",
      "tree": "598c12d03eca299cf7096a86c215243d5d63e504",
      "parents": [
        "afa3fe4af1af9dc5347c06578fa2fb940f8cfc8d"
      ],
      "author": {
        "name": "marcluque",
        "email": "marc.luque@outlook.com",
        "time": "Tue Oct 12 00:45:09 2021 +0200"
      },
      "committer": {
        "name": "cgzones",
        "email": "cgzones@googlemail.com",
        "time": "Tue Nov 02 20:02:54 2021 +0100"
      },
      "message": "Tidy up process state handling\n"
    },
    {
      "commit": "696f79fe5099d510fc6ecc6d1e2f0ab3ae29e04e",
      "tree": "2c9fa20e121b5c4b6cb90072fa016e5a642ddb65",
      "parents": [
        "4374a267bec655e704faaa379d1ed62eca90b71a"
      ],
      "author": {
        "name": "Silke Hofstra",
        "email": "silke@slxh.eu",
        "time": "Mon Aug 16 22:50:36 2021 +0200"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Wed Oct 27 21:20:59 2021 +0200"
      },
      "message": "Dynamically scale the ST_UID size to support 32-bit UIDs\n\nWhile most Unix-like systems use 16-bit user IDs,\nLinux supports 32-bit UIDs since version 2.6.\nUIDs above 65535 are used for UID namespacing of containers,\nwhere a container has its own set of 16-bit user IDs.\nProcesses in such containers will have (much) larger UIDs than 65535.\n\nBecause the current format strings for `ST_UID` and `USER`\nare `%5d` and `%9d` respectively, processes with such UIDs\nlead to misaligned columns.\n\nDynamically scale the `ST_UID` column and increase the size of `USER`\nto 10 characters (length of UINT32_MAX) to ensure that the user ID always fits.\n\nAdditionally: clean up how the titlebuffer size calculation and ensure\nthe PID column has a minimum size of 5.\n"
    },
    {
      "commit": "b7248f6cb82350b683adf42d0fd4ec917397ea05",
      "tree": "dca0b1000c2115f0272e0eecbfd346cabd08c400",
      "parents": [
        "74afca7bc10ece0964720be0b59c8353e66e2576"
      ],
      "author": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Wed Oct 06 16:38:45 2021 +0200"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Thu Oct 07 08:42:08 2021 +0200"
      },
      "message": "Handle procExeDeleted \u0026 usesDeletedLib without mergedCommandline mode\n"
    },
    {
      "commit": "94ad111391c07118eb9c402e309f5331c5e1cdfb",
      "tree": "9998c07f4d76870b3811fc65b90b08a0b13ceb09",
      "parents": [
        "976fa3b121864b6d0f9c9fd2a8237c1a445e3c12"
      ],
      "author": {
        "name": "Daniel Lange",
        "email": "DLange@git.local",
        "time": "Wed Sep 22 11:33:00 2021 +0200"
      },
      "committer": {
        "name": "Daniel Lange",
        "email": "DLange@git.local",
        "time": "Wed Sep 22 14:28:19 2021 +0200"
      },
      "message": "Update license headers to explicitly say GPLv2+\n"
    },
    {
      "commit": "be82448bd5adcfe5d05d980c7a05bc9655443fe8",
      "tree": "19a3f5d45f160b5d47ee323a06d649bb17db755b",
      "parents": [
        "3f805cf3473c09b999e37b3fc4974fbcc562e9b3"
      ],
      "author": {
        "name": "Nathan Scott",
        "email": "natoscott@users.noreply.github.com",
        "time": "Tue Sep 14 11:16:34 2021 +1000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 14 11:16:34 2021 +1000"
      },
      "message": "Process_printPercentage using one color transition\n\nUpdate Process_printPercentage such that color change happens only once at 100% and beyond."
    },
    {
      "commit": "3f805cf3473c09b999e37b3fc4974fbcc562e9b3",
      "tree": "f7e16cca51a577e3e76f945729429de4ad84c94a",
      "parents": [
        "556d7c03e8876eb440c9033ec9e9c533349deaf8"
      ],
      "author": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Sun Sep 05 08:46:01 2021 +0200"
      },
      "committer": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Sun Sep 05 18:49:05 2021 +0200"
      },
      "message": "Highlight large percentages similar to large memory columns\n"
    },
    {
      "commit": "556d7c03e8876eb440c9033ec9e9c533349deaf8",
      "tree": "466351a6e8fb8ac8c3e32aae15c060c5b4c22d69",
      "parents": [
        "0925c54caadbdf55c34a06590c62dfa1cfa68a93"
      ],
      "author": {
        "name": "Hisham Muhammad",
        "email": "hisham@gobolinux.org",
        "time": "Fri Sep 03 12:44:19 2021 +1000"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Sun Sep 05 18:47:07 2021 +0200"
      },
      "message": "Add a Process_printPercentage helper routine\n\nReplace several open-coded variants of percentage formatting.\nThis function has been ported from Hishams old \u0027next\u0027 branch.\n"
    },
    {
      "commit": "0580dbb202cca6afddd9c77b2b4c4283bc0a2319",
      "tree": "c8a6928d4725f32a642532ad59db2eb498791add",
      "parents": [
        "c0c2bb98a23b649c55e5d8a55395073fdaa8d6fa"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Mon Aug 30 19:20:42 2021 +0200"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Fri Sep 03 12:17:45 2021 +0200"
      },
      "message": "NetBSD: color process state P as running\n\nOn NetBSD state \u0027R\u0027 means runnable not running.\n\nImprove the color identifier name accordingly.\n"
    },
    {
      "commit": "5dec9475bb0d95e7bc129124f94944b9703b28fa",
      "tree": "11d6ad36c386f0c9b214f54f2fb7b2d14ed03c09",
      "parents": [
        "c3746dc9012165720bf4bec06d653d69d6bbe355"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Sun Aug 22 17:14:36 2021 +0200"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Sun Aug 22 17:53:21 2021 +0200"
      },
      "message": "Use break inside loop with false condition\n\nFound by clang-tidy.\n\n    home/christian/Coding/workspaces/htop/Process.c:505:13: warning: \u0027continue\u0027 in loop with false condition is equivalent to \u0027break\u0027 [bugprone-terminating-continue]\n               WRITE_HIGHLIGHT(0, strlen(procComm), commAttr, CMDLINE_HIGHLIGHT_FLAG_COMM);\n               ^\n    /home/christian/Coding/workspaces/htop/Process.c:461:13: note: expanded from macro \u0027WRITE_HIGHLIGHT\u0027\n                continue;                                                                         \\\n                ^\n"
    },
    {
      "commit": "ce27f8379d143d64ab6a7787fdf38cb864e18edd",
      "tree": "a06dfcadc31925ba04ef918d8aebf5f5df621f78",
      "parents": [
        "2d1b6f47836119b6318d4fa3abae5b312bf380d7"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Sun Aug 08 16:04:26 2021 +0200"
      },
      "committer": {
        "name": "cgzones",
        "email": "cgzones@googlemail.com",
        "time": "Sat Aug 14 17:05:00 2021 +0200"
      },
      "message": "Respect \"Show custom thread names\" setting update\n\nUpdate merged command-line when started with \"Show custom thread names\"\ndisabled and enabling at runtime.\n\nAlso only consider showThreadNames when working on userland threads.\n"
    },
    {
      "commit": "6f2021f3d95e02fc54e59fdeeb006e34c209b9c3",
      "tree": "a31ea1264b871e5a7e7785398a382a7813eb1749",
      "parents": [
        "ed82ce6456f0f904a0ab2b346b85d7cf46df109c"
      ],
      "author": {
        "name": "Sohaib Mohamed",
        "email": "sohaib.amhmd@gmail.com",
        "time": "Sun Jul 11 03:11:29 2021 +0200"
      },
      "committer": {
        "name": "Nathan Scott",
        "email": "nathans@redhat.com",
        "time": "Fri Aug 13 07:32:57 2021 +0200"
      },
      "message": "PCP: support for \u0027dynamic columns\u0027 added at runtime\n\nImplements support for arbitrary Performance Co-Pilot\nmetrics with per-process instance domains to form new\nhtop columns.  The column-to-metric mappings are setup\nusing configuration files which will be documented via\nman pages as part of a follow-up commit.\n\nWe provide an initial set of column configurations so\nas to provide new capabilities to pcp-htop: including\nconfigs for containers, open fd counts, scheduler run\nqueue time, tcp/udp bytes/calls sent/recv, delay acct,\nvirtual machine guests, detailed virtual memory, swap.\n\nNote there is a change to the configuration file path\nresolution algorithm introduced for \u0027dynamic meters\u0027.\nFirst, look in any custom PCP_HTOP_DIR location.  Then\niterate, in priority order, users home directory, then\nlocal sysadmins files in /etc/pcp/htop, then readonly\nconfiguration files below /usr/share/pcp/htop.  This\nfinal location becomes the preferred place for our own\nshipped meter and column files.\n\nThe Settings file (htoprc) writing code is updated to\nnot using the numeric identifier for dynamic columns.\nThe same strategy used for dynamic meters is used here\nwhere we write Dynamic(name) so the name can be setup\nonce more at start.  Regular (static) columns writing\nto htoprc - i.e. numerically indexed - is unchanged.\n"
    },
    {
      "commit": "ed82ce6456f0f904a0ab2b346b85d7cf46df109c",
      "tree": "1b02b20548da6dbcdf53872c3c99a3c013588fd1",
      "parents": [
        "e341217fea844e1c45b7079146b9de7cb68e8c2a",
        "edf236f9fcf257c5266cead0c3bc45087d937e65"
      ],
      "author": {
        "name": "Daniel Lange",
        "email": "DLange@git.local",
        "time": "Mon Aug 02 15:21:07 2021 +0200"
      },
      "committer": {
        "name": "Daniel Lange",
        "email": "DLange@git.local",
        "time": "Mon Aug 02 15:21:07 2021 +0200"
      },
      "message": "Merge branch \u0027cpu_count\u0027 of cgzones/htop\n"
    },
    {
      "commit": "41af31be7ffbd34518b27aad56a4f54af6a8adf3",
      "tree": "6e86813a332e93f7ee22b873d7522fa766b4af97",
      "parents": [
        "c9abd788b17ab28424961310b7e224498510780c"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Sat Jun 12 18:17:28 2021 +0200"
      },
      "committer": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Sun Jul 18 07:44:02 2021 +0200"
      },
      "message": "Rework CPU counting\n\nCurrently htop does not support offline CPUs and hot-swapping, e.g. via\n    echo 0 \u003e /sys/devices/system/cpu/cpu2/online\n\nSplit the current single cpuCount variable into activeCPUs and\nexistingCPUs.\n\nSupersedes: #650\nRelated: #580\n"
    },
    {
      "commit": "7bfd62b8e4040000091ccad8880acdde9685fcd7",
      "tree": "09d52931e086f83e8c19c5b3bb4cad10fe3ba9d2",
      "parents": [
        "c9abd788b17ab28424961310b7e224498510780c"
      ],
      "author": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Sat Jul 17 20:59:50 2021 +0200"
      },
      "committer": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Sat Jul 17 20:59:50 2021 +0200"
      },
      "message": "Respect \"Show custom thread names\" setting\n"
    },
    {
      "commit": "976c6123f41492aaf613b9d172eef1842fb7b0a3",
      "tree": "c5d2cc5276cd909348a41214320d305eb955fe57",
      "parents": [
        "68edf924349e10ed6a144d4d6f1d0ddcdfeb6d43"
      ],
      "author": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Wed Jul 14 19:24:18 2021 +0200"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Thu Jul 15 06:57:24 2021 +0200"
      },
      "message": "Pointer indication aligned to typename\n"
    },
    {
      "commit": "0d85af28727255ae4203cf01d1d657dc0c8d4258",
      "tree": "0c8cf78acb173b4a9df83b431820152ffa31aec0",
      "parents": [
        "458749df45a24abec1f9a820e4172a08ccfba3b1"
      ],
      "author": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Wed Jul 14 19:18:27 2021 +0200"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Thu Jul 15 06:57:24 2021 +0200"
      },
      "message": "Whitespace around operators\n"
    },
    {
      "commit": "458749df45a24abec1f9a820e4172a08ccfba3b1",
      "tree": "de48ef3f0c15e6f748e99868f1f8c4d340a0296c",
      "parents": [
        "e7f8d7bcc954e965143331ec3f2353c03959acc6"
      ],
      "author": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Wed Jul 14 19:15:09 2021 +0200"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Thu Jul 15 06:57:24 2021 +0200"
      },
      "message": "Code indentation\n"
    },
    {
      "commit": "de1d06300db39a86357994edd185f35420c2362e",
      "tree": "7f6f347a86d9c77389b74c6338baafda992b5797",
      "parents": [
        "9114cf6ea3771c55cdaaa3af8583feaf0514d956"
      ],
      "author": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Thu Jun 10 23:23:03 2021 +0200"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Fri Jun 11 09:04:23 2021 +0200"
      },
      "message": "Apply stale lib highlighting for EXE too\n"
    },
    {
      "commit": "9114cf6ea3771c55cdaaa3af8583feaf0514d956",
      "tree": "aa4cab368f9f3489f336ca1d921221c370c69b7d",
      "parents": [
        "faabbaa71ec09c0dc8a013f412b38726eec4e899"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Wed Jun 09 11:13:39 2021 +0200"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Wed Jun 09 22:52:18 2021 +0200"
      },
      "message": "Linux: update process uid on change\n\nAlways check if the user of a process changed, e.g. by using setuid(2).\n"
    },
    {
      "commit": "8154125d4bf26fff20241eebe17954254409a522",
      "tree": "cebf390fc17b80cd4774a0309b72ba874a977599",
      "parents": [
        "94d37989b409abc6f1cae8028a9435eb5b04f66a"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Sun Apr 04 18:07:26 2021 +0200"
      },
      "committer": {
        "name": "cgzones",
        "email": "cgzones@googlemail.com",
        "time": "Wed Jun 09 14:40:04 2021 +0200"
      },
      "message": "Check processes for using deleted shared libraries\n\nShared libraries can be replaced by an upgrade, highlight processes\nusing deleted shared libraries.\n\nLink with highlightDeletedExe setting, enabled by default.\n\nCurrently only checked on Linux.\n"
    },
    {
      "commit": "b6ff5c8a2e5981a0e71423953b565a1389c5428d",
      "tree": "5091521cb893526ab1e35db19768254d08e35700",
      "parents": [
        "c408add10847c597de9fb7ba76295c386dc39649"
      ],
      "author": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Tue May 25 19:02:12 2021 +0200"
      },
      "committer": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Tue May 25 21:55:04 2021 +0200"
      },
      "message": "Move CWD field handling to platform-neutral code\n"
    },
    {
      "commit": "c408add10847c597de9fb7ba76295c386dc39649",
      "tree": "a88bd96a98b61b785fe6595b47b074b6621663b4",
      "parents": [
        "550a1418606f487941b3dddbf81de17c459db66c"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Sun May 23 15:53:23 2021 +0200"
      },
      "committer": {
        "name": "cgzones",
        "email": "cgzones@googlemail.com",
        "time": "Tue May 25 18:20:09 2021 +0200"
      },
      "message": "Linux: add reset to heuristic\n\nOn hard to parse command lines tokenStart might be computed to be bigger\nthan tokenEnd.\nReset both values in such cases.\n"
    },
    {
      "commit": "550a1418606f487941b3dddbf81de17c459db66c",
      "tree": "7e0b902b406d7858772dc8b14d65fb4cc72b8de9",
      "parents": [
        "3d5b6d9282e584557999772d3cedd7e8ceddabbd"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Sun May 02 13:29:39 2021 +0200"
      },
      "committer": {
        "name": "cgzones",
        "email": "cgzones@googlemail.com",
        "time": "Sun May 23 15:43:23 2021 +0200"
      },
      "message": "Add ELAPSED process column\n\nAdd process columns showing the elapsed time since the process was\nstarted.\nSimilar to STARTTIME, but shows the time passed since the process start\ninstead of the fixed start time of the process.\n\nCloses https://bugs.debian.org/cgi-bin/bugreport.cgi?bug\u003d782636\n"
    },
    {
      "commit": "bf07c713ba431e86edf3773cc7428398c911fc46",
      "tree": "2b0f25a96562aade4c8af32d9e015ea61fcafeaa",
      "parents": [
        "d9feff150c1f0fb7ae8156bc5271c6bac482aac4"
      ],
      "author": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Sat Dec 19 16:46:00 2020 +0100"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Sun May 23 09:30:36 2021 +0200"
      },
      "message": "Allow for highlighting of deleted executables to be configured\n\nFixes #383\n"
    },
    {
      "commit": "05fb681d5cc9535f12879d4b307808b5307861c1",
      "tree": "cde2cc10fb946e93a84d5f3ef479b2f1ed45e3c4",
      "parents": [
        "7c654559c9615489da61803a626af7d3e9a05fa7"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Tue May 18 22:29:25 2021 +0200"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Sun May 23 09:22:21 2021 +0200"
      },
      "message": "Process: add convenience helper functions to update merged command line related data\n"
    },
    {
      "commit": "7ef58f2dcf03edb2822c3d95991590bb429f36ab",
      "tree": "a353ce2f74ee68a66c8cbd4bb3875bb06d609024",
      "parents": [
        "2824e2989a9bb85d500d347abb082a27a243de3c"
      ],
      "author": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Mon May 17 23:15:24 2021 +0200"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Sun May 23 09:22:21 2021 +0200"
      },
      "message": "Drop mc-\u003emaxLen field\n"
    },
    {
      "commit": "2824e2989a9bb85d500d347abb082a27a243de3c",
      "tree": "33c540ac54886e5bf51eb974fbebf25d1266ce2d",
      "parents": [
        "9a78155e17b2c87259cd46bfad5e3358ef2c44ee"
      ],
      "author": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Sat May 15 21:55:14 2021 +0200"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Sun May 23 09:22:21 2021 +0200"
      },
      "message": "Reduce code duplication for nearly identical code-paths\n"
    },
    {
      "commit": "9a78155e17b2c87259cd46bfad5e3358ef2c44ee",
      "tree": "02cfaae04a61a8a348635303f92a037db9911f41",
      "parents": [
        "aa8552ba88e139fa1da65b1870de2839f33b8404"
      ],
      "author": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Sat May 15 21:54:46 2021 +0200"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Sun May 23 09:22:21 2021 +0200"
      },
      "message": "Properly brace macro arguments\n"
    },
    {
      "commit": "aa8552ba88e139fa1da65b1870de2839f33b8404",
      "tree": "1250ee5760a77de48b0a1beda7600f896db57f2f",
      "parents": [
        "a61a2e6d470b3a5d075a5ba7d8d4cd37ef3f78b5"
      ],
      "author": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Sun Apr 18 19:25:56 2021 +0200"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Sun May 23 09:22:21 2021 +0200"
      },
      "message": "Move PROC_COMM/PROC_EXE column handling to global Process implementation\n"
    },
    {
      "commit": "a61a2e6d470b3a5d075a5ba7d8d4cd37ef3f78b5",
      "tree": "b359bec3f5e3a6defdc7483772f5b96c51f0f666",
      "parents": [
        "bcb18ef82269c68d54a160290e5f8b2e939674ec"
      ],
      "author": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Sun Apr 18 18:10:04 2021 +0200"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Sun May 23 09:22:21 2021 +0200"
      },
      "message": "Call makeCommandStr on all platforms\n"
    },
    {
      "commit": "bcb18ef82269c68d54a160290e5f8b2e939674ec",
      "tree": "e5967c038b2d11ed906b8fdda0babe114dab3c46",
      "parents": [
        "c0d02024407411f75a4d7d5b63f26b74c727027b"
      ],
      "author": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Sat Apr 10 13:31:39 2021 +0200"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Sun May 23 09:22:21 2021 +0200"
      },
      "message": "Move Process_makeCommandStr to global Process implementation\n"
    },
    {
      "commit": "c0d02024407411f75a4d7d5b63f26b74c727027b",
      "tree": "1252f8c71d108af939daa731bccc71e1bf5125d2",
      "parents": [
        "7224d0e0831ee53d5028915f87dffd51ffa0d6fa"
      ],
      "author": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Sat Apr 24 12:06:49 2021 +0200"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Sun May 23 09:22:21 2021 +0200"
      },
      "message": "Move LinuxProcess_getCommandStr to Process_getCommandStr\n"
    },
    {
      "commit": "cdb660adabada0c293ed86ebf5638d435950a03f",
      "tree": "210fd0ad96f248ce0c0d9131d3d45a422957a3cf",
      "parents": [
        "94a52cb5c9274fe021b3fc114180294cadb598b4"
      ],
      "author": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Sat Apr 10 11:10:50 2021 +0200"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Sun May 23 09:22:21 2021 +0200"
      },
      "message": "Move mergeCommand to global process struct\n"
    },
    {
      "commit": "94a52cb5c9274fe021b3fc114180294cadb598b4",
      "tree": "9d00199d74bc600283ae007464de65cc27377edd",
      "parents": [
        "666f70c58c9fcd6bc27ed93b7958efd7a064133a"
      ],
      "author": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Sat Apr 10 11:46:57 2021 +0200"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Sun May 23 09:22:21 2021 +0200"
      },
      "message": "Rename cmdlineBasenameOffset to cmdlineBasenameEnd to properly indicate the fields purpose\n"
    },
    {
      "commit": "b839987df7f6fc761c96b651a3dfc49eb13e879a",
      "tree": "7853491e9257ce9b1eb938d929e9b357ef7e06da",
      "parents": [
        "d74e8b755427ba0c0b7da299b2f1bcdbdc76f62e"
      ],
      "author": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Mon Feb 01 22:24:42 2021 +0100"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Sun May 23 09:22:21 2021 +0200"
      },
      "message": "Rename basenameOffset to cmdlineBasenameOffset\n"
    },
    {
      "commit": "d74e8b755427ba0c0b7da299b2f1bcdbdc76f62e",
      "tree": "132473b9d2db101ede95ad7d6323cc9f8293b823",
      "parents": [
        "10790f0a54f6bb21ca8387a8a13ffe22036fb490"
      ],
      "author": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Sat Jan 30 15:31:59 2021 +0100"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Sun May 23 09:22:21 2021 +0200"
      },
      "message": "Move procComm and procExe to main Process structure\n"
    },
    {
      "commit": "02431c43e1db2ab18769dc1f0bcfa52e8219f81a",
      "tree": "8bdbb2eb343489c3a5ab031e0f510bb3f437c3eb",
      "parents": [
        "fbec3e4005ee88052aae273ce98943f8a3db6382"
      ],
      "author": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Sat Dec 19 16:21:08 2020 +0100"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Sun May 23 09:22:21 2021 +0200"
      },
      "message": "Rename command line field from comm to cmdline\n"
    },
    {
      "commit": "1b74dfe1877676b914af6dcedd2d7578164aab47",
      "tree": "66ebff16204979342ba4a597c9f3c75a4cb6c005",
      "parents": [
        "d9c95369bc51595b6edd4eb6050c47a9b1e7a8d7"
      ],
      "author": {
        "name": "mayurdahibhate",
        "email": "mayurdahibhate31@gmail.com",
        "time": "Thu Apr 29 20:42:43 2021 +0530"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Mon May 10 18:40:53 2021 +0200"
      },
      "message": "cleaned up includes with iwyu\n"
    },
    {
      "commit": "b41e4d9c546e95fb308db3308848d7dddb4d98cf",
      "tree": "77ba38e2fdd1750ff3653d469015448c74515ab3",
      "parents": [
        "6bbb454881986a1a4d2e639b5fb6b7ac47374fe2"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Wed Apr 14 20:16:16 2021 +0200"
      },
      "committer": {
        "name": "cgzones",
        "email": "cgzones@googlemail.com",
        "time": "Mon Apr 26 18:02:58 2021 +0200"
      },
      "message": "Rework process field print functions\n\nMake functions formatting data for a process field column less error\nprone, unify interfaces and improve some internals.\n\n* Process_printBytes\n  - rename from Process_humanNumber\n  - take number in bytes, not kilobytes\n  - handle petabytes\n  - increase buffer to avoid crashes when the passed value is\n    ~ ULLONG_MAX\n\n* Process_printKBytes\n  - add wrapper for Process_printBytes taking kilobytes keeping -1 as\n  special value\n\n* Process_printCount\n  - rename from Process_colorNumber\n\n* Process_printTime\n  - add coloring parameter as other print functions\n  - improve coloring and formatting for larger times\n\n* Process_printRate\n  - rename from Process_outputRate\n  - use local buffer instead of passed one; this function prints to the\n    RichString after all\n"
    },
    {
      "commit": "a2be57d768d19e578a1b165b9b54db602971a7ff",
      "tree": "70a1c61c158574272c20debf10f40ab41062775f",
      "parents": [
        "436808ff99d7b7e6f5d6e8f3127d9d03f6295f98"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Wed Apr 14 20:54:38 2021 +0200"
      },
      "committer": {
        "name": "cgzones",
        "email": "cgzones@googlemail.com",
        "time": "Mon Apr 26 17:51:45 2021 +0200"
      },
      "message": "Process: print default buffer in ascii\n\n`RichString_appendWide()` is more expensive than\n`RichString_appendAscii()` due to the calls to `mbstowcs(3)` and\n`iswprint(3)`.\n\nUse the latter to print the process field buffer by default.\n\nFor the following fields this theoretically can corrupt the output:\n  - TTY\n"
    },
    {
      "commit": "615fc934ffe319bc5eb3fc7d917abf50a04bd726",
      "tree": "17a1159f4209763b195fdbf24f3df2a72bb89e93",
      "parents": [
        "bd689ab0d3cc2f6f8f12d53ab62f471a7d373e20"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Sun Apr 18 15:52:28 2021 +0200"
      },
      "committer": {
        "name": "cgzones",
        "email": "cgzones@googlemail.com",
        "time": "Wed Apr 21 20:58:28 2021 +0200"
      },
      "message": "Add assert for unreachable switch case\n\nLike the default case in Process_writeField()\n"
    },
    {
      "commit": "9a8221568ada269d20c3e9d291ad5f9d07cac755",
      "tree": "025f098f3e98e3ae27105feb60dc76d4ff627452",
      "parents": [
        "36880cd61c52f13c6fd284aa23d42d9493d3ab2e"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Sun Mar 21 19:40:56 2021 +0100"
      },
      "committer": {
        "name": "cgzones",
        "email": "cgzones@googlemail.com",
        "time": "Wed Apr 14 17:29:56 2021 +0200"
      },
      "message": "Rework TTY column\n\n* Rename internal identifier from TTY_NR to just TTY\n* Unify column header on platforms\n* Use devname(3) on BSD derivate to show the actual terminal,\n  simplifies current FreeBSD implementation.\n* Use \u0027unsigned long int\u0027 as id type, to fit dev_t on Linux.\n\nOnly on Solaris the terminal path is not yet resolved.\n"
    },
    {
      "commit": "36880cd61c52f13c6fd284aa23d42d9493d3ab2e",
      "tree": "54df8a9e8ef536db034af9a3f1d6496626ad802b",
      "parents": [
        "812cfcb94df0fc0e6f9d33e39078454842d61609"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Thu Jan 21 20:27:37 2021 +0100"
      },
      "committer": {
        "name": "cgzones",
        "email": "cgzones@googlemail.com",
        "time": "Wed Apr 14 17:21:43 2021 +0200"
      },
      "message": "Add read-only option\n\nAdd command line option to disable all system and process changing\nfeatures.\n"
    },
    {
      "commit": "f3d9ecaa626f2f9124f5c53b083511572ef47a66",
      "tree": "afc0cdea50dc4b98ef000708bb23a3bad8a8b8ab",
      "parents": [
        "0006cc51b7c59775cadd4ff96a214730e79d9cc8"
      ],
      "author": {
        "name": "David Zarzycki",
        "email": "dave@znu.io",
        "time": "Sat Apr 10 08:02:59 2021 -0400"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Sat Apr 10 14:43:23 2021 +0200"
      },
      "message": "Convert process time to days if applicable\n\nWith big multicore machines, it\u0027s easy to accumulate process time.\n"
    },
    {
      "commit": "356488aa53e8c0bedeb7641685d931c8900098c5",
      "tree": "c09f2df8264cc4075b72a55409ae261c021cda55",
      "parents": [
        "421bdeec603b4fb1a4edec0e802c437fbe47fca0"
      ],
      "author": {
        "name": "Nathan Scott",
        "email": "nathans@redhat.com",
        "time": "Tue Mar 30 15:55:48 2021 +1100"
      },
      "committer": {
        "name": "Sohaib",
        "email": "sohaib.amhmd@gmail.com",
        "time": "Mon Apr 05 23:41:07 2021 +0200"
      },
      "message": "Request the realtime and monotonic clock times once per sample\n\nRefactor the sample time code to make one call to gettimeofday\n(aka the realtime clock in clock_gettime, when available) and\none to the monotonic clock.  Stores each in more appropriately\nnamed ProcessList fields for ready access when needed.  Every\nplatform gets the opportunity to provide their own clock code,\nand the existing Mac OS X specific code is moved below darwin\ninstead of in Compat.\n\nA couple of leftover time(2) calls are converted to use these\nProcessList fields as well, instead of yet again sampling the\nsystem clock.\n\nRelated to https://github.com/htop-dev/htop/pull/574\n"
    },
    {
      "commit": "1e806f9899600256cbcc540715261f461e11dd25",
      "tree": "292ef9c567e8a0c2b17758f25eab49120aebfcc1",
      "parents": [
        "d9f2eacbc5b3fccf63b24944ce9a30d762baea3c"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Sun Mar 07 15:31:41 2021 +0100"
      },
      "committer": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Wed Mar 17 15:54:17 2021 +0100"
      },
      "message": "RichString: do not unnecessarily clean whole buffer\n\nThe local stack buffer does not need to be cleaned to zeros when\n  - just initialized, cause the length is set to 0 and the first\n    character is set to \u0027\\0\u0027, so all printing functions will safely stop\n  - no further used, i.e. the variable goes out of scope\n"
    },
    {
      "commit": "3f99c2de245e950b8004fde023e45a0dd6389381",
      "tree": "f7a9586e707ea0770ecae0b7e67ca7b78a5630c8",
      "parents": [
        "bea7f8e7afaab973d8086cc4b7d7978f06582f86"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Fri Mar 12 16:46:04 2021 +0100"
      },
      "committer": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Fri Mar 12 16:46:04 2021 +0100"
      },
      "message": "Process: do not access RichString internals\n\nUse wrapper macro to encapsulate the RichString structure\n"
    },
    {
      "commit": "bea7f8e7afaab973d8086cc4b7d7978f06582f86",
      "tree": "3770b38b174449888b04734fec4f4f2033aa95d5",
      "parents": [
        "9adcd9051ab94fde4aa63de7673417e3cbd25f42"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Fri Mar 12 16:44:46 2021 +0100"
      },
      "committer": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Fri Mar 12 16:44:46 2021 +0100"
      },
      "message": "Process_compare: reorder checks\n\nCheck for result being 0 first, before checking if the result might be\nnegated, so we do not need to negate 0.\n"
    },
    {
      "commit": "979aca98cc74d0d9420a63d148a1f9e8e9f89976",
      "tree": "37ad68553aa6274a395793dc27b5d4267c19adde",
      "parents": [
        "df818b9904af6141e2f9ba4cfff51886b0dbdf52"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Tue Mar 02 21:59:56 2021 +0100"
      },
      "committer": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Tue Mar 02 22:03:20 2021 +0100"
      },
      "message": "Use uppercase floating point literal suffix\n"
    },
    {
      "commit": "82157f598e09790b408a4e519a25d3affba95240",
      "tree": "77f86dbd0a50bb2e4017a0fe308e9967adf91279",
      "parents": [
        "a73064dda97d751047748c4539a969495bdadf73"
      ],
      "author": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Tue Feb 16 19:44:59 2021 +0100"
      },
      "committer": {
        "name": "Benny Baumann",
        "email": "BenBE@geshi.org",
        "time": "Wed Feb 17 15:59:50 2021 +0100"
      },
      "message": "Refactor to remove no-op calls\n\nThis removes the call-sites of the removed setuid feature\n"
    },
    {
      "commit": "fdaa15bd8d6df7dd4721ed70a913865b343a80c7",
      "tree": "2015c85afa9a2167e1c92a151dea924e05c72570",
      "parents": [
        "fee744abd2d7c1a3a9b8fa4ece7ddfc872078850"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Wed Jan 27 15:11:48 2021 +0100"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Sat Jan 30 14:21:26 2021 +0100"
      },
      "message": "Linux: overhaul io process fields\n\n- avoid UBSAN conversions\n- print N/A on no data (i.e. as unprivileged user)\n- fix rate calculation to show bytes (instead of a thousandth)\n- print bytes as human number (i.e. 8MB) instead of 8388608\n- stabilize sorting by adjusting NAN values to very tiny negative number\n"
    },
    {
      "commit": "fee744abd2d7c1a3a9b8fa4ece7ddfc872078850",
      "tree": "6813be170a9575802cf1b63a94b5e00425a44a84",
      "parents": [
        "d5de1bc23d693df76444f1454a783e80cda89a88"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Wed Jan 27 15:11:46 2021 +0100"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Sat Jan 30 14:21:26 2021 +0100"
      },
      "message": "Update generic process field display\n\n- sort cases by identifier\n- use check snprintf\n- color nice value of 0 as gray\n- color cpu and memory percentages of 0.0 as gray\n- color number of threads of 1 as gray\n- color idle and sleeping state as gray\n- color tgid matching pid (indicating main thread) as gray\n"
    },
    {
      "commit": "d5de1bc23d693df76444f1454a783e80cda89a88",
      "tree": "cf1a807cb15156d20ff61f81b0c33d9f539b808e",
      "parents": [
        "a3c8285237c673189b28c897910cf6eb8629bfaf"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Wed Jan 27 15:11:44 2021 +0100"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Sat Jan 30 14:21:26 2021 +0100"
      },
      "message": "Overhaul sorting of state process column\n\nDo not sort by ascii value of the state identifier, sort by relevance\n"
    },
    {
      "commit": "a3c8285237c673189b28c897910cf6eb8629bfaf",
      "tree": "1ba239046f4b8707a9eec2b1a2b8ccd86bac8945",
      "parents": [
        "03d6345c891b93b4658481f891fa2af5ce1c951b"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Wed Jan 27 15:11:42 2021 +0100"
      },
      "committer": {
        "name": "BenBE",
        "email": "BenBE@geshi.org",
        "time": "Sat Jan 30 14:21:26 2021 +0100"
      },
      "message": "Refactor to tty_nr process field display\n\nIf no terminal name can be found, fall back to generic display method\nwith major and minor device numbers.\n\nPrint special value \u0027(none)\u0027 in case both are zero.\n"
    }
  ],
  "next": "3035e29e7475379c075614109ae717649a0eb2d6"
}
