📄 htplain.c
字号:
/* HTPlain.c** PLAIN TEXT OBJECT**** (c) COPYRIGHT MIT 1995.** Please first read the full copyright statement in the file COPYRIGH.** @(#) $Id: HTPlain.c,v 2.26 1999/01/06 15:38:47 frystyk Exp $**** This version of the stream object just writes to a socket.** The socket is assumed open and left open.***//* Library include files */#include "wwwsys.h"#include "HTUtils.h"#include "HTStyle.h"#include "HTPlain.h"#include "HTextImp.h"struct _HTStream { const HTStreamClass * isa; HTextImp * text;};/* -------------------------------------------------------------------------- */PRIVATE int HTPlain_put_character (HTStream * me, char c){ HTextImp_addText(me->text, &c, 1); return HT_OK;}PRIVATE int HTPlain_put_string (HTStream * me, const char * s){ HTextImp_addText(me->text, s, strlen(s)); return HT_OK;}PRIVATE int HTPlain_write (HTStream * me, const char* b, int l){ HTextImp_addText(me->text, b, l); return HT_OK;}PRIVATE int HTPlain_flush (HTStream * me){ return HT_OK;}PRIVATE int HTPlain_free (HTStream * me){ if (me) { HTextImp_build(me->text, HTEXT_END); HT_FREE(me); } return HT_OK;}PRIVATE int HTPlain_abort (HTStream * me, HTList * e){ if (me) { HTextImp_build(me->text, HTEXT_ABORT); HT_FREE(me); } return HT_ERROR;}PRIVATE const HTStreamClass HTPlain ={ "PlainText", HTPlain_flush, HTPlain_free, HTPlain_abort, HTPlain_put_character, HTPlain_put_string, HTPlain_write,}; PUBLIC HTStream* HTPlainPresent (HTRequest * request, void * param, HTFormat input_format, HTFormat output_format, HTStream * output_stream){ HTStream * me; if ((me = (HTStream *) HT_CALLOC(1, sizeof(HTStream))) == NULL) HT_OUTOFMEM("HTPlain_new"); me->isa = &HTPlain; me->text = HTextImp_new(request, HTRequest_anchor(request), output_stream); HTextImp_build(me->text, HTEXT_BEGIN); return me;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -