00001 #pragma once
00002 #ifndef SEXP_OUTPUT_H
00003 #define SEXP_OUTPUT_H
00004
00005 #include <stdio.h>
00006 #include <unistd.h>
00007 #include <seap-debug.h>
00008 #include <sexp-types.h>
00009
00010 #ifdef __cplusplus
00011 extern "C" {
00012 #endif
00013
00014 typedef struct SEXP_ostate SEXP_ostate_t;
00015
00016 size_t SEXP_fprintfa (FILE *fp, const SEXP_t *s_exp);
00017
00018 #if defined(STRBUF_H)
00019 int SEXP_sbprintf_t (SEXP_t *s_exp, strbuf_t *sb);
00020 #endif
00021
00022 #if 0
00023
00024 int SEXP_printf (SEXP_format_t fmt, SEXP_t *sexp);
00025 int SEXP_fprintf (FILE *fp, SEXP_format_t fmt, SEXP_t *sexp);
00026 int SEXP_dprintf (int fd, SEXP_format_t fmt, SEXP_t *sexp);
00027 int SEXP_sprintf (char *str, SEXP_format_t fmt, SEXP_t *sexp);
00028 int SEXP_snprintf (char *str, size_t size, SEXP_format_t fmt, SEXP_t *sexp);
00029 int SEXP_asprintf (char **ret, SEXP_format_t fmt, SEXP_t *sexp);
00030 int SEXP_asnprintf (char **ret, size_t maxsz, SEXP_format_t fmt, SEXP_t *sexp);
00031
00032 ssize_t SEXP_st_dprintf (int fd, SEXP_format_t fmt, SEXP_t *sexp, SEXP_ostate_t **ost);
00033 ssize_t SEXP_st_dnprintf (int fd, size_t maxsz, SEXP_format_t fmt, SEXP_t *sexp, SEXP_ostate_t **ost);
00034
00035
00036 ssize_t SEXP_st_dprintc (int fd, SEXP_t *sexp, SEXP_ostate_t **ost);
00037 ssize_t SEXP_st_dnprintc (int fd, size_t maxsz, SEXP_t *sexp, SEXP_ostate_t **ost);
00038
00039 #define SEXP_printf_canonical SEXP_printfc
00040 #define SEXP_fprintf_canonical SEXP_fprintfc
00041 #define SEXP_dprintf_canonical SEXP_dprintfc
00042 #define SEXP_sprintf_canonical SEXP_sprintfc
00043 #define SEXP_snprintf_canonical SEXP_snprintfc
00044 #define SEXP_asprintf_canonical SEXP_asprintfc
00045 #define SEXP_asnprintf_canonical SEXP_asnprintfc
00046
00047 int SEXP_printfc (SEXP_t *sexp);
00048 int SEXP_fprintfc (FILE *fp, SEXP_t *sexp);
00049 int SEXP_dprintfc (int fd, SEXP_t *sexp);
00050 int SEXP_sprintfc (char *str, SEXP_t *sexp);
00051 int SEXP_snprintfc (char *str, size_t size, SEXP_t *sexp);
00052 int SEXP_asprintfc (char **ret, SEXP_t *sexp);
00053 int SEXP_asnprintfc (char **ret, size_t maxsz, SEXP_t *sexp);
00054
00055
00056 ssize_t SEXP_st_dprinta (int fd, SEXP_t *sexp, SEXP_ostate_t **ost);
00057 ssize_t SEXP_st_dnprinta (int fd, size_t maxsz, SEXP_t *sexp, SEXP_ostate_t **ost);
00058
00059 #define SEXP_printf_advanced SEXP_printfa
00060 #define SEXP_fprintf_advanced SEXP_fprintfa
00061 #define SEXP_dprintf_advanced SEXP_dprintfa
00062 #define SEXP_sprintf_advanced SEXP_sprintfa
00063 #define SEXP_snprintf_advanced SEXP_snprintfa
00064 #define SEXP_asprintf_advanced SEXP_asprintfa
00065 #define SEXP_asnprintf_advanced SEXP_asnprintfa
00066
00067 int SEXP_printfa (SEXP_t *sexp);
00068 int SEXP_fprintfa (FILE *fp, SEXP_t *sexp);
00069 int SEXP_dprintfa (int fd, SEXP_t *sexp);
00070 int SEXP_sprintfa (char *str, SEXP_t *sexp);
00071 int SEXP_snprintfa (char *str, size_t size, SEXP_t *sexp);
00072 int SEXP_asprintfa (char **ret, SEXP_t *sexp);
00073 int SEXP_asnprintfa (char **ret, size_t maxsz, SEXP_t *sexp);
00074
00075
00076 ssize_t SEXP_st_dprintt (int fd, SEXP_t *sexp, SEXP_ostate_t **ost);
00077 ssize_t SEXP_st_dnprintt (int fd, size_t maxsz, SEXP_t *sexp, SEXP_ostate_t **ost);
00078
00079 #define SEXP_printf_transport SEXP_printft
00080 #define SEXP_fprintf_transport SEXP_fprintft
00081 #define SEXP_dprintf_transport SEXP_dprintft
00082 #define SEXP_sprintf_transport SEXP_sprintft
00083 #define SEXP_snprintf_transport SEXP_snprintft
00084 #define SEXP_asprintf_transport SEXP_asprintft
00085 #define SEXP_asnprintf_transport SEXP_asnprintft
00086
00087 int SEXP_printft (SEXP_t *sexp);
00088 int SEXP_fprintft (FILE *fp, SEXP_t *sexp);
00089 int SEXP_dprintft (int fd, SEXP_t *sexp);
00090 int SEXP_sprintft (char *str, SEXP_t *sexp);
00091 int SEXP_snprintft (char *str, size_t size, SEXP_t *sexp);
00092 int SEXP_asprintft (char **ret, SEXP_t *sexp);
00093 int SEXP_asnprintft (char **ret, size_t maxsz, SEXP_t *sexp);
00094 #endif
00095
00096 #ifdef __cplusplus
00097 }
00098 #endif
00099
00100 #endif