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; }
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; }
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; }
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; }
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; }
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; }