Recently Written · git

clic

MIRROR ONLY Gopher client with pretty colours in Common Lisp

git clone https://github.com/equwal/clic

Log | Files | Refs


3rdparties/software/cl+ssl-20200427-git/src/ffi-buffer.lisp (873 bytes)

1 ;;;; -*- Mode: LISP; Syntax: COMMON-LISP; indent-tabs-mode: nil; coding: utf-8; show-trailing-whitespace: t -*-
2 
3 #+xcvb (module (:depends-on ("package")))
4 
5 (in-package :cl+ssl)
6 
7 (defun make-buffer (size)
8   (cffi:make-shareable-byte-vector size))
9 
10 (defun buffer-length (buf)
11   (length buf))
12 
13 (defun buffer-elt (buf index)
14   (elt buf index))
15 (defun set-buffer-elt (buf index val)
16   (setf (elt buf index) val))
17 (defsetf buffer-elt set-buffer-elt)
18 
19 (defun s/b-replace (seq buf &key (start1 0) end1 (start2 0) end2)
20   (replace seq buf :start1 start1 :end1 end1 :start2 start2 :end2 end2))
21 (defun b/s-replace (buf seq &key (start1 0) end1 (start2 0) end2)
22   (replace buf seq :start1 start1 :end1 end1 :start2 start2 :end2 end2))
23 
24 (defmacro with-pointer-to-vector-data ((ptr buf) &body body)
25   `(cffi:with-pointer-to-vector-data (,ptr ,buf)
26     ,@body))