コード例 #1
0
ファイル: _csv.c プロジェクト: Naddiseo/cpython
static int
join_append(WriterObj *self, PyObject *field, int *quoted, int quote_empty)
{
    unsigned int field_kind = -1;
    void *field_data = NULL;
    Py_ssize_t field_len = 0;
    Py_ssize_t rec_len;

    if (field != NULL) {
        field_kind = PyUnicode_KIND(field);
        field_data = PyUnicode_DATA(field);
        field_len = PyUnicode_GET_LENGTH(field);
    }
    rec_len = join_append_data(self, field_kind, field_data, field_len,
                               quote_empty, quoted, 0);
    if (rec_len < 0)
        return 0;

    /* grow record buffer if necessary */
    if (!join_check_rec_size(self, rec_len))
        return 0;

    self->rec_len = join_append_data(self, field_kind, field_data, field_len,
                                     quote_empty, quoted, 1);
    self->num_fields++;

    return 1;
}
コード例 #2
0
ファイル: _csv.c プロジェクト: AbnerChang/edk2-staging
static int
join_append(WriterObj *self, char *field, int *quoted, int quote_empty)
{
    int rec_len;

    rec_len = join_append_data(self, field, quote_empty, quoted, 0);
    if (rec_len < 0)
        return 0;

    /* grow record buffer if necessary */
    if (!join_check_rec_size(self, rec_len))
        return 0;

    self->rec_len = join_append_data(self, field, quote_empty, quoted, 1);
    self->num_fields++;

    return 1;
}
コード例 #3
0
ファイル: _csv.c プロジェクト: Oize/pspstacklesspython
static int
join_append_lineterminator(WriterObj *self)
{
	int terminator_len;

	terminator_len = PyString_Size(self->dialect->lineterminator);

	/* grow record buffer if necessary */
	if (!join_check_rec_size(self, self->rec_len + terminator_len))
		return 0;

	memmove(self->rec + self->rec_len,
		/* should not be NULL */
		PyString_AsString(self->dialect->lineterminator), 
                terminator_len);
	self->rec_len += terminator_len;

	return 1;
}
コード例 #4
0
ファイル: _csv.c プロジェクト: AbnerChang/edk2-staging
static int
join_append_lineterminator(WriterObj *self)
{
    int terminator_len;
    char *terminator;

    terminator_len = PyString_Size(self->dialect->lineterminator);
    if (terminator_len == -1)
        return 0;

    /* grow record buffer if necessary */
    if (!join_check_rec_size(self, self->rec_len + terminator_len))
        return 0;

    terminator = PyString_AsString(self->dialect->lineterminator);
    if (terminator == NULL)
        return 0;
    memmove(self->rec + self->rec_len, terminator, terminator_len);
    self->rec_len += terminator_len;

    return 1;
}
コード例 #5
0
ファイル: _csv.c プロジェクト: Naddiseo/cpython
static int
join_append_lineterminator(WriterObj *self)
{
    Py_ssize_t terminator_len, i;
    unsigned int term_kind;
    void *term_data;

    terminator_len = PyUnicode_GET_LENGTH(self->dialect->lineterminator);
    if (terminator_len == -1)
        return 0;

    /* grow record buffer if necessary */
    if (!join_check_rec_size(self, self->rec_len + terminator_len))
        return 0;

    term_kind = PyUnicode_KIND(self->dialect->lineterminator);
    term_data = PyUnicode_DATA(self->dialect->lineterminator);
    for (i = 0; i < terminator_len; i++)
        self->rec[self->rec_len + i] = PyUnicode_READ(term_kind, term_data, i);
    self->rec_len += terminator_len;

    return 1;
}
コード例 #6
0
static int
join_append_lineterminator(WriterObj *self)
{
	int terminator_len;
	Py_UNICODE *terminator;

	terminator_len = PyUnicode_GetSize(self->dialect->lineterminator);
	if (terminator_len == -1)
		return 0;

	/* grow record buffer if necessary */
	if (!join_check_rec_size(self, self->rec_len + terminator_len))
		return 0;

	terminator = PyUnicode_AsUnicode(self->dialect->lineterminator);
	if (terminator == NULL)
		return 0;
	memmove(self->rec + self->rec_len, terminator, 
            sizeof(Py_UNICODE)*terminator_len);
	self->rec_len += terminator_len;

	return 1;
}