2021-07-25 cage * src/complete.lisp, * src/constants.lisp, * src/gemini-viewer.lisp, * src/gemini-viewer.lisp, * src/main-window.lisp, * ChangeLog, * etc/shared.conf, * src/command-window.lisp, * src/software-configuration.lisp: - suppressed printing of three notes; - [gemini] added "no wait" directive when downloading non gemini text format from gemini: allow opening file before it is downloaded completely; - revert to old completion method for non URI; - added type declaration to remove optimization note; - updated Changelog. 2021-07-23 cage * src/command-window.lisp, * src/complete-window.lisp, * src/complete.lisp, * src/conditions.lisp, * src/gemini/client.lisp, * src/package.lisp, * src/text-utils.lisp: - implemented cut line from point (using "^K") in command window; - fixed typo; - [gemini] added moving selected uri from suggestion window using Tab key; - resetted selected item position when a 'suggestion-window' is shown; - changed the way the input is completed, complete with current selected item in suggestion window; - [gemini] used fuzzy matching when looking for URI in history. 2021-07-22 cage * etc/default-theme.conf, * etc/default-theme.conf, * etc/init.lisp, * etc/init.lisp, * src/command-window.lisp, * src/complete-window.lisp, * src/complete-window.lisp, * src/complete.lisp, * src/message-window.lisp, * src/package.lisp, * src/software-configuration.lisp, * src/tests/text-utils-tests.lisp, * src/text-utils.lisp, * src/tui-utils.lisp: - removed empty lines in sources; - [gemini] changed streaming animation; - [gemini] allowed open gemini links from gemlog subscription window; - highlighted a bit more matched characters in 'suggestion-window'; - fixed padding when fitting suggestions into 'suggestion-win'. - allowed selecting a suggestion from suggestion-window; - highlighted matching characters in suggestion window. 2021-07-17 cage * etc/default-theme.conf, * etc/shared.conf, * modules/rewrite-message-urls.lisp, * src/gemini/client.lisp, * src/gemini/gemini-parser.lisp, * src/gemini/package.lisp, * src/message-window.lisp, * src/package.lisp, * src/software-configuration.lisp, * src/tui-utils.lisp: - [gemini] removed link prefix for link labels that starts with an emoji; - [gemini] removed splitting of long link labels; - fixed output stream of 'print-debug'. 2021-07-16 cage * src/db.lisp, * src/emoji-matcher.lisp, * src/gemini/client.lisp, * src/gemini/gemini-parser.lisp, * src/gemini/package.lisp, * src/package.lisp: - [gemini fixed validity check for client certificate (thanks op!); - removed link prefix if link line starts with an emoji. 2021-07-15 cage * etc/init.lisp, * src/emoji-matcher.lisp, * src/gemini-viewer.lisp, * src/package.lisp, * src/program-events.lisp, * LICENSES.org; - [gemini] fixed missing rendering of search query results. - made clear source and license of the emojis; - fixed docstring (thanks op!); - prevented a crash when refresh of chats hits a network error. - added 'emojip'. - added 'starts-with-emoji-p'. - renamed 'starts-with-emoji-p' to 'starting-emoji'. 2021-07-14 cage * etc/default-theme.conf, * src/9p-client/client.lisp, * src/message-window.lisp, * src/package.lisp, * src/program-events.lisp, * src/software-configuration.lisp: - [gemini] added a visual hint while a gemini page is streaming contents; - [9p] changed default for opening to 'read'; - [9p] added an example using 'stat'. 2021-07-10 cage * src/program-events.lisp, * src/windows.lisp, * quick_quicklisp.sh.in, * src/9p-client/client.lisp: - changed croatoan's 'window-position' to 'widget-position'; - updated version of croatoan known to works with tinmop in building script; - [9p] added 'open-path' and 'slurp-file'. 2021-06-26 cage * src/9p-client/conditions.lisp, * src/9p-client/package.lisp, * src/program-events.lisp, * tinmop.asd, * src/9p-client/client.lisp, * src/9p-client/message-types.lisp, * src/api-client.lisp: - implemented a minimal 9p client. 2021-07-09 cage * src/program-events.lisp, * etc/init.lisp, * src/gemini-viewer.lisp: - used TAB to move to next unread message; - remvod the BOM from a gemini text stream. 2021-07-06 cage * quick_quicklisp.sh.in: - pinned the commit of croatoan. 2021-07-05 cage * README.org, * README.txt: - updated README.org (new building instructions). 2021-07-05 cage * README.org, * README.txt, * configure, * configure.ac, * Makefile.in, * quick_quicklisp.sh.in: - updated building script to fetch croatoan from git. 2021-07-03 cage * src/command-window.lisp, * src/db-utils.lisp, * src/main.lisp, * src/ui-goodies.lisp, * etc/default-theme.conf, * src/constants.lisp, * src/package.lisp: - added a welcome window. 2021-06-29 cage * NEWS.org: * configure.ac, * tinmop.asd, * configure, - updated building scripts. - mentioned changelog in NEWS file. 2021-06-28 cage * src/gemini/gemini-parser.lisp, * src/message-window.lisp: -[gemini] removed preformatted line truncate; - [gemini] colored the alt text as the preformatted line (when shown). 2021-06-27 cage * src/message-window.lisp: - do not show marks for empty lines. 2021-06-27 cage * etc/default-theme.conf, * src/message-window.lisp, * src/package.lisp, * src/software-configuration.lisp: - marked that there is content on the left in message window when scrolling horizontally. 2021-06-27 cage * src/program-events.lisp: - [gemini] forced redraw of the window when rendering a new gemini stream. 2021-06-27 cage * etc/init.lisp, * src/message-window.lisp, * src/package.lisp, * src/ui-goodies.lisp: - truncated long lines in message window and allowed horizontal scrolling. 2021-06-25 cage * src/program-events.lisp: - fixed find-user-id-from-exact-acct, was returning a wrong user id. 2021-06-20 cage * src/program-events.lisp: - [gemini] prevented repainting of the message-window if not needed when streaming gemini text from the net. 2021-06-18 cage * src/gemini-viewer.lisp: * src/gemini/subscription.lisp: - [gemini] ensured the certificate is sent when performing a request; - [gemini] prevented crash when a gemlog changed certificate and post's list is refreshed. 2021-06-17 cage * po/Makevars, * po/it.po, * po/tinmop.pot: * src/scheduled-events.lisp, * src/text-utils.lisp, * src/tui-utils.lisp, * src/ui-goodies.lisp, * src/gemini-viewer.lisp, * src/open-message-link-window.lisp, * src/package.lisp, * src/program-events.lisp: * src/windows.lisp: * src/gemini-page-toc.lisp: - prevented crash when closing program while a gemini page is rendering. - updated Italian translation. - changed three dots with ellipsis. - [gemini] ensured we have not to wait a stream is completed before opening a new one. - ensured windows are cleared when terminal is resized. - rearrange TOC window on resize. - increased priority for message window text searching event. 2021-06-16 cage * etc/shared.conf, * src/line-oriented-window.lisp, * src/message-window.lisp, * src/open-message-link-window.lisp, * src/package.lisp, * src/package.lisp, * src/ui-goodies.lisp, * etc/init.lisp: - [gemini] allowed scrolling of a gemini page when focus is on the TOC. - fixed regression: searching in the message window does not get stuck at the first occurrence. - shadowed 'split-lines' from croatoan. - fixed regex for opening some files with tinmop (example: Open a gemini file with tinmop only if a local file or served trough gemini protocol. 2021-06-13 cage * etc/init.lisp, * src/api-client.lisp, * src/db.lisp, * src/package.lisp, * src/program-events.lisp, * src/ui-goodies.lisp: - added feature: expand tree of posts fetching again even posts that was deleted before; - [gemini] allowed save in tour the selected link. - [gemini] changed TOC callback: jump to page's section when selecting TOC entry. 2021-06-12 cage * src/line-oriented-window.lisp, * src/ui-goodies.lisp: - fixed selected-row-delete - redraw following request window when an entry is deleted. 2021-06-09 cage * quick_quicklisp.sh.in: - fixed quick_quicklisp template file, was missing awk. 2021-06-05 cage * src/line-oriented-window.lisp: - fixed a regression that made the program crash when adding an attachment to a post. 2021-05-30 cage * etc/default-theme.conf, * src/mtree-utils.lisp: - improved appearance of keybindigs tree. 2021-05-29 cage * src/ui-goodies.lisp: - wrapped call to external editor to catch errors and print a message. 2021-05-28 Omar Polo * src/os-utils.lisp, * src/software-configuration.lisp: - looking for values of environment variables EDITOR and VISUAL if the user did not specified an editor in the config file. If both variables are empty use "ed". 2021-05-23 cage * etc/init.lisp: - [gemini] reverted tour mode keys to old ones "t t" -> "t" there is usually no needs for explicitly open a TOC gemini window as it is opened automatically when the gemini stream is completed. 2021-05-22 cage, Omar Polo * AUTHORS, * po/it.po, * po/tinmop.pot, * po/tinmop.pot, * src/api-client.lisp, * src/db.lisp, * src/main-window.lisp, * src/package.lisp, * src/program-events.lisp, * src/thread-window.lisp, * etc/default-theme.conf, * src/notify-window.lisp, * src/package.lisp, * src/software-configuration.lisp, * src/thread-window.lisp: - made geometry of notification window customizable (via configuration file). - made some stylistic changes to client's (pleroma) authorization procedures. - added AUTHORS file. - [pleroma client authentication] (Omar Polo) - don't unnecessarily bind *output-stream* (o.p.) - reply to the HTTP client before closing the connection - always close the client socket -updated Italian translation (cage, Omar Polo) - added mentions rendering in the thread window modeline. - decrease mentions count on the modeline when a status that contains a mention is opened. 2021-05-18 cage * src/gemini-viewer.lisp: - [gemini] ensured cached text file are opened with tinmop or user defined programs. - [gemini] refresh TOC when rendering a cached gemini file. 2021-05-17 cage * src/gemini-page-toc.lisp, * src/program-events.lisp: * src/open-message-link-window.lisp: * src/gemini-viewer.lisp, * src/open-message-link-window.lisp, * src/program-events.lisp: - [gemini] prevented moving focus to message window when opening a link. - [gemini] recycled TOC window between gemini pages. - [gemini] fixed regression opening gemini link is possible again; - prevented hiding of notifications by the gemini TOC window. 2021-05-16 cage * etc/init.lisp, * src/gemini-page-toc.lisp, * src/gemini-page-toc.lisp, * src/gemini-viewer.lisp, * src/gemini/gemini-parser.lisp, * src/gemini/gemini-parser.lisp, * src/keybindings.lisp, * src/line-oriented-window.lisp, * src/message-window.lisp, * src/message-window.lisp, * src/open-message-link-window.lisp, * src/package.lisp, * src/program-events.lisp, * src/software-configuration.lisp, * src/ui-goodies.lisp, * src/ui-goodies.lisp, * tinmop.asd, * etc/default-theme.conf, * src/gemini-viewer.lisp, * src/gemini-viewer.lisp, * src/gemini-viewer.lisp, * src/gemini/package.lisp, * src/gemini/package.lisp, * src/main-window.lisp, * src/program-events.lisp, * src/program-events.lisp, * src/specials.lisp: - added a generated TOC for gemini files. - [gemini] fixed regression opening gemini link is possible again; - prevented hiding of notifications by the gemini TOC window. - [gemini] removed removing of text from TOC entry. - [gemini] fixed row moving in TOC window. - [gemini] ensured TOC is rendered only for rendering stream. - [gemini] fixed parser, made many parser state variables from function local to thread local; - fixed 'line-oriented-widget:append-new-rows'; uses slots instead of accessors as, for example, message window skips invisible lines when specialized (on message-window) method 'rows' is called. 2021-05-15 cage * src/program-events.lisp: - prevented rendering gemini files in the message window when a toot is shown. 2021-05-14 cage * src/gemini/client.lisp, * src/gemini/subscription.lisp: - [gemini] fixed parsing of gemlog pages. Subtitle was never recognized even if actually present. 2021-05-13 cage * modules/rewrite-message-urls.lisp, * src/line-oriented-window.lisp, * src/message-window.lisp, * src/misc-utils.lisp, * src/open-message-link-window.lisp, * src/package.lisp, * src/program-events.lisp, * src/ui-goodies.lisp: - got rid of 'prepare-new-search' and 'cleanup-after-search'; - fixed misc:safe-subseq (subseq sequence -1)' does not signals an error anymore. 2021-05-09 cage * etc/shared.conf, * src/gemini/gemini-parser.lisp: - [gemini] fixed parsing of quoted lines, an empty line can be part of the quote. 2021-05-09 cage * src/main.lisp, * src/os-utils.lisp: - wrapped sb-ext:run-program; - do not load configuration files if cli options '-h' or '-v' are used. 2021-05-06 cage * src/program-events.lisp: - performed a cleanup of searching even if the search string is empty or is not a valid regular expression. 2021-05-06 cage * src/package.lisp, * src/program-events.lisp: - [gemini] expand tilde when trying to open a local file or directory. 2021-05-04 cage * src/tour-mode-parser.lisp, * src/ui-goodies.lisp, * src/package.lisp, * tinmop.asd: - [gemini] improved tour-mode the command accepts space separated list of link index or link ranges (e.g: "5-7 1 2"). 2021-05-02 cage * README.org, * README.txt, * etc/init.lisp, * po/it.po, * po/tinmop.pot, * src/message-window.lisp, * src/ui-goodies.lisp, * src/line-oriented-window.lisp, * src/package.lisp: - prevented out of bound condition when scrolling message-window's contents. When user switched from a page to another shorter the scrolling position was not restored, pointing outside the actual text line counts. This prevent the correct rendering of the page (a blank page is shown instead) and crash the software if scrolling up. Thanks op! - [gemini] fixed order of links when showing tour-mode's queue (thanks op!). - [gemini] changed gemini search site. - updated italian translation. - improved docstring for tour-mode. - [gemini] improved tour-mode, allow collect links by regex not only by indices. 2021-05-01 cage * src/open-message-link-window.lisp, * src/package.lisp, * src/ui-goodies.lisp, * etc/init.lisp, * etc/init.lisp, * src/package.lisp, * src/ui-goodies.lisp: - added a command to show the tour's queue. - removed hardcoded list of windows that loose focus when focus is changed. - added tour mode to explore geminispace. 2021-04-28 cage * doc/man.org, * doc/tinmop.man, * src/filesystem-utils.lisp, * src/gemini-viewer.lisp, * src/open-attach-window.lisp, * src/package.lisp, * src/program-events.lisp, * src/stack.lisp, * src/ui-goodies.lisp, * src/windows.lisp, * etc/init.lisp, * src/gemini-viewer-metadata.lisp, * src/package.lisp: -[gemini] removed loop when going back in history. when follownig a redirect both the original (the redirect) and the actual URI was saved in the history. So if an user, after followed a redirect, tried to go back would reach the same redirect, this generated a loop; - updating documentation (mentioning navigation keys); - implemented a new method to move focus between windows (using 'M-arrowkeys'). 2021-04-27 cage * src/filesystem-utils.lisp, * src/open-attach-window.lisp: - fixed procedures that extract extension from a local path or an URI. 2021-04-26 cage * src/gemini/gemini-parser.lisp: - fixed 'make-gemini-iri', was crashing the program when 'port' argument was null. 2021-04-25 cage * Makefile.am, * Makefile.in, * po/POTFILES.in, * po/it.po, * po/tinmop.pot, * src/program-events.lisp, * src/text-utils.lisp: - updated italian translation. - fixed text-utils:percent-encoded-p, an empty string is not percent-encoded; - raised a better error when an empty string is entered as a gemini address; - instructed Makefile to recompile the package if a source is modified; - updated italian translation. 2021-04-24 cage * src/gemini/gemini-parser.lisp: - [gemini] omitted default port when building URI. 2021-04-23 cage * src/filesystem-utils.lisp: - used 'mkstemps' intead of 'mkstemp' as the latter does not supports suffix and the temporary keeps the same names. 2021-04-21 cage * modules/rewrite-message-urls.lisp, * src/message-window.lisp, * src/package.lisp: - optimized module 'rewrite-message-urls.lisp'. - fixed end position for 'visible-rows' 2021-04-20 cage * src/message-window.lisp: - fixed rendering of text: all text is now rearranged to fit the window. 2021-04-16 cage * src/gemini/gemini-parser.lisp, * src/iri-parser.lisp, * src/package.lisp, * src/tests/iri-tests.lisp, * src/text-utils.lisp, * src/gemini/client.lisp: - quote meta characters when matching for RE, searching for a common prefix from a bag of strings. - [gemini] allowed to connect to host using IP address instead of hostname; - fixed 'make-gemini-iri', was building wrong IRI with IP6 address as host; - trimmed square brackets from IP literal when parsing an IRI; - [gemini] prevented trimming of preformatted gemtext line. 2021-04-13 cage * src/gemini/gemini-parser.lisp, * src/gemini/package.lisp, * src/message-window.lisp, * src/package.lisp, * src/tui-utils.lisp, * LICENSES.org, * src/follow-requests.lisp, * src/text-utils.lisp, - added 'remove-corrupting-utf8-chars' to clean up rendered text from trouble characters. -[gemtext] added metadata for list, header lines and link lines; - fixed processing of follow requests. 2021-04-11 cage * modules/rewrite-message-urls.lisp, * src/line-oriented-window.lisp, * src/message-window.lisp, * src/package.lisp, * src/ui-goodies.lisp, * etc/init.lisp, * src/gemini/gemini-parser.lisp, * src/message-window.lisp: - [gemini] added feature to toggle preformatted block on/off; - [gemini] trimmed alt-text; - reworded some functions; - specialized message-window' to skip invisible rows. 2021-04-10 cage * modules/rewrite-message-urls.lisp, * src/gemini-viewer.lisp, * src/gemini/package.lisp, * src/line-oriented-window.lisp, * src/open-attach-window.lisp, * src/package.lisp, * src/program-events.lisp, * src/software-configuration.lisp, * src/thread-window.lisp, * src/tui-utils.lisp, * modules/rewrite-message-urls.lisp, * src/gemini-viewer.lisp, * src/gemini/gemini-parser.lisp, * src/hooks.lisp, * src/main.lisp, * src/message-window.lisp, * src/text-utils.lisp, * src/ui-goodies.lisp: - exit from the program, without launching the debugger, when the configuration module was not found but notify a warning, instead, if the module was not essential (like when loaded from the command line using switch "-M"); - load a module even if loading an URL has been requested from the command line; - [gemini] ensured tail call when downloading a non-text file; - fixed RE in 'open-attach-window:get-extension'; - fixed bug that prevented to open an attachment from cached file. - rewritten rendering of text in message window i got rid of slot support-text in message-window, so that class does not maintain a state. - changed behaviour of split-line (split-line (format nil "~2%")) ; => ("" "") That is an empty line is returned as empty string and not skipped Thanks to people from IRC and cl-ppcre maintainer for help! - [breaking changes] changed 'hooks:*before-prepare-for-rendering-message* with 'hooks:*before-rendering-message-text*. 021-04-08 cage * src/conversations-window.lisp, * src/gemini-subscription-window.lisp, * src/gemini-viewer.lisp, * src/gemini/package.lisp, * src/message-rendering-utils.lisp, * src/open-attach-window.lisp, * src/package.lisp, * src/sending-message.lisp, * src/thread-window.lisp, * src/ui-goodies.lisp, * src/chats-list-window.lisp, * src/follow-requests.lisp, * src/gemini-client-certificates-window.lisp, * src/gemini/gemini-parser.lisp, * src/line-oriented-window.lisp, * src/message-window.lisp, * src/open-message-link-window.lisp, * src/program-events.lisp, * src/tags-window.lisp, - [gemini] tag preformatted text lines with metadata (group-id and alt text). - discouraged use of slot 'rows' for 'row-oriented-widget', used API instead. 2021-04-07 cage * src/program-events.lisp: - [gemini] removed unused arg from 'refresh-gemini-message-window'. 2021-04-06 cage * src/line-oriented-window.lisp, * src/message-window.lisp, * src/open-message-link-window.lisp, * src/package.lisp, * src/program-events.lisp, * src/ui-goodies.lisp: - fixed searching in links or gemini pages: searching starts from the first row. - fixed search in message window. If more than one occurrence of the matched string was present (in the same line) drawing the last will overwrite the others. 2021-04-05 cage * etc/default-theme.conf, * modules/rewrite-message-urls.lisp, * src/gemini/client.lisp, * src/gemini/gemini-parser.lisp, * src/gemini/gemini-parser.lisp, * src/gemini/package.lisp, * src/gemini-viewer.lisp, * src/line-oriented-window.lisp, * src/message-window.lisp, * src/message-window.lisp, * src/misc-utils.lisp, * src/package.lisp, * src/program-events.lisp, * src/program-events.lisp, * src/software-configuration.lisp, * src/thread-window.lisp, * src/tui-utils.lisp, * src/ui-goodies.lisp: - fixed search in message-window; - there was a lot of problems related to type of an element of 'rows', they must be always a complex string - moreover there was an incorrect positioning of the matching string when character with column width >1 was present before the string compatible with the regex; - changed 'source-text' to 'support-text'. - removed debug message. - fixed and simplified 'refresh-gemini-message-window', was always appending contents. - [gemini] fixed gemini text parser. - [gemini] fixed rendering of quoted lines; - [gemini] do not set, always append, source text when refreshing a gemini window. - [gemini] started coloring preformatted block. 2021-04-03 cage * src/complete.lisp, * src/gemini/client.lisp, * src/gemini/gemini-parser.lisp, * src/gemini-viewer.lisp, * src/main.lisp, * src/message-window.lisp, * src/open-message-link-window.lisp, * src/package.lisp, * src/program-events.lisp, * src/program-events.lisp, * src/ui-goodies.lisp: - [gemini] improved rendering of quoted text. - [gemini] percent encoded paths when exploring local file systems. - fixed crash when 'contains-clsr' is called This function called cl-ppcre:create-scanner but if the argument to this function can not be interpreted as a valid regex (e.g "["), an error was signalled. - [gemini] fixed bug that prevented a page to be reloaded; - [gemini] use cache, if possible, when opening a gemini url. 2021-04-01 cage * src/filesystem-utils.lisp, * src/iri-parser.lisp, * src/tests/iri-tests.lisp, * src/tests/uri-tests.lisp, * src/uri-parser.lisp: * etc/shared.conf, * src/filesystem-utils.lisp, * src/gemini-viewer.lisp, * src/gemini/client.lisp, * src/gemini/gemini-parser.lisp, * src/gemini/package.lisp: - fixed, again fs:dirp; - fixed iri parser (parses correctly IRI like mailto:...). - moved to an internal wrapping of 'mkstemp' to allow extensions in filename; - [gemini] rendering all stream with MIME type "text/*" with this program. 2021-03-28 cage * etc/default-theme.conf: * src/filesystem-utils.lisp, * src/open-message-link-window.lisp, * src/os-utils.lisp, * src/package.lisp, * src/program-events.lisp, * src/program-events.lisp, * src/tests/uri-tests.lisp, * etc/shared.conf, * src/open-attach-window.lisp, * src/software-configuration.lisp, * src/uri-parser.lisp, - [gemini] allowed exploring directory using relative path; - [gemini] allowed opening a file using tinmop itself (example: opening a gemini text file); - added a more hi-level function to open a file with an external program. - this function takes into account the file that should be opened with tinmop and uses 'xdg-open' as fallback if the user did not specified an association program file-type. - fixed 'uri:normalize-path'; - [gemini] cleaned paths when exploring local tree; - changed link color when printed in link windows; - cleaned a bit reults of 'prepend-pwd'. 2021-03-27 * src/filesystem-utils.lisp, * src/gemini/client.lisp, * src/gemini/package.lisp, * src/iri-parser.lisp, * src/main.lisp, * src/open-message-link-window.lisp, * src/package.lisp, * src/package.lisp, * src/uri-parser.lisp, * src/gemini-viewer.lisp, * src/gemini-viewer.lisp, * src/gemini/gemini-parser.lisp, * src/html-utils.lisp, * src/open-message-link-window.lisp, * src/program-events.lisp, * src/ui-goodies.lisp: - [gemini] added feature: loading local gemini folders or files from command line (switch: '-o') or using TUI; - used 'load-gemini-url', when possible, to avoid duplication. 2021-03-14 cage * src/api-pleroma.lisp, * src/main.lisp: - fixed chat API; - fixed regression, loading scripts works again. 2021-03-13 cage * src/api-pleroma.lisp: * src/db.lisp: - used version 2 for get chats; - changed the way a message is deleted: when deleting a reblogging message delete the reblogged message as well. This way quit should be faster as the folder ".reblogged" can not grows without limit anymore; - made explicit the folder for parent (reblogged) messages; - fixed docstring. 2021-03-09 cage * README.txt, * configure, * etc/init.lisp, * po/it.po, * po/tinmop.pot, * src/gemini-viewer.lisp, * src/message-window.lisp, * src/program-events.lisp, * src/software-configuration.lisp, * NEWS.org, * README.org, * src/package.lisp: - fixed typos in NEWS.org; - reverted method of rendering of text in message window to a line-based one. The old method that packed text got from Gemini stream in single event was ugly and blocked the UI. This version revert to a line by line rendering but it is optimized and does not gets slow with the size of the text the window holds; - added command for sending to pipe contents of message windows; - made nicer the error message when a directive is missing from configuration file; - updated README (new installation instruction and mentioning openssl); - updated translations files; - updated configure (new version number). 2021-03-03 cage * configure.ac, * tinmop.asd, * NEWS.org: - updated version number and NEWS file. 2021-02-27 cage * configure: * Makefile.in, - 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 * src/gemini-viewer.lisp, * src/package.lisp, * etc/shared.conf, * 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