post-scarcity/src/c/io/print.h

37 lines
1.2 KiB
C

/**
* io/print.c
*
* Post Scarcity Software Environment: print.
*
* Print basic Lisp objects..This is :bootstrap layer print; it needs to be
* able to print characters, symbols, integers, lists and dotted pairs. I
* don't think it needs to be able to print anything else.
*
* (c) 2026 Simon Brooke <simon@journeyman.cc>
* Licensed under GPL version 2.0, or, at your option, any later version.
*/
#ifndef __psse_io_print_h
#define __psse_io_print_h
#include <stdbool.h>
#include "io/fopen.h"
struct pso_pointer print( struct pso_pointer frame_pointer );
struct pso_pointer princ( struct pso_pointer frame_pointer );
#define PRINT_VARIANT_PRINT 0
#define PRINT_VARIANT_PRIN1 1
#define PRINT_VARIANT_PRINC 2
struct pso_pointer in_write( struct pso_pointer p, URL_FILE * output,
bool escape, int indent );
struct pso_pointer c_write( struct pso_pointer frame_pointer,
struct pso_pointer object,
struct pso_pointer stream, bool escape,
bool nl_before, bool nl_after );
#define c_print(f,o,s)(c_write(f,o,s,true,true,false))
#define c_princ(f,o,s)(c_write(f,o,s,false,true,false))
#endif