* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "gmxpre.h"
#include <ctype.h>
#include <string.h>
-#include "typedefs.h"
+#include "gromacs/legacyheaders/typedefs.h"
#include "fflibutil.h"
#include "hackblock.h"
#include "xlate.h"
}
srenew(xl, n+1);
- xl[n].filebase = strdup(filebase);
+ xl[n].filebase = gmx_strdup(filebase);
/* Use wildcards... */
if (strcmp(rbuf, "*") != 0)
{
- xl[n].res = strdup(rbuf);
+ xl[n].res = gmx_strdup(rbuf);
}
else
{
*_ptr = ' ';
}
- xl[n].atom = strdup(abuf);
- xl[n].replace = strdup(repbuf);
+ xl[n].atom = gmx_strdup(abuf);
+ xl[n].replace = gmx_strdup(repbuf);
n++;
}
char **f;
char c, *rnm, atombuf[32], *ptr0, *ptr1;
gmx_bool bReorderedNum, bRenamed, bMatch;
+ gmx_bool bStartTerm, bEndTerm;
nxlate = 0;
xlatom = NULL;
for (a = 0; (a < atoms->nr); a++)
{
resind = atoms->atom[a].resind;
+
+ bStartTerm = (resind == 0) || atoms->resinfo[resind].chainnum != atoms->resinfo[resind-1].chainnum;
+ bEndTerm = (resind >= atoms->nres-1) || atoms->resinfo[resind].chainnum != atoms->resinfo[resind+1].chainnum;
+
if (bResname)
{
rnm = *(atoms->resinfo[resind].name);
{
/* Match the residue name */
bMatch = (xlatom[i].res == NULL ||
+ (gmx_strcasecmp("protein-nterm", xlatom[i].res) == 0 &&
+ gmx_residuetype_is_protein(rt, rnm) && bStartTerm) ||
+ (gmx_strcasecmp("protein-cterm", xlatom[i].res) == 0 &&
+ gmx_residuetype_is_protein(rt, rnm) && bEndTerm) ||
(gmx_strcasecmp("protein", xlatom[i].res) == 0 &&
gmx_residuetype_is_protein(rt, rnm)) ||
(gmx_strcasecmp("DNA", xlatom[i].res) == 0 &&
/* Don't free the old atomname,
* since it might be in the symtab.
*/
- ptr0 = strdup(xlatom[i].replace);
+ ptr0 = gmx_strdup(xlatom[i].replace);
if (bVerbose)
{
printf("Renaming atom '%s' in residue %d %s to '%s'\n",