avoid calling strtok() in group command
This commit is contained in:
@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user