/* Copyright (C) 2019 Julian RĂ¼th This file is part of Arb. Arb is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License (LGPL) as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. See . */ #include #include "arb.h" #include "arf.h" #include "mag.h" int arb_load_str(arb_t x, const char* data) { size_t midlen, maglen; char * mid; char * mag; int err = 0; const char* split = strchr(data, ' '); if (split == NULL) { return 1; } split = strchr(split + 1, ' '); if (split == NULL) { return 1; } midlen = (size_t)(split - data); mid = (char*)flint_malloc(midlen + 1); strncpy(mid, data, midlen); mid[midlen] = '\0'; maglen = strlen(data) - midlen - 1; mag = (char*)flint_malloc(maglen + 1); strncpy(mag, split + 1, maglen); mag[maglen] = '\0'; err = arf_load_str(arb_midref(x), mid); if (err) { flint_free(mid); flint_free(mag); return err; } err = mag_load_str(arb_radref(x), mag); flint_free(mid); flint_free(mag); return err; }