int open_machine_layer(char * name,Pointer g_db) { char complete_name[400]; G_strcpy(complete_name,DirOrigin); G_strcat(complete_name,name); return msg_id(sqlite3_open(complete_name,(sqlite3 **)g_db));}
char *G_site_format(const Site * s, const char *fs, int id) /* sprintf analog to G_site_put with the addition of a field separator fs and option of printing site attribute identifiers */ { char ebuf[MAX_SITE_STRING], nbuf[MAX_SITE_STRING]; char xbuf[MAX_SITE_STRING]; const char *nfs; char *buf; int fmt, i, j, k; buf = (char *)G_malloc(MAX_SITE_LEN * sizeof(char)); fmt = G_projection(); G_format_northing(s->north, nbuf, fmt); G_format_easting(s->east, ebuf, fmt); nfs = (char *)((fs == (char *)NULL) ? "|" : fs); sprintf(buf, "%s%s%s", ebuf, nfs, nbuf); for (i = 0; i < s->dim_alloc; ++i) { format_double(s->dim[i], nbuf); sprintf(xbuf, "%s%s", nfs, nbuf); G_strcat(buf, xbuf); } nfs = (fs == NULL) ? " " : fs; switch (s->cattype) { case CELL_TYPE: sprintf(xbuf, "%s%s%d ", nfs, ((id == 0) ? "" : "#"), (int)s->ccat); G_strcat(buf, xbuf); break; case FCELL_TYPE: case DCELL_TYPE: sprintf(xbuf, "%s%s%g ", nfs, ((id == 0) ? "" : "#"), (float)s->fcat); G_strcat(buf, xbuf); break; } for (i = 0; i < s->dbl_alloc; ++i) { format_double(s->dbl_att[i], nbuf); sprintf(xbuf, "%s%s%s", nfs, ((id == 0) ? "" : "%"), nbuf); G_strcat(buf, xbuf); } for (i = 0; i < s->str_alloc; ++i) { if (strlen(s->str_att[i]) != 0) { /* escape double quotes */ j = k = 0; /* do not uncomment this code because sites file was created * as we want. So it's enough to print them out as it is. * if (G_index (s->str_att[i], DQUOTE) != (char *) NULL) { while (!isnull(s->str_att[i][j])) { if (isquote(s->str_att[i][j])) { xbuf[k++] = BSLASH; xbuf[k++] = DQUOTE; } else xbuf[k++] = s->str_att[i][j]; j++; } xbuf[k] = (char) NULL; } else */ G_strcpy(xbuf, s->str_att[i]); G_strcpy(s->str_att[i], xbuf); if (G_index(s->str_att[i], SPACE) != (char *)NULL) sprintf(xbuf, "%s%s\"%s\"", nfs, ((id == 0) ? "" : "@"), s->str_att[i]); else sprintf(xbuf, "%s%s%s", nfs, ((id == 0) ? "" : "@"), s->str_att[i]); G_strcat(buf, xbuf); } } return buf; }