avoid calling strtok() in group command

This commit is contained in:
Axel Kohlmeyer
2021-03-13 18:33:42 -05:00
parent e6def05178
commit 9c13361a17

View File

@ -303,18 +303,21 @@ void Group::assign(int narg, char **arg)
else if (category == MOLECULE) tattribute = atom->molecule; else if (category == MOLECULE) tattribute = atom->molecule;
else if (category == ID) tattribute = atom->tag; else if (category == ID) tattribute = atom->tag;
char *ptr; char *ptr,*end;
tagint start,stop,delta; tagint start,stop,delta;
for (int iarg = 2; iarg < narg; iarg++) { for (int iarg = 2; iarg < narg; iarg++) {
delta = 1; delta = 1;
if (strchr(arg[iarg],':')) { ptr = arg[iarg];
ptr = strtok(arg[iarg],":"); end = ptr + strlen(ptr)+1;
if (strchr(ptr,':')) {
ptr[strcspn(ptr,":")] = '\0';
start = utils::tnumeric(FLERR,ptr,false,lmp); start = utils::tnumeric(FLERR,ptr,false,lmp);
ptr = strtok(nullptr,":"); ptr += strlen(ptr)+1;
if (strchr(ptr,':')) ptr[strcspn(ptr,":")] = '\0';
stop = utils::tnumeric(FLERR,ptr,false,lmp); stop = utils::tnumeric(FLERR,ptr,false,lmp);
ptr = strtok(nullptr,":"); ptr += strlen(ptr)+1;
if (ptr) delta = utils::tnumeric(FLERR,ptr,false,lmp); if (ptr < end) delta = utils::tnumeric(FLERR,ptr,false,lmp);
} else { } else {
start = stop = utils::tnumeric(FLERR,arg[iarg],false,lmp); start = stop = utils::tnumeric(FLERR,arg[iarg],false,lmp);
} }