52#define ITEM_DELIMETER ","
54#define COMMA_EXTRA_SPACE ","
55#define LEN_EXTRA_SPACE 0
60#define CT_MODE_NO_ORPHANS 1
61#define CT_MODE_ABC_NUMBERS 2
62#define CT_MODE_ATOM_COUNTS 4
63#define CT_MODE_PREDECESSORS 8
64#define CT_MODE_EQL_H_TOGETHER 16
65#define CT_MODE_ABC_NUM_CLOSURES 32
70#define HAS_T(S) (S->pINChI[TAUT_YES] && S->pINChI[TAUT_YES]->nNumberOfAtoms)
72#define HAS_N(S) (S->pINChI[TAUT_NON] && S->pINChI[TAUT_NON]->nNumberOfAtoms)
75#define HAS_TT(S) (S->pINChI[TAUT_YES] && S->pINChI[TAUT_YES]->nNumberOfAtoms && S->pINChI[TAUT_YES]->lenTautomer>0)
77#define HAS_TN(S) (S->pINChI[TAUT_YES] && S->pINChI[TAUT_YES]->nNumberOfAtoms && !S->pINChI[TAUT_YES]->lenTautomer)
79#define HAS_NN(S) (S->pINChI[TAUT_NON] && S->pINChI[TAUT_NON]->nNumberOfAtoms && !S->pINChI[TAUT_NON]->lenTautomer)
80#define GET_II(M,S) ((M==OUT_N1)? (HAS_TN(S)? TAUT_YES : HAS_NN(S)? TAUT_NON : -1): \
81 (M==OUT_T1 || M==OUT_TN)? (HAS_T(S) ? TAUT_YES : HAS_N(S) ? TAUT_NON : -1): \
82 (M==OUT_NN)? (HAS_NN(S)? TAUT_NON : HAS_TN(S)? TAUT_YES : -1): \
83 (M==OUT_NT)? ((HAS_TT(S) && HAS_NN(S)) ? TAUT_NON : -1) : -1)
90#define iiSTEREO 0x0001
91#define iiSTEREO_INV 0x0002
100#define iitNONTAUT 0x0020
106#define iiEq2NONTAUT 0x0040
107#define iiEq2ISO 0x0080
108#define iiEq2INV 0x0100
110#define iiEmpty 0x0200
116#ifndef COMPILE_ALL_CPP
148 const char *szLeadingDelim,
152 const char *szLeadingDelim,
191 int nNumberOfIsotopicAtoms,
196 int nNumberOfIsotopicTGroups,
202 int nCtMode,
int *bOverflow );
213 const char* conf_stereo_string,
215 int nof_stereo_groups,
232 const char *szTailingDelim,
236 int MakeDelim(
const char *szTailingDelim,
239 int MakeEqStr(
const char *szTailingDelim,
260 int bUseMulipliers );
267 int bUseMulipliers );
275 int bUseMulipliers );
283 int bUseMulipliers );
290 int bSecondNonTautPass,
291 int bOmitRepetitions,
292 int bUseMulipliers );
300 int bSecondNonTautPass,
301 int bOmitRepetitions,
302 int bUseMulipliers );
307 int bOutType,
int TAUT_MODE,
309 int bSecondNonTautPass,
310 int bOmitRepetitions,
311 int bUseMulipliers );
320 int bSecondNonTautPass,
321 int bOmitRepetitions,
322 int bUseMulipliers );
331 int bSecondNonTautPass,
332 int bOmitRepetitions,
333 int bUseMulipliers );
338 int num_components );
343 int num_components );
352 int bSecondNonTautPass,
353 int bOmitRepetitions,
354 int bUseMulipliers );
361 int bUseMulipliers );
370 int bSecondNonTautPass,
371 int bOmitRepetitions );
379 int bSecondNonTautPass,
380 int bOmitRepetitions,
381 int bUseMulipliers );
388 int bUseMulipliers );
395 int bOmitRepetitions,
396 int bUseMulipliers );
404 int bSecondNonTautPass,
405 int bOmitRepetitions,
406 int bUseMulipliers );
415 int bSecondNonTautPass,
416 int bOmitRepetitions );
425 int bSecondNonTautPass,
426 int bOmitRepetitions );
434 int bSecondNonTautPass,
435 int bOmitRepetitions,
436 int bUseMulipliers );
440 int *bOverflow,
int bOutType,
443 int bSecondNonTautPass,
444 int bOmitRepetitions,
445 int bUseMulipliers );
454 int bSecondNonTautPass,
455 int bOmitRepetitions );
462 int bUseMulipliers );
468 int num_components );
475 int num_components );
479#ifndef COMPILE_ALL_CPP
int MakeIsoHString(int num_iso_H[], INCHI_IOS_STRING *strbuf, int nCtMode, int *bOverflow)
Definition ichiprt2.c:1980
int MakeDecNumber(char *szString, int nStringLen, const char *szLeadingDelim, int nValue)
Definition ichiprt2.c:2620
int str_AuxTautTrans(CANON_GLOBALS *pCG, AT_NUMB *nTrans_n, AT_NUMB *nTrans_s, INCHI_IOS_STRING *strbuf, int *bOverflow, int TAUT_MODE, int num_components)
Definition ichiprt3.c:4215
int EqlOrigInfo(INChI_Aux *a1, INChI_Aux *a2)
Definition ichiprt2.c:387
int MakeCtStringNew(CANON_GLOBALS *pCG, AT_NUMB *LinearCT, int nLenCT, int bAddDelim, S_CHAR *nNum_H, int num_atoms, INCHI_IOS_STRING *strbuf, int nCtMode, int *bOverflow)
Definition ichiprt2.c:607
int MakeEnhStereoString(INChI_Aux *pAux, INCHI_IOS_STRING *strbuf, const char *conf_stereo_string, int **enh_stereo, int nof_stereo_groups, int nCtMode, int *bOverflow)
Creates the enhanced stereochemistry string for the s - layer.
Definition ichiprt2.c:2213
int str_IsoSp2(INCHI_SORT *pINChISort, INCHI_SORT *pINChISort2, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int TAUT_MODE, int num_components, int bSecondNonTautPass, int bOmitRepetitions, int bUseMulipliers)
Definition ichiprt3.c:1507
const char * EquString(int EquVal)
Definition ichiprt1.c:557
int str_AuxNumb(CANON_GLOBALS *pCG, INCHI_SORT *pINChISort, INCHI_SORT *pINChISort2, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int TAUT_MODE, int num_components, int bSecondNonTautPass, int bOmitRepetitions)
Definition ichiprt3.c:3846
int MakeCRVString(ORIG_INFO *OrigInfo, int nLenCT, int bAddDelim, INCHI_IOS_STRING *strbuf, int nCtMode, int *bOverflow)
Definition ichiprt2.c:1364
int str_AuxChargeRadVal(INCHI_SORT *pINChISort, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int TAUT_MODE, int num_components, int bUseMulipliers)
Definition ichiprt3.c:4041
int MakeCtString(CANON_GLOBALS *pCG, AT_NUMB *LinearCT, int nLenCT, int bAddDelim, S_CHAR *nNum_H, int num_atoms, INCHI_IOS_STRING *strbuf, int nCtMode, int *bOverflow)
Definition ichiprt2.c:1125
int MakeStereoString(AT_NUMB *at1, AT_NUMB *at2, S_CHAR *parity, int bAddDelim, int nLenCT, INCHI_IOS_STRING *buf, int nCtMode, int *bOverflow)
Definition ichiprt2.c:2075
int bHasOrigInfo(ORIG_INFO *OrigInfo, int num_atoms)
Definition ichiprt2.c:369
int str_AuxInvSp3Numb(CANON_GLOBALS *pCG, INCHI_SORT *pINChISort, INCHI_SORT *pINChISort2, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int TAUT_MODE, int num_components, int bSecondNonTautPass, int bOmitRepetitions)
Definition ichiprt3.c:2612
int CompareTautNonIsoPartOfINChI(const INChI *i1, const INChI *i2)
Definition ichimake.c:316
int str_IsoSp3(INCHI_SORT *pINChISort, INCHI_SORT *pINChISort2, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int TAUT_MODE, int num_components, int bRelRac, int bSecondNonTautPass, int bOmitRepetitions, int bUseMulipliers)
Definition ichiprt3.c:1796
int str_AuxIsoNumb(CANON_GLOBALS *pCG, INCHI_SORT *pINChISort, INCHI_SORT *pINChISort2, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int TAUT_MODE, int num_components, int bSecondNonTautPass, int bOmitRepetitions)
Definition ichiprt3.c:2797
int MakeCtStringOld(AT_NUMB *LinearCT, int nLenCT, int bAddDelim, INCHI_IOS_STRING *strbuf, int nCtMode, int *bOverflow)
Definition ichiprt2.c:759
int str_IsoStereoAbsInv(INCHI_SORT *pINChISort, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int num_components)
Definition ichiprt3.c:2086
AT_NUMB * GetDfsOrder4CT(CANON_GLOBALS *pCG, AT_NUMB *LinearCT, int nLenCT, S_CHAR *nNum_H, int num_atoms, int nCtMode)
Definition ichimake.c:2153
int MergeZzInHillFormula(INCHI_IOS_STRING *strbuf)
Definition ichiprt1.c:5578
int bin_AuxTautTrans(INCHI_SORT *pINChISort, INCHI_SORT *pINChISort2, AT_NUMB **pTrans_n, AT_NUMB **pTrans_s, int bOutType, int num_components)
Definition ichiprt3.c:4119
int MakeHString(int bAddDelim, S_CHAR *LinearCT, int nLenCT, INCHI_IOS_STRING *buf, int nCtMode, int *bOverflow)
Definition ichiprt2.c:845
const char sCompDelim[]
Definition ichiprt1.c:241
int str_Sp3(INCHI_SORT *pINChISort, INCHI_SORT *pINChISort2, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int TAUT_MODE, int num_components, int bRelRac, int bSecondNonTautPass, int bOmitRepetitions, int bUseMulipliers)
Produce tetrahedral stereo substring of the whole structure InChI string.
Definition ichiprt3.c:980
int str_Sp2(INCHI_SORT *pINChISort, INCHI_SORT *pINChISort2, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int TAUT_MODE, int num_components, int bSecondNonTautPass, int bOmitRepetitions, int bUseMulipliers)
Produce double bond stereo substring of the whole structure InChI string.
Definition ichiprt3.c:736
int str_AuxInvSp3(INCHI_SORT *pINChISort, INCHI_SORT *pINChISort2, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int TAUT_MODE, int num_components, int bSecondNonTautPass, int bOmitRepetitions, int bUseMulipliers)
Definition ichiprt3.c:2343
int str_IsoAtoms(INCHI_SORT *pINChISort, INCHI_SORT *pINChISort2, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int TAUT_MODE, int num_components, int bAbcNumbers, int bSecondNonTautPass, int bOmitRepetitions, int bUseMulipliers)
Definition ichiprt3.c:1257
int MakeEquString(AT_NUMB *LinearCT, int nLenCT, int bAddDelim, INCHI_IOS_STRING *strbuf, int nCtMode, int *bOverflow)
Definition ichiprt2.c:1615
int MakeMult(int mult, const char *szTailingDelim, INCHI_IOS_STRING *buf, int nCtMode, int *bOverflow)
Definition ichiprt2.c:431
int str_H_atoms(INCHI_SORT *pINChISort, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int ATOM_MODE, int TAUT_MODE, int num_components, int bUseMulipliers)
Definition ichiprt3.c:309
int str_HillFormula2(INCHI_SORT *pINChISort, INCHI_SORT *pINChISort2, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int num_components, int bUseMulipliers)
Definition ichiprt3.c:137
int str_AuxInvIsoSp3Numb(CANON_GLOBALS *pCG, INCHI_SORT *pINChISort, INCHI_SORT *pINChISort2, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int TAUT_MODE, int num_components, int bSecondNonTautPass, int bOmitRepetitions)
Definition ichiprt3.c:3603
int str_Connections(CANON_GLOBALS *pCG, INCHI_SORT *pINChISort, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int ATOM_MODE, int num_components, int bUseMulipliers)
Definition ichiprt3.c:224
int MakeSlayerString(ORIG_ATOM_DATA *orig_inp_data, INCHI_SORT *pINChISort, INCHI_IOS_STRING *strbuf, int bOutType, int num_components, int nCtMode, int *bOverflow)
Creates the string for the s - layer based on the enhanced stereochemistry information.
Definition ichiprt2.c:2327
int FillOutINChI(INChI *pINChI, INChI_Aux *pINChI_Aux, int num_atoms, int num_at_tg, int num_removed_H, sp_ATOM *at, inp_ATOM *norm_at, CANON_STAT *pCS, CANON_GLOBALS *pCG, int bTautomeric, INCHI_MODE nUserMode, char *pStrErrStruct, int bNoWarnings)
Definition ichimak2.c:1072
int MakeIsoTautString(INChI_IsotopicTGroup *IsotopicTGroup, int nNumberOfIsotopicTGroups, INCHI_IOS_STRING *strbuf, int nCtMode, int *bOverflow)
Definition ichiprt2.c:1859
int str_AuxEqu(INCHI_SORT *pINChISort, INCHI_SORT *pINChISort2, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int TAUT_MODE, int num_components, int bSecondNonTautPass, int bOmitRepetitions, int bUseMulipliers)
Definition ichiprt3.c:2134
int str_AuxInvIsoSp3(INCHI_SORT *pINChISort, INCHI_SORT *pINChISort2, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int TAUT_MODE, int num_components, int bSecondNonTautPass, int bOmitRepetitions, int bUseMulipliers)
Definition ichiprt3.c:3241
int str_StereoAbsInv(INCHI_SORT *pINChISort, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int num_components)
Output absolute stereo inversion substring of the whole structure InChI string.
Definition ichiprt3.c:1219
int str_HillFormula(INCHI_SORT *pINChISort, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int num_components, int bUseMulipliers)
Definition ichiprt3.c:60
int str_AuxTgroupEqu(INCHI_SORT *pINChISort, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int TAUT_MODE, int num_components, int bUseMulipliers)
Definition ichiprt3.c:3981
int MakeHillFormulaString(char *szHillFormula, INCHI_IOS_STRING *strbuf, int *bOverflow)
Definition ichimak2.c:121
int MakeIsoAtomString(INChI_IsotopicAtom *IsotopicAtom, int nNumberOfIsotopicAtoms, INCHI_IOS_STRING *strbuf, int nCtMode, int *bOverflow)
Definition ichiprt2.c:1701
int str_FixedH_atoms(INCHI_SORT *pINChISort, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int ATOM_MODE, int num_components, int bUseMulipliers)
Definition ichiprt3.c:618
int MakeTautString(AT_NUMB *LinearCT, int nLenCT, int bAddDelim, INCHI_IOS_STRING *strbuf, int nCtMode, int *bOverflow)
Definition ichiprt2.c:1167
int str_AuxIsoTgroupEqu(INCHI_SORT *pINChISort, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int TAUT_MODE, int num_components, int bOmitRepetitions, int bUseMulipliers)
Definition ichiprt3.c:4264
int MakeDelim(const char *szTailingDelim, INCHI_IOS_STRING *buf, int *bOverflow)
Adds the delimiter to the string buffer if it is not empty and there is no overflow.
Definition ichiprt2.c:532
int str_Charge2(INCHI_SORT *pINChISort, INCHI_SORT *pINChISort2, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int num_components, int bSecondNonTautPass, int bOmitRepetitions, int bUseMulipliers)
Definition ichiprt3.c:427
int MakeAbcNumber(char *szString, int nStringLen, const char *szLeadingDelim, int nValue)
Definition ichiprt2.c:2461
int str_AuxIsoEqu(INCHI_SORT *pINChISort, INCHI_SORT *pINChISort2, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int TAUT_MODE, int num_components, int bSecondNonTautPass, int bOmitRepetitions, int bUseMulipliers)
Definition ichiprt3.c:2990
int MakeEqStr(const char *szTailingDelim, int mult, INCHI_IOS_STRING *buf, int *bOverflow)
Definition ichiprt2.c:562
#define nNum_H(ICOMPONENT)
unsigned short AT_NUMB
Definition ichisize.h:45
unsigned long INCHI_MODE
Definition ichisize.h:60
signed char S_CHAR
Definition inchi_api.h:113
Definition ichicant.h:338
Definition ichicant.h:204
Structure describing original atom data.
Definition inpdef.h:433