1
0
mirror of https://codeberg.org/cage/tinmop/ synced 2025-03-04 10:07:38 +01:00

Compare commits

...

3 Commits

Author SHA1 Message Date
cage
00cfe36e90 - prevented crash in dialog list window, the event object needed to be decodified. 2022-01-02 17:47:30 +01:00
cage
1f587b6f17 Merge branch 'kami' 2022-01-02 16:53:58 +01:00
cage
c9d99addad - prepared code for kamid. 2022-01-02 16:52:23 +01:00
8 changed files with 47 additions and 97 deletions

View File

@ -1,32 +0,0 @@
(in-package :9p-client)
(define-condition 9p-error (error)
((error-value
:initarg :error-value
:reader error-value)
(message-type
:initarg :message-type
:reader message-type)
(tag
:initarg :tag
:reader tag))
(:report (lambda (condition stream)
(format stream
"message-type ~a tag ~a: ~a"
(message-type condition)
(tag condition)
(error-value condition))))
(:documentation "Error for 9p protocol"))
(define-condition 9p-initialization-error (error)
((tag
:initarg :tag
:reader tag)
(rtag
:initarg :rtag
:reader rtag))
(:report (lambda (condition stream)
(format stream "error initialization tag sent ~a, got ~a instead"
(tag condition) (rtag condition))))
(:documentation "Error for 9p protocol"))

View File

@ -1,53 +0,0 @@
(in-package :9p-client)
(defparameter *tversion* 100)
(defparameter *rversion* 101)
(defparameter *tauth* 102)
(defparameter *rauth* 103)
(defparameter *tattach* 104)
(defparameter *rattach* 105)
(defparameter *terror* 106) ; there is no terror
(defparameter *rerror* 107)
(defparameter *tflush* 108)
(defparameter *rflush* 108)
(defparameter *twalk* 110)
(defparameter *rwalk* 109)
(defparameter *topen* 112)
(defparameter *ropen* 113)
(defparameter *tcreate* 114)
(defparameter *rcreate* 115)
(defparameter *tread* 116)
(defparameter *rread* 117)
(defparameter *twrite* 118)
(defparameter *rwrite* 119)
(defparameter *tclunk* 120)
(defparameter *rclunk* 121)
(defparameter *tremove* 122)
(defparameter *rremove* 123)
(defparameter *tstat* 124)
(defparameter *rstat* 125)

1
src/kami/client.lisp Normal file
View File

@ -0,0 +1 @@
(in-package :kami)

7
src/kami/package.lisp Normal file
View File

@ -0,0 +1,7 @@
(defpackage :kami
(:use
:cl
:config
:constants
:purgatory)
(:export))

View File

@ -527,7 +527,7 @@ will fire the `callback' function (with the selected field from `all-fields'
(select-row high-level-window 0)
(draw)
(loop named inner
for c = (get-wide-event low-level-window)
for c = (tui:decode-key-event (get-wide-event low-level-window))
while (string/= c "q")
do
(cond
@ -537,7 +537,7 @@ will fire the `callback' function (with the selected field from `all-fields'
((string= c :down)
(unselect-all high-level-window)
(row-move high-level-window 1))
((string= c #\Newline)
((string= c "^J")
(let ((selected-fields (selected-row-fields high-level-window))
(selected-text (selected-text (selected-row high-level-window))))
(funcall callback selected-text selected-fields))))

20
src/tests/kami-tests.lisp Normal file
View File

@ -0,0 +1,20 @@
;; tinmop: an humble gemini and pleroma client
;; Copyright (C) 2021 cage
;; This program is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with this program.
;; If not, see [[http://www.gnu.org/licenses/][http://www.gnu.org/licenses/]].
(in-package :kami-tests)
(defsuite kami-suite (all-suite))

View File

@ -118,3 +118,11 @@
:text-utils
:all-tests)
(:export))
(defpackage :kami-tests
(:use :cl
:clunit
:misc
:kami
:all-tests)
(:export))

View File

@ -31,6 +31,7 @@
:sqlite
:sxql
:sxql-composer
:purgatory
:marshal
:bordeaux-threads
:cl-base64
@ -86,17 +87,15 @@
(:file "date-formatter")
(:file "software-configuration")
(:file "tui-utils")
(:module 9p-client
:components ((:file "package")
(:file "message-types")
(:file "conditions")
(:file "client")))
(:module gemini
:components ((:file "package")
(:file "gemini-constants")
(:file "gemini-parser")
(:file "client")
(:file "subscription")))
:components ((:file "package")
(:file "gemini-constants")
(:file "gemini-parser")
(:file "client")
(:file "subscription")))
(:module kami
:components ((:file "package")
(:file "client")))
(:file "command-line")
(:file "specials")
(:file "keybindings")