2021-02-27 cage * Makefile.in, * configure: - updated building script and Makefile. 2021-02-26 Omar Polo * configure.ac: - use autoconf' ${AWK} instead of looking for gawk This also fixes an instance of `awk' that should be ${AWK} 2021-02-26 Omar Polo * compare_version.awk: - avoid strtonum (a GNU AWK extension) this drops the requirements on strtonum, making the script (AFAIK) POSIX compliant. This (ab)uses the fact that `+' will cast its operator to numbers. Tested with GNU AWK and "The One True AWK" on OpenBSD. 2021-02-21 cage * etc/shared.conf, src/gemini-viewer.lisp, src/package.lisp, src/software-configuration.lisp: - [gemini] made fetching of favicon opt-in by default tinmop will not fetch favicon.txt anymore, this feature must be enabled by user using a configuration directive. 2021-02-20 cage * src/api-client.lisp: - fixed crash when starting the program without a configuration file. 2021-02-19 cage * src/keybindings-window.lisp, * src/windows.lisp, * src/complete-window.lisp, * src/notify-window.lisp: - changed ':draw-border' to ':border' to track the new croatoan API. 2021-02-19 cage * src/api-pleroma.lisp, * src/api-client.lisp: - added version 2 of get chat list endpoint. 2021-02-18 cage * src/tui-utils.lisp: - fixed append. 2021-02-18 cage * src/package.lisp, * src/tui-utils.lisp, * src/misc-utils.lisp, * src/software-configuration.lisp: - improved a bit rendering speed of text in message window. 2021-02-13 cage * etc/default-theme.conf, * etc/shared.conf, * src/open-attach-window.lisp, * src/software-configuration.lisp: * src/package.lisp: - allowed users (via configuration directive) to use (or not) cache when opening a link with a custom program. 2021-02-11 cage * src/software-configuration.lisp: - prevented crash when a program to open a link is not found. 2021-02-10 cage * README.txt: * etc/default-theme.conf, * src/open-message-link-window.lisp, * src/package.lisp, * README.org, * src/os-utils.lisp, * src/software-configuration.lisp: - added configuration directive to use a specific program to open a link (e.g. open all mp3 files with program mpv); - updated README, if no configuration file is given tinmop can be used as a gemini client. 2021-02-09 cage * src/gemini/client.lisp, * src/gemini-viewer.lisp: - [gemini] removed useless 'unwind-protect' (and simplified code) from 'gemini-client:request'; - [gemini] in gemini-client:request-dispatch signal a condition ('not-implemented-error') instead of doing nothing when a response in not handled (i.e. no function for that response type exists). 2021-02-07 cage * src/gemini-viewer.lisp: - [gemini] ensured 'gemini-viewer:request' respects the 'enqueue' argument when making recursive call to itself. 2021-02-07 cage * src/conditions.lisp, src/gemini-viewer.lisp, src/gemini/client.lisp: - [gemini] rewritten gemini-viewer:request using gemini-client:request-dispatch machinery; hopefully this should made the function easier to read (by human) and extend. 2021-02-06 cage * src/gemini/client.lisp, * src/hooks.lisp, * src/package.lisp: * src/db.lisp, * src/gemini-viewer.lisp, - replaced local function 'fetch-cached-certificate' with a global; - replaced local function with a global one; - added hook '*after-saving-message*. 2021-02-02 cage * src/gemini-viewer.lisp, * src/program-events.lisp, * src/tui-utils.lisp: * src/package.lisp, - fixed indentation of 'gemini-viewer:request'; - [gemini] encoded the input string before making the request; - prevented crash when sending message to command did not worked. Printing error to command line instead. 2021-01-31 cage * README.org, * README.txt, * aclocal.m4, * configure, * src/gemini/client.lisp, * src/grovel-idn.lisp, * src/package.lisp, * src/tests/idn-tests.lisp, * tinmop.asd, * Makefile.in, * configure.ac, * src/idn.lisp, * src/tests/package.lisp: - removed dependency from libidn2 punycode encoding comes from an internal implementation instead of using an C library. 2021-01-28 cage * src/gemini-viewer.lisp, * src/gemini/package.lisp, * src/package.lisp, * src/software-configuration.lisp, * src/ui-goodies.lisp, * etc/default-theme.conf, * src/gemini/client.lisp, * src/gemini/subscription.lisp, * src/program-events.lisp: - [gemini] added support for favicon.txt, the implementation more or less follow gemini://mozz.us/files/rfc_gemini_favicon.gmi but it does render the first character of the file instead of checking for emoji characters; - [gemini] fixed canceling subscription to gemlogs. 2021-01-27 cage * src/complete.lisp, * src/db.lisp, * etc/default-theme.conf: - made input command history less messy - adding a sequence of n equals entries count as one (no duplicate entries on top of the history); - removed duplicate for gemini history URL. 2021-01-24 cage * etc/default-theme.conf, * src/message-rendering-utils.lisp, * src/software-configuration.lisp, * src/text-utils.lisp, * src/ui-goodies.lisp, * etc/default-theme.conf, * src/gemini/gemini-parser.lisp, * src/package.lisp, * src/tags-window.lisp: - added feature to allow users to configure symbols rendered for each toot visibility level in main window. - prevented crash truncating the scaled width of tags window. - prevented non rendering of 'new-message' character in tags window. - made 'text-utils:strim-blanks' returns nil and not "NIL" when input is null; - [gemini] trim white spaces from link name. - [gemini] shown selected row in gemlog subscription window. 2021-01-23 cage * src/db-utils.lisp, * src/db.lisp, * src/message-rendering-utils.lisp, * src/thread-window.lisp, * src/gemini-viewer.lisp, * src/gemini/client.lisp, * src/gemini/package.lisp, * src/gemini/subscription.lisp: - changed db-nil-p this function was transforming "no" and even 0.0 (floating point number) to nil. That behaviour was incorrect for numbers and probably not desirable for the string "No" (in fact poll with "No" option was not rendered because of this). Removed conversion for non- integer numbers and prevented conversion from some kind of non empty string (like "nil" or "no") via a key argument. - [gemini] made slurp-gemini-url works with redirect; - [gemini] made some refactoring for building redirect IRIs. 2021-01-18 cage * src/db.lisp, * src/gemini-subscription-window.lisp: - [gemini] fixed purging and refreshing posts from subscribed gemlog - changing deleting of posts references to logical deleting (i.e. setting a boolean column to true); - fixed time threshold for purging (must be a negative integer). 2021-01-17 cage * po/it.po, * po/tinmop.pot, * src/keybindings.lisp, * src/tui-utils.lisp, * src/ui-goodies.lisp: * src/gemini-viewer.lisp, - shown a message when user's searching for commands returns no results. - updated Italian translation - improved a bit a single docstring - [gemini] fixed test for checking valid cached value for certificate/key pair. The function to find a cached certificate/key or create a new pair returns a multiple value. I was using multiple-value-list for getting the pairs certificate/key from said functions. Then i was checking the results of 'multiple-value-list' for null values to get the non correct pair, but that expression never return nil (was returning '(nil) instead). This was breaking the client authentication. 2021-01-16 cage * src/main.lisp, * src/package.lisp, * src/software-configuration.lisp: - added some more tests for checking missing values from configuration files. 2021-01-13 cage * configure, * configure.ac: * po/tinmop.pot: * src/package.lisp, * src/resources-utils.lisp, * po/it.po, * src/main.lisp, * src/software-configuration.lisp, - Reportedly the program works with 1.4.16. - suggest the user how to bypass the compiler check - create an empty config file if the user did not provided one, instead of printing an error and exit. - updated Italian translation. 2021-01-12 cage * src/api-client.lisp, * src/api-pleroma.lisp, * src/package.lisp: - prevented authorization of client if no server name has been provided by the user in the config file. 2021-01-11 cage * po/POTFILES.in, * po/it.po, * po/tinmop.pot, * src/db.lisp, * src/open-message-link-window.lisp, * src/package.lisp, * src/program-events.lisp, * src/scheduled-events.lisp, * src/ui-goodies.lisp, * src/open-message-link-window.lisp, * src/ui-goodies.lisp: - [gemini] ensure link opened is saved in history. - [gemini] fixed rendering of 'seen' flag for gemini post; - [gemini] mark post as read when opening the corresponding link. - [gemini] prevent gemlog window to lose focus when a gemlog is selected. - made gemlog window close when focus passes to thread window. - added scheduling of purging of old gemlog's posts; - updated Italian translation. 2021-01-10 cage * po/tinmop.pot, * src/db.lisp, * src/gemini-subscription-window.lisp, * src/line-oriented-window.lisp, * src/package.lisp, * src/program-events.lisp, * src/scheduled-events.lisp, * src/ui-goodies.lisp: * etc/init.lisp, * po/it.po, * src/gemini/subscription.lisp, * src/package.lisp, * src/program-events.lisp, * src/ui-goodies.lisp, - updated Italian translation; - [gemini] - added command to refresh all gemlogs; - added scheduled refresh of all gemlogs; - fixed sorting of gemlog posts; - prevent crash when subscribing to an already subscribed gemlog; - added cancel of subscriptions. 2021-01-09 cage * aclocal.m4, * configure, * configure.ac, * etc/init.lisp, * po/tinmop.pot, * src/db.lisp, * src/gemini/gemini-parser.lisp, * src/gemini/package.lisp, * src/gemini/subscription.lisp, * src/package.lisp, * src/program-events.lisp, * src/specials.lisp, * src/ui-goodies.lisp, * tinmop.asd, * Makefile.in, * etc/default-theme.conf, * etc/init.lisp, * po/it.po, * src/gemini-subscription-window.lisp, * src/gemini/package.lisp, * src/grovel-idn.lisp, * src/keybindings.lisp, * src/program-events.lisp, * src/software-configuration.lisp, * src/ui-goodies.lisp: - [gemini] - added a draft for gemlog subscriptions; - added subscription command to gemlog. - used pkg-config in the libidn2 grovel file (thanks to yumh!); - updated Italian translation; - using pkg-config for checking libidn2 with configure script. 2021-01-08 cage * src/gemini/client.lisp, * src/gemini/package.lisp, * src/html-utils.lisp, * src/package.lisp, * tinmop.asd: * src/db.lisp, * src/gemini/subscription.lisp, * src/misc-utils.lisp, - [gemini] Started with gemlog subscription, added database table and interface and subscribing API. 2021-01-06 cage * po/it.po, * po/tinmop.pot, * src/message-rendering-utils.lisp: - rendered visibility of a status when printed on the main window; - tested with latest croatoan: no problem so far; - updated PO file. 2021-01-05 cage * Makefile.am, * Makefile.in: - instructed Makefile to install the module 'rewrite-message-urls.lisp'. 2021-01-04 cage * README.org, * README.txt, * doc/tinmop.man, * doc/man.org: - updated FAQ; - updated manpage. 2021-01-03 cage * README.org, * README.txt, * configure, * configure.ac, * src/gemini-viewer.lisp, * src/grovel-idn.lisp: * src/gemini-viewer-metadata.lisp, -[gemini] added urls to history if document is loaded from cached content too; - added switch to disable compiler check at build time; - updated README and FAQ; - removed IDN2_ALABEL_ROUNDTRIP_FAILED and IDN2_NO_ALABEL_ROUNDTRIP from grovel file for libidn2 This value has been added lately to the C library and some system (reportedly: Debian Buster) ships an old version of the library without this enumeration's value. I am commenting out the code, preventing grovel to process it for now. 2021-01-02 cage * modules/rewrite-message-urls.lisp, * src/open-message-link-window.lisp, * src/program-events.lisp: - fixed hooks for remapping links in gemini window. - [modules] rewrite-message-urls, quoting regexp before replacing. Also refactored some repeated code in a function. - [modules] rewrite-message-urls: changed name function to avoid conflicts with other modules. 2020-12-31 cage * modules/next-previous-open.lisp, * modules/rewrite-message-urls.lisp, * src/hooks.lisp, * src/hooks.lisp, * src/main.lisp, * src/misc-utils.lisp, * src/open-message-link-window.lisp: * src/package.lisp, * src/scheduled-events.lisp, * src/ui-goodies.lisp: * etc/init.lisp, * modules/rewrite-message-urls.lisp, * src/command-line.lisp, * src/main.lisp, * src/open-message-link-window.lisp, * src/program-events.lisp, - added a profiling macro; - added function to stop event dispatching; - Added a command line switch to load a module; - fixed 'run-hook-compose'; - reverse link order in window; - added 'run-hook-compose'; - added a module to rewrite URLs; - made scheduled updating of chat messages happening only when a chat window is shown; this changes should make the program more responsive when scrolling the text of the main window. 2020-12-30 cage * etc/init.lisp, * src/line-oriented-window.lisp, * src/open-message-link-window.lisp, * src/program-events.lisp, * po/it.po, * po/tinmop.pot, * etc/init.lisp, * src/os-utils.lisp, * src/package.lisp, * src/program-events.lisp, * src/ui-goodies.lisp: - allow repeat search on links window's items; - updated Italian translation; - added a command to send data to an external program. 2020-12-29 cage * NEWS.org: * etc/init.lisp, * modules/share-gemini-link.lisp, * src/complete.lisp, * src/db.lisp, * src/gemini-viewer.lisp, * src/main.lisp, * src/package.lisp, * src/program-events.lisp, * src/ui-goodies.lisp, * LICENSES.org, * etc/init.lisp, * src/gemini-viewer-metadata.lisp, * src/gemini/client.lisp, * src/message-window.lisp, * src/ui-goodies.lisp, - added reference to cl-str; - [gemini] fix split when separator is at the end of a path; - using a cache for username completion; - changed default completion function to "no completion"; - added mention to the person that helped to spot a bug; - fixed NEWS.org; - added command to scroll main window using 'newline' key; - added command to repeat the last text search; - [gemini] added a command to refresh a page; - refactoring some code to add the above command. 2020-12-28 cage * Makefile.in, * modules/next-previous-open.lisp, * src/gemini/client.lisp, * src/modules.lisp: * src/package.lisp, * src/package.lisp, * src/text-utils.lisp, * src/text-utils.lisp, * src/ui-goodies.lisp, * Makefile.am, * scripts/welcome-bot.lisp, - fixed welcomebot and moved to a new directory "scripts"; Also export some symbols that this script uses, from others packages; - improved 'percent-decoded-p'; - [gemini] allow percent encoding of query, path and fragment only if not already encoded; - added missing call to format; - reorganized modules and scripts directories; - removed spurious NIL when writing a message. 2020-12-27 cage * Makefile.am, * Makefile.in, * doc/tinmop.man, * modules/share-gemini-link.lisp, * modules/welcome-bot.lisp, * po/it.po, * po/tinmop.pot, * src/package.lisp, * src/ui-goodies.lisp: * doc/man.org, * etc/init.lisp, * po/POTFILES.in, - used a parameter for the welcome message; - updated manpage; - updated italian translation; - moved welcomebot script in the right directory when installed; - added a module to share a gemini page on pleroma. 2020-12-26 cage * doc/welcome-bot.lisp * src/db.lisp: - added a script for a welcome bot; - fixed false positive for new message on subscribed tags. 2020-12-25 cage * src/gemini-viewer.lisp, * src/gemini/client.lisp, * src/gemini/client.lisp: * src/grovel-idn.lisp, * src/iri-parser.lisp, * src/tests/uri-tests.lisp, * LICENSES.org, * src/gemini/gemini-parser.lisp, * src/tests/iri-tests.lisp, * src/uri-parser.lisp: - [gemini] percent encoding path query and fragment before performing the request. - removed warning for missing constants in grovel file. - fixed IRI and URI parser; - taken into account fragment of IRI; - added more IRI and URI test; - passes all the client tests. 2020-12-21 cage * src/program-events.lisp: - fixed swapped functions (unfollow -> follow). 2020-12-21 cage * src/open-message-link-window.lisp: - [gemini] fixed bug that prevented visit the same link more than once. 2020-12-21 cage * po/it.po, po/tinmop.pot: - updated italian translation. 2020-12-21 cage * src/api-client.lisp, src/package.lisp, src/program-events.lisp: - improved following/unfollowing users previously only user that had an entry in the program local database could be followed or unfollowed. With this changes the software perform a name lookup in the client and follow the first user found that match searched username. 2020-12-20 cage * quick_quicklisp.sh.in: - removed installation of 'quri'. 2020-12-20 cage * README.org, README.txt: - removed mentioning of manual installation of tooter from README. 2020-12-17 cage * src/complete.lisp, src/gemini-viewer.lisp, src/gemini/client.lisp, src/gemini/gemini-parser.lisp, src/gemini/package.lisp, src/package.lisp, src/program-events.lisp, src/ui-goodies.lisp: - changed 'uri' to 'iri' where does makes sense to me. 2020-12-17 cage * src/gemini-viewer.lisp, src/program-events.lisp, src/ui-goodies.lisp: - [gemini] fixed bugs that prevented the same IRI to be opened multiple-time. 2020-12-14 cage * NEWS.org, configure, configure.ac, tinmop.asd: - increased version; - fixed typo. 2020-12-14 cage * NEWS.org: - updated documentation. 2020-12-14 cage * ChangeLog: - tracking changes. 2020-12-14 cage * src/gemini-viewer.lisp, src/gemini/client.lisp, src/gemini/gemini-parser.lisp, src/iri-parser.lisp: - [gemini] switched from URI to IRI; - fixed wrong slot symbol. 2020-12-13 cage README.org README.txt configure configure.ac src/gemini-viewer.lisp src/gemini/client.lisp src/gemini/gemini-parser.lisp src/iri-parser.lisp src/iri-parser.lisp src/iri-parser.lisp src/package.lisp src/package.lisp src/tests/iri-tests.lisp src/tests/package.lisp src/uri-parser.lisp tinmop.asd - fixed ssl checking in configure script (was given error when the library was actually found). - added mention of gcc and xgettext in README. - specialize 'normalize-path' on iri; - changed package name: uri-parser -> uri. - removed 'uri-' prefix from 'uri' slots names. - added IRI parser. 2020-12-12 cage README.org, README.txt, configure, configure.ac, src/grovel-idn.lisp, src/idn.lisp, src/package.lisp, tinmop.asd: - added minimal wrapping of libidn2; - added library checks (libidn2 and libssl) to configure scripts; - removed commented reference to quri. 2020-12-09 cage * src/tests/package.lisp, src/tests/x509-tests.lisp, src/x509.lisp, tinmop.asd: - fixed segmentation fault whit FFI code (x509 certificate dump). 2020-12-08 cage * src/ui-goodies.lisp: - quit the program if user choose to keeps statuses marked for deletion. 2020-12-08 cage * etc/init.lisp, src/follow-requests.lisp, src/ui-goodies.lisp: - exposed to the UI 'refresh-chats'; - fixed type in 'follow-request-window' slot; - fixed docstring. 2020-12-07 cage * src/api-client.lisp, src/follow-requests.lisp: - fixed slot types declaration to allow compilation with newer SBCL. 2020-11-01 cage * src/gemini-viewer.lisp, src/ui-goodies.lisp: - [gemini] prevent overwriting of TOFU warning by other messages. 2020-10-25 cage * LICENSES.org, src/gemini-viewer.lisp, src/gemini/gemini-parser.lisp, src/package.lisp, src/tests/gemini-parser-tests.lisp, src/tests/package.lisp, src/tests/program-events-tests.lisp, src/tests/uri-tests.lisp, src/uri-parser.lisp, tinmop.asd: - replaced quri with an internal parser; - [gemini] the client passes the torture test again; - fixed event test. 2020-10-24 cage * src/gemini-viewer.lisp: - removed debug code. 2020-10-24 cage * src/gemini-viewer.lisp, src/program-events.lisp: - [gemini] fixed a regression, display again source of a gemini file. 2020-10-24 cage * src/gemini-viewer.lisp: - [gemini] use named parameter in recursive requests. 2020-10-23 cage * etc/default-theme.conf, etc/init.lisp, src/db.lisp, src/gemini-client-certificates-window.lisp, src/gemini-viewer.lisp, src/gemini/client.lisp, src/keybindings.lisp, src/os-utils.lisp, src/package.lisp, src/program-events.lisp, src/software-configuration.lisp, src/specials.lisp, src/tui-utils.lisp, src/ui-goodies.lisp, tinmop.asd: - [gemini] implemented a draft of a client authentication (via TLS certificates). 2020-10-11 cage * Makefile.am, Makefile.in, configure, configure.ac, src/config.lisp.in, src/config.lisp.in.in, src/constants.lisp, src/db.lisp, src/gemini-viewer.lisp, src/gemini/client.lisp, src/gemini/package.lisp, src/os-utils.lisp, src/package.lisp: - [gemini] starting using certificates; - removed hardcoded 'xdg-open' binary name. 2020-10-06 cage * src/gemini-viewer.lisp, src/package.lisp, src/priority-queue.lisp, src/program-events.lisp: - [gemini] remove a bottleneck when download of a gemini page is completed; Instead of process multiple events, each one with a single line to render, compact all the lines in a single event and, then, process all the lines at once. 2020-10-03 cage * etc/init.lisp, src/complete.lisp, src/line-oriented-window.lisp, src/open-message-link-window.lisp, src/package.lisp, src/program-events.lisp, src/ui-goodies.lisp: - added the possibility to search inside a widows that contains a collection of links. 2020-10-02 cage * NEWS.org, src/constants.lisp, src/program-events.lisp: - actually use the compiled regex-scanner when searching text in the message window; - increased refresh frequency; - removed author name from NEWS.org. 2020-10-01 cage * src/program-events.lisp: - [gemini] removed waiting for rendering of a page before going back in browsing history. 2020-10-01 cage * src/open-message-link-window.lisp, src/package.lisp, src/program-events.lisp, src/ui-goodies.lisp: - [gemini] fixed the stopping of rendering the old page when a new link is opened; - [gemini] added 'gemini-abort-all-downloading-event', used when quitting. 2020-09-30 cage * src/gemini-viewer.lisp, src/open-message-link-window.lisp, src/package.lisp, src/priority-queue.lisp, src/program-events.lisp, src/ui-goodies.lisp: - [gemini] remove all pending rendering events when quitting. 2020-09-30 cage * src/package.lisp, src/priority-queue.lisp, src/program-events.lisp: - [gemini] remove from the event queue all the lines got from a gemtext download when aborting a download. 2020-09-27 cage * src/api-client.lisp, src/api-pleroma.lisp, src/command-line.lisp, src/package.lisp: - removed method to delete notifications using old API new version of pleroma implements the same API as mastodon 3.x; - fixed command line switch to get notification for mentions. 2020-09-26 cage * src/api-client.lisp: - prevented crash when updating mentions The 'status' slot in a 'mention' object can be nil, in this case expand the tree does not makes sense and should be avoided. 2020-09-26 cage * src/program-events.lisp: - add mentions only is not empty or nil, previous check just tested for null. 2020-09-24 cage * src/program-events.lisp: - added mention only if non-nil (when sending a status). 2020-09-19 cage * NEWS.org, configure, configure.ac, tinmop.asd: - increased version. 2020-09-19 cage * ChangeLog: - tracking changes. 2020-09-19 cage * src/stack.lisp: - fixed 'stack-raise-to-top' Swapping the position of the window to be raised with the head of the was a bad idea. Sometimes a windows could go behind the omnipresent windows (messages, thread etc.) and never shown (as covered by the others). 2020-09-18 cage * src/program-events.lisp: - fixed indentation. 2020-09-18 cage * src/os-utils.lisp, src/ui-goodies.lisp: - lowered permanence of notification when updating timelines; - fixed managing of editor arguments. 2020-09-12 cage * po/it.po, po/tinmop.pot: - updated italian translation. 2020-09-12 cage * src/filesystem-utils.lisp, src/package.lisp, src/ui-goodies.lisp: - added exit handler to clean temporary files. 2020-09-12 cage * etc/shared.conf: - improved regular expressions for message coloring. 2020-09-12 cage * etc/shared.conf, src/gemini-viewer.lisp, src/gemini/gemini-parser.lisp, src/package.lisp, src/ui-goodies.lisp: - [gemini] ensure just a single gemini file is in rendering state at the same time; - [gemini] add a newline to data before parsing a gemini file only when needed (there is no one at the end); - commented and improved some regular expressions for coloring. 2020-09-11 cage * src/gemini-viewer.lisp: - [gemini] clear the streams window before redrawing when refreshing the window's contents. 2020-09-11 cage * etc/init.lisp, src/open-message-link-window.lisp, src/package.lisp, src/ui-goodies.lisp: - [gemini] feature added: start downloading a gemini file in background (i.e. without rendering on the window); - removed explicit package name 'specials' in ui-goodies.lisp. 2020-09-10 cage * po/it.po, po/tinmop.pot: - updated italian translation. 2020-09-10 cage * etc/default-theme.conf, src/chats-list-window.lisp: - fixed chat list windows items. 2020-09-10 cage * etc/init.lisp, src/api-pleroma.lisp, src/line-oriented-window.lisp, src/message-window.lisp, src/package.lisp, src/program-events.lisp, src/ui-goodies.lisp: - added feature create new chat; - fixed crash when selecting a chat with no messages. 2020-09-09 cage * etc/default-theme.conf, etc/init.lisp, src/chats-list-window.lisp, src/conversations-window.lisp, src/db.lisp, src/package.lisp, src/program-events.lisp, src/scheduled-events.lisp, src/software-configuration.lisp, src/ui-goodies.lisp, src/windows.lisp: - changed position and (configurable) colors for chat window; - added feature: change chat labels. 2020-09-07 cage * src/chats-list-window.lisp: - prevent printing of chat messages from ignored users. 2020-09-06 cage * po/it.po, po/tinmop.pot: - updated italian translation. 2020-09-06 cage * etc/init.lisp, src/db.lisp, src/open-message-link-window.lisp, src/package.lisp, src/ui-goodies.lisp: - added chat attachments browsing window. 2020-09-06 cage * etc/init.lisp, src/chats-list-window.lisp, src/keybindings.lisp, src/main.lisp, src/message-window.lisp, src/package.lisp, src/program-events.lisp, src/scheduled-events.lisp, src/ui-goodies.lisp: - basics chats works. 2020-09-06 cage * src/program-events.lisp, src/ui-goodies.lisp: - given focus to message window when a chat is opened; - scroll to end of chat when new message arrived. 2020-09-06 cage * po/it.po, po/tinmop.pot, src/api-pleroma.lisp, src/chats-list-window.lisp, src/complete.lisp, src/db.lisp, src/main.lisp, src/message-window.lisp, src/package.lisp, src/program-events.lisp, src/scheduled-events.lisp, src/ui-goodies.lisp, tinmop.asd: - posting on chats works; - fixed ordering in db:all-chat-messages (message-id was not a valid column name); - added scheduled events; - minor changes in labels. 2020-09-06 cage * src/api-client.lisp, src/api-pleroma-entities.lisp, src/api-pleroma.lisp, src/box.lisp, src/bs-tree.lisp, src/chats-list-window.lisp, src/command-line.lisp, src/command-window.lisp, src/complete-window.lisp, src/conditions.lisp, src/config.lisp.in, src/constants.lisp, src/conversations-window.lisp, src/crypto-utils.lisp, src/date-formatter.lisp, src/db-utils.lisp, src/db.lisp, src/emoji-shortcodes.lisp, src/filesystem-utils.lisp, src/follow-requests.lisp, src/gemini-viewer-metadata.lisp, src/gemini-viewer.lisp, src/gemini/client.lisp, src/gemini/gemini-constants.lisp, src/gemini/gemini-parser.lisp, src/gemini/package.lisp, src/hooks.lisp, src/html-utils.lisp, src/interfaces.lisp, src/keybindings-window.lisp, src/keybindings.lisp, src/line-oriented-window.lisp, src/main-window.lisp, src/main.lisp, src/message-rendering-utils.lisp, src/message-window.lisp, src/misc-utils.lisp, src/modeline-window.lisp, src/modules.lisp, src/mtree-utils.lisp, src/notify-window.lisp, src/num-utils.lisp, src/open-attach-window.lisp, src/open-message-link-window.lisp, src/os-utils.lisp, src/package.lisp, src/point-tracker.lisp, src/priority-queue.lisp, src/program-events.lisp, src/queue.lisp, src/rb-tree.lisp, src/resources-utils.lisp, src/sending-message.lisp, src/software-configuration.lisp, src/specials.lisp, src/stack.lisp, src/suggestions-window.lisp, src/tags-window.lisp, src/tests/all-tests.lisp, src/tests/box-tests.lisp, src/tests/gemini-parser-tests.lisp, src/tests/misc-tests.lisp, src/tests/mtree-tests.lisp, src/tests/numeric-tests.lisp, src/tests/package.lisp, src/tests/program-events-tests.lisp, src/tests/text-utils-tests.lisp, src/tests/thread-window-tests.lisp, src/text-utils.lisp, src/thread-window.lisp, src/tui-utils.lisp, src/ui-goodies.lisp, src/windows.lisp, src/x509-ffi.lisp, src/x509.lisp: - changed GPL comment headers. 2020-09-06 cage * src/message-window.lisp: - fixed vertical position of line mark in message window. 2020-09-06 cage * src/line-oriented-window.lisp, src/message-window.lisp: - fixed 'line-oriented-window:row-move' must return always a number (0), not nil, when no movement occurs; - fixed vertical scrolling boundaries of messages window. 2020-09-05 cage * po/it.po, src/api-pleroma.lisp, src/program-events.lisp, src/ui-goodies.lisp: - minor cleaning. 2020-09-05 cage * po/POTFILES.in, po/it.po, po/tinmop.pot: - updated italian translation. 2020-09-05 cage * etc/default-theme.conf, etc/init.lisp, etc/shared.conf, src/api-pleroma-entities.lisp, src/api-pleroma.lisp, src/chats-list-window.lisp, src/db.lisp, src/gemini-viewer.lisp, src/keybindings.lisp, src/main.lisp, src/package.lisp, src/program-events.lisp, src/software-configuration.lisp, src/specials.lisp, src/ui-goodies.lisp, tinmop.asd: - chats can be fetched, via UI, and printed on window. 2020-09-02 cage * src/api-pleroma.lisp, src/package.lisp: - [pleroma-API] added 'fetch-chat-message. 2020-09-02 cage * src/api-pleroma.lisp, src/db.lisp: - added tables for chats; - fixed some slot names for chat entities. 2020-09-02 cage * ChangeLog: - tracking changes. 2020-09-02 cage * src/api-pleroma.lisp, src/package.lisp: - [pleroma-API] added a few function to use chats. 2020-08-30 cage * configure, configure.ac, tinmop.asd: - increased version. 2020-08-30 cage * ChangeLog, NEWS.org: - tracking changes. 2020-08-30 cage * po/it.po, po/tinmop.pot: - updated italian translation. 2020-08-30 cage * etc/default-theme.conf, etc/init.lisp, etc/shared.conf, src/gemini-viewer-metadata.lisp, src/gemini-viewer.lisp, src/keybindings.lisp, src/package.lisp, src/program-events.lisp, src/software-configuration.lisp, src/specials.lisp, src/tui-utils.lisp, src/ui-goodies.lisp: - [gemini] added a window to manage all the gemini streams opened. 2020-08-29 cage * src/gemini-viewer.lisp: - [gemini] starting download thread in ':rendering' status. 2020-08-29 cage * configure, src/gemini-viewer-metadata.lisp, src/gemini-viewer.lisp, src/open-message-link-window.lisp, src/program-events.lisp, tinmop.asd: - [gemini] added slot 'status-stream'. This will allow to enqueue multiple documents download. 2020-08-28 * src/line-oriented-window.lisp * src/open-message-link-window.lisp * src/gemini-viewer.lisp * src/misc-utils.lisp - added vertical top padding for 'line-oriented-window'. This means also that the gemini links window will render the link name on top of the link uri. - [gemini] wrapped non gemini download thread. Also added a few of useful slots like temporary file path and number of bytes downloaded so far. 2020-08-27 * src/gemini-viewer.lisp * src/program-events.lisp - added 'gemini-stream' class. Starting wrapping streaming of gemini's data using hi level structures (this way we can associate a for each stream), this could be useful to let the user start or stop the stream or open the data downloaded so far. 2020-08-19 * .gitignore * Makefile.in * etc/init.lisp * src/db.lisp * src/gemini-viewer.lisp * src/gemini/client.lisp * src/gemini/gemini-parser.lisp * src/gemini/package.lisp * src/html-utils.lisp * src/line-oriented-window.lisp * src/message-window.lisp * src/misc-utils.lisp * src/package.lisp * src/program-events.lisp * src/ui-goodies.lisp * tinmop.asd - Added Makefile.in. - [gemini] allowed secret input; - tracking changes in croatoan some function in 'tui-utils' are just wrappers for the equivalents in the library; - added more docstrings; - use new i18n feature form unix-opt to localize program's usage messages. 2020-07-26 - [gemini] the parser has been modified to renders (in a separate thread) the contents of a gemini file parsed so far without waiting for the whole document to be read from the socket. This feature should prevent blocking the client when the server never close the socket (i.e. for streamed contents). - [gemini] added the possibility to abort current page download. 2020-07-17 * src/program-events.lisp - prevented a crash if an invalid regular expression is used when searching in a message window. 2020-07-15 * etc/init.lisp * po/it.po * po/tinmop.pot * src/gemini-viewer.lisp * src/gemini-viewer.lisp * src/gemini/client.lisp * src/gemini/gemini-parser.lisp * src/gemini/package.lisp * src/package.lisp * src/ui-goodies.lisp - [gemini] parse link even if link name is empty sometimes you can met a link like: =>URI even if this is, in my opinion, a malformed link (there should be a text -the link name- after the space) parse anyway as if the link name exists and is empty; - [gemini] added the option to view gemini page's source. - [gemini] fixed bug that prevented rendering of levels 3 headers; - [gemini] fixed information string; - updated italian translation. 2020-07-13 * etc/shared.conf * src/message-rendering-utils.lisp * src/message-window.lisp - fixed regex for percent numbering; - formatted as floating points votes percentage in polls. 2020-07-08 * etc/default-theme.conf * etc/shared.conf * src/command-line.lisp * src/gemini/client.lisp * src/gemini/gemini-parser.lisp * src/gemini/package.lisp * src/main.lisp * src/package.lisp * src/software-configuration.lisp * tinmop.asd - [gemini] made some elements of page rendering customizable using 'gemini-page-theme' class some elements of the rendered page (header prefix, bullet and so on) can be customized. users can use configuration files directive to change the appearance of said elements (both character and color or font variants); - removed unused argument from command line switch: '-m'. 2020-07-06 * src/notify-window.lisp * src/program-events.lisp * src/ui-goodies.lisp - correctly enqueued multiple "update timeline" commands. 2020-07-04 * po/it.po * po/tinmop.pot * quick_quicklisp.sh.in * src/gemini-viewer.lisp * src/gemini/client.lisp * src/gemini/gemini-parser.lisp * src/misc-utils.lisp * src/package.lisp * src/tui-utils.lisp * src/ui-goodies.lisp * tinmop.asd - [gemini] - using quri instead of puri library because the first has a better handling of UTF-8; - using binary stream instead of ASCII. 2020-07-02 * src/gemini/gemini-parser.lisp * src/message-rendering-utils.lisp * src/ui-goodies.lisp - prevented crash when 'original-path' is nil; - fix expanding of message threads: expands reblogged toots if exists; - added some vertical space before rendering poll. 2020-06-29 * etc/next-previous-open.lisp * po/it.po * po/tinmop.pot * src/gemini-viewer.lisp - changed key for 'delete-and-move-next' command. - updated italian translation. - [gemini viewer] fixed history navigation. 2020-06-28 * etc/init.lisp * src/gemini-viewer.lisp * src/main.lisp * src/message-window.lisp * src/package.lisp * src/program-events.lisp * src/ui-goodies.lisp - [gemini browser] added a 'go-back' command. - made the program asks for redirects following only when the event queue is empty; - added 'gemini-request-event'; - gave focus back to message window when closing link window in gemini mode. - fixed bug that prevented to properly reset links list when in gemini mode; - added command 'open-gemini-address'; - minor refactoring. 2020-06-27 * etc/init.lisp * src/db.lisp * src/hooks.lisp * src/program-events.lisp - added more parameters for each function that could be added to `*skip-message-hook*'; - changed unique constrains for TOFU table. 2020-06-23 * LICENSES.org * doc/man.org * doc/tinmop.man * etc/init.lisp * po/it.po * po/tinmop.pot * src/command-line.lisp * src/constants.lisp * src/db.lisp * src/filesystem-utils.lisp * src/gemini-viewer.lisp * src/gemini/client.lisp * src/gemini/package.lisp * src/main.lisp * src/package.lisp * src/ui-goodies.lisp - changed function name: 'temporary-filename' to 'temporary-file'; - allowed the user to bypass TOFU exception; - fixed TOFU check; - used 'notify' instead of error message; - added a command line option to retrieve a gemini URL. 2020-06-22 * LICENSES.org * README.org * README.txt * doc/man.org * doc/tinmop.man * etc/init.lisp * etc/shared.conf * po/POTFILES.in * po/it.po * po/tinmop.pot * quick_quicklisp.sh.in * src/db.lisp * src/filesystem-utils.lisp * src/gemini-viewer.lisp * src/gemini/client.lisp * src/gemini/gemini-constants.lisp * src/gemini/gemini-parser.lisp * src/gemini/package.lisp * src/keybindings.lisp * src/line-oriented-window.lisp * src/message-window.lisp * src/open-message-link-window.lisp * src/package.lisp * src/stack.lisp * src/tests/gemini-parser-tests.lisp * src/tests/package.lisp * src/text-utils.lisp * src/ui-goodies.lisp * src/x509-ffi.lisp * src/x509.lisp * tinmop.asd - gemini client works, but missing client authorization using certificates (codes 6x); - TOFU works someway but appears to me it is an ugly hack. 2020-06-14 * LICENSES.org * etc/init.lisp * src/complete.lisp * src/package.lisp * src/text-utils.lisp - prevented crash that happened when using an invalid regular expression to complete input. There was no reason to use regular expression there but valid reasons to not use them. ;) 2020-06-13 cage * src/db.lisp * src/notify-window.lisp * src/package.lisp * src/program-events.lisp - prevent adding duplicate entries in +table-pagination-status+ This could happened when concurrent fetching messages command was launched from the user. - preventing writing a notification window that completed his life cycle. 'notify-window:draw-pending' checks if 'life' slot is a positive number before drawing, without the check drawing on a ncurses window pointer pointing to invalid memory was possible. 2020-06-12 cage * etc/default-theme.conf * src/api-client.lisp * src/command-line.lisp * src/mtree-utils.lisp * src/package.lisp * src/software-configuration.lisp * src/thread-window.lisp * src/tui-utils.lisp * src/ui-goodies.lisp - do not climb the thread (probably could be changed by a command line switch in the future) when fetching messages; - configurable color for root of rendered trees; - made expanding thread command non blocking. 2020-06-11 cage * etc/shared.conf * src/api-client.lisp * src/db.lisp * src/package.lisp * src/program-events.lisp * src/software-configuration.lisp * src/ui-goodies.lisp - fixed skipping of ignored users When a set of downloaded statuses contains one or more status from an ignored user restarts the download process again starting from the last (or first, if going backward) downloaded status (ordered by ID). This way we could skip over a bunch of ignored status. The number of download restarting iteration is limited to 3 - added a configuration directive to ignore usernames that match a regular exception. 2020-06-07 cage * configure * src/ui-goodies.lisp * src/api-client.lisp * src/api-pleroma.lisp * src/db.lisp * src/message-rendering-utils.lisp * src/package.lisp * src/text-utils.lisp * tinmop.asd - remove duplicated urls in messages that are a reblog; - fixed swapped docstrings; - updated configure. - moved pleroma specific API to i package :api-pleroma; - renamed function: 'text-utils:left-padding-suffix' to 'text-utils:left-padding-prefix'; - rendered the choice index for poll's choices; - shown if a poll allows multiple choices; - printed an error to the user when trying to vote for a message that does not contains a poll. 2020-05-31 cage * etc/init.lisp * src/api-client.lisp * src/program-events.lisp * src/ui-goodies.lisp * etc/default-theme.conf * etc/shared.conf * po/it.po * po/tinmop.pot * src/db.lisp * src/message-rendering-utils.lisp * src/package.lisp * src/software-configuration.lisp * src/thread-window.lisp - [breaking changes] Added polls. To allow this feature two new tables "poll" and "poll-options" has been added to database schema. 2020-05-30 cage * etc/init.lisp * src/api-client.lisp * src/command-line.lisp * src/complete.lisp * src/db.lisp * src/main.lisp * src/package.lisp * src/program-events.lisp * src/thread-window.lisp * src/tui-utils.lisp * src/ui-goodies.lisp * tinmop.asd - [breaking changes] changed table for attachments; - fixed bug that prevented statuses missing attachments when the status was reblogged. - added optional notification of statuses mentioning the user; - protected reblogged timeline from accidental deletion; - added the possibility to force expanding of a message tree; - rearranged compilation order to prevent warning about command line switch; - rearranged order of packages. 2020-05-20 cage * quick_quicklisp.sh.in - removed useless switch. 2020-05-19 cage * src/db.lisp (renumber-timeline-message-index) * src/command-line.lisp (gen-opts) * etc/shared.conf - fixed renumbering of 'message-index' of status The old procedure did not took into account the 'folder' and 'timeline' columns making possible to overwrite index of a copy of the same message placed in different folder. This bug made the program crash; - fixed command line long option; - fixed wrong name of a variable in a configuration file. 2020-05-18 cage * doc/man.org * doc/tinmop.man * po/it.po * po/tinmop.pot * src/command-line.lisp * src/main.lisp * src/package.lisp - added the reset of timeline pagination from command line. 2020-05-17 cage * src/open-message-link-window.lisp * src/text-utils.lisp - added a class to represent a window with the links that a message contains The links are collected by the new function text-utils:collect-links applied on the rendered text of a status. 2020-05-15 cage - initial release