本文整理汇总了C++中buf_append函数的典型用法代码示例。如果您正苦于以下问题:C++ buf_append函数的具体用法?C++ buf_append怎么用?C++ buf_append使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了buf_append函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: unicode_to_chars
static void
unicode_to_chars(ParseInfo pi, Buf buf, uint32_t code) {
if (0x0000007F >= code) {
buf_append(buf, (char)code);
} else if (0x000007FF >= code) {
buf_append(buf, 0xC0 | (code >> 6));
buf_append(buf, 0x80 | (0x3F & code));
} else if (0x0000FFFF >= code) {
示例2: telnet_putc
static int telnet_putc(char c, FILE *stream) {
if (c == '\n') {
char r = '\r';
buf_append(&buf, &r, 1);
}
buf_append(&buf, &c, 1);
return 0;
}
示例3: js_print_keys
jserr_t js_print_keys(jsparser_t *p, size_t t, Buffer *b) {
size_t v = js_tok(p, t)->first_child;
jstok_t *tmp;
if (js_tok(p, t)->type != JS_OBJECT) return JS_EBUG;
while (v) {
tmp = js_tok(p, v);
buf_append(b, (p->js)->buf + tmp->start, tmp->end - tmp->start);
if ((v = js_tok(p, v)->next_sibling)) buf_append(b, "\n", 1);
}
return 0;
}
示例4: append_dtls_ciphers
void append_dtls_ciphers(struct openconnect_info *vpninfo, struct oc_text_buf *buf)
{
#ifdef HAVE_DTLS12
#ifndef OPENSSL_NO_PSK
buf_append(buf, "PSK-NEGOTIATE:");
#endif
buf_append(buf, "OC-DTLS1_2-AES256-GCM:OC-DTLS1_2-AES128-GCM:");
#endif
buf_append(buf, "DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:");
buf_append(buf, "AES256-SHA:AES128-SHA:DES-CBC3-SHA:DES-CBC-SHA");
}
示例5: safe_malloc
PRIVATE ObjectStoreItem *read_item(FILE *f) {
ObjectStoreItem *item = safe_malloc(sizeof(ObjectStoreItem));
BUFFER varname;
char str[1024]; /* %%% Yuck, a fixed-size buffer. */
int key;
if (fscanf(f, "%s %d [", str, &key) < 2) {
free(item);
return NULL;
}
item->tag = safe_string_dup(str);
item->key = key;
item->object = NULL;
item->db = NULL;
item->fields = g_hash_table_new(g_str_hash, g_str_equal);
varname = newbuf(128);
while (!feof(f)) {
int ch;
/* Strip leading whitespace (there _should_ always be some). */
do { ch = fgetc(f); } while (isspace(ch) && (ch != ']') && (ch != EOF));
if (ch == ']' || ch == EOF) {
/* That's it. We're done with this item. */
/* Empty line signals no more fields. */
break;
}
/* Read the field name */
do {
buf_append(varname, ch);
ch = fgetc(f);
} while (!isspace(ch));
/* Skip the whitespace and equals-sign */
do { ch = fgetc(f); } while (isspace(ch) || ch == '=');
ungetc(ch, f);
/* Now we have the complete variable name in varname, and we are about to read the
first character of the variable value. */
buf_append(varname, '\0');
objectstore_item_set(item, varname->buf, read_item_field_value(f));
varname->pos = 0; /* reset varname for next round */
/* Trailing whitespace, if any, is dealt with at the top of the loop. */
}
killbuf(varname);
return item;
}
示例6: pmdoc_Fn
/* ARGSUSED */
static int
pmdoc_Fn(MDOC_ARGS)
{
struct mdoc_node *nn;
const char *cp;
nn = n->child;
if (NULL == nn || MDOC_TEXT != nn->type)
return(0);
/* .Fn "struct type *name" "char *arg" */
cp = strrchr(nn->string, ' ');
if (NULL == cp)
cp = nn->string;
/* Strip away pointer symbol. */
while ('*' == *cp)
cp++;
/* Store the function name. */
buf_append(buf, cp);
hash_put(hash, buf, TYPE_Fn);
/* Store the function type. */
if (nn->string < cp) {
buf->len = 0;
buf_appendb(buf, nn->string, cp - nn->string);
buf_appendb(buf, "", 1);
hash_put(hash, buf, TYPE_Ft);
}
/* Store the arguments. */
for (nn = nn->next; nn; nn = nn->next) {
if (MDOC_TEXT != nn->type)
continue;
buf->len = 0;
buf_append(buf, nn->string);
hash_put(hash, buf, TYPE_Fa);
}
return(0);
}
示例7: command_report_error
void command_report_error(buffer_t* out, const command_t* cmd, int error)
{
int do_eol = 1;
if (NULL == out || NULL == cmd)
return;
switch (error)
{
case ENONE:
buf_append(out, "OK");
break;
case EIGNORE:
do_eol = 0;
break;
case ENOCMD:
buf_appendf(out, "ERR: No such command");
break;
case ENOSESSION:
buf_appendf(out, "ERR: Session not found");
break;
case EUSAGE:
command_usage(out, cmd);
do_eol = 0;
break;
default:
buf_appendf(out, "ERR: %s", strerror(error));
break;
}
if (do_eol)
buf_append_eol(out);
}
示例8: collect_add
puint STDCALL collect_add( pcollect pclt, puint input, uint type )
{
// uint value;
pclt->count++;
buf_appenduint( ( pbuf )pclt, type );
if ( (( povmtype )PCMD( type ))->stsize == 2 )
{
pclt->flag |= 0x01;
buf_append( ( pbuf )pclt, ( pubyte )input, sizeof( long64 ));
return input + 2;
}
else
{
/* value = *input;
switch ( type )
{
case TUbyte: value = *( pubyte )input; break;
case TByte: value = *( pbyte )input; break;
case TUshort: value = *( pushort )input; break;
case TShort: value = *( pshort )input; break;
default: value = *input; break;
}*/
buf_appenduint( ( pbuf )pclt, *input );
}
return input + 1;
}
示例9: striptags
char * striptags(const char *s, unsigned int l)
{
struct template_buffer *buf = buf_init(l);
unsigned char *ptr = (unsigned char *)s;
unsigned char *end = ptr + l;
unsigned char *tag;
unsigned char prev;
char esq[8];
int esl;
for (prev = ' '; ptr < end; ptr++)
{
if ((*ptr == '<') && ((ptr + 2) < end) &&
((*(ptr + 1) == '/') || isalpha(*(ptr + 1))))
{
for (tag = ptr; tag < end; tag++)
{
if (*tag == '>')
{
if (!isspace(prev))
buf_putchar(buf, ' ');
ptr = tag;
prev = ' ';
break;
}
}
}
else if (isspace(*ptr))
{
if (!isspace(prev))
buf_putchar(buf, *ptr);
prev = *ptr;
}
else
{
switch(*ptr)
{
case '"':
case '\'':
case '<':
case '>':
case '&':
esl = snprintf(esq, sizeof(esq), "&#%i;", *ptr);
buf_append(buf, esq, esl);
break;
default:
buf_putchar(buf, *ptr);
break;
}
prev = *ptr;
}
}
return buf_destroy(buf);
}
示例10: buf_append
/* Appends n characters in str to buf. */
struct Buf *buf_strnappend (struct Buf *buf, const char *str, int n)
{
buf_append (buf, str, n + 1);
/* "undo" the '\0' character that buf_append() already copied. */
buf->nelts--;
return buf;
}
示例11: buf_append_unq
static void buf_append_unq(struct oc_text_buf *buf, const char *str)
{
while (*str) {
if (*str == '\"' || *str == '\\')
buf_append(buf, "\\");
buf_append_bytes(buf, str, 1);
str++;
}
}
示例12: v2_merge
int v2_merge(BUFFER *mid)
{
char fname[PATHMAX], line[LINELEN];
BUFFER *temp, *msg;
FILE *l, *f;
int i, numpackets;
struct stat sb;
long d;
int n;
int err = -1;
temp = buf_new();
msg = buf_new();
pool_packetfile(fname, mid, 0);
l = fopen(fname, "a+");
if (l != NULL)
lock(l);
pool_packetfile(fname, mid, 1);
f = fopen(fname, "rb");
if (f == NULL)
goto end;
fscanf(f, "%32s %ld %d %d\n", line, &d, &i, &numpackets);
fclose(f);
/* do we have all packets? */
for (i = 1; i <= numpackets; i++) {
pool_packetfile(fname, mid, i);
if (stat(fname, &sb) != 0)
goto end;
}
errlog(LOG, "Reassembling multipart message.\n");
for (i = 1; i <= numpackets; i++) {
pool_packetfile(fname, mid, i);
f = fopen(fname, "rb");
if (f == NULL)
goto end;
fscanf(f, "%32s %ld %d %d\n", line, &d, &n, &n);
buf_clear(temp);
buf_read(temp, f);
v2body_setlen(temp);
buf_append(msg, temp->data + 4, temp->length - 4);
fclose(f);
unlink(fname);
}
err = v2body(msg);
end:
if (l != NULL)
fclose(l);
pool_packetfile(fname, mid, 0);
unlink(fname);
buf_free(temp);
buf_free(msg);
return (err);
}
示例13: shell_default_output
/*---------------------------------------------------------------------------*/
void
shell_default_output(const char *str1, int len1, const char *str2, int len2)
{
if(len1 > 0 && str1[len1 - 1] == '\n') {
--len1;
}
if(len2 > 0 && str2[len2 - 1] == '\n') {
--len2;
}
/* PRINTF("shell_default_output: %.*s %.*s\n", len1, str1, len2, str2);*/
#if TELNETD_CONF_GUI
telnetd_gui_output(str1, len1, str2, len2);
#endif /* TELNETD_CONF_GUI */
buf_append(&buf, str1, len1);
buf_append(&buf, str2, len2);
buf_append(&buf, "\r\n", 2);
}
示例14: pmdoc_St
/* ARGSUSED */
static int
pmdoc_St(MDOC_ARGS)
{
if (NULL == n->child || MDOC_TEXT != n->child->type)
return(0);
buf_append(buf, n->child->string);
return(1);
}
示例15: sendopt
/*---------------------------------------------------------------------------*/
static void
sendopt(u8_t option, u8_t value)
{
char line[4];
line[0] = (char)TELNET_IAC;
line[1] = option;
line[2] = value;
line[3] = 0;
buf_append(&buf, line, 4);
}