InChI
 
Loading...
Searching...
No Matches
ichiprt1.c File Reference
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <math.h>
#include "mode.h"
#include "ichister.h"
#include "ichimain.h"
#include "ichimake.h"
#include "ichi_io.h"
#include "bcf_s.h"
#include "logging.h"
+ Include dependency graph for ichiprt1.c:

Data Structures

struct  tagInchiTag
 

Macros

#define SP(N)   (x_space+sizeof(x_space)-1-(N))
 
#define NOT_YET_I2I_FOR_POLYMERS   40
 
#define OUT_NONTAUT   OUT_NN /* was OUT_NT until 2004-04-07 */
 
#define MIN_BOND_LENGTH   (1.0e-6)
 
#define ORIG_STR_BUFLEN   (7*MAXVAL+2) /* > 7*MAXVAL+2 = 142 */
 

Typedefs

typedef struct tagInchiTag INCHI_TAG
 
typedef enum tagIdentLblOrd IDENT_LBL_ORD
 
typedef enum tagIdentLblBit IDENT_LBL_BIT
 
typedef enum tagAuxLblOrd AUX_LBL_ORD
 
typedef enum tagAuxLblBit AUX_LBL_BIT
 

Enumerations

enum  tagIdentLblOrd {
  IL_FIXH_ORD , IL_ISOT_ORD , IL_STER_ORD , IL_VERS_ORD ,
  IL_FML__ORD , IL_CONN_ORD , IL_ALLH_ORD , IL_CHRG_ORD ,
  IL_PROT_ORD , IL_DBND_ORD , IL_SP3S_ORD , IL_INVS_ORD ,
  IL_TYPS_ORD , IL_ATMS_ORD , IL_XCGA_ORD , IL_FMLF_ORD ,
  IL_HFIX_ORD , IL_TRNS_ORD , IL_REC__ORD , IL_MAX_ORD
}
 
enum  tagIdentLblBit {
  IL_FIXH = 1 << IL_FIXH_ORD , IL_ISOT = 1 << IL_ISOT_ORD , IL_STER = 1 << IL_STER_ORD , IL_VERS = 1 << IL_VERS_ORD ,
  IL_FML_ = 1 << IL_FML__ORD , IL_CONN = 1 << IL_CONN_ORD , IL_ALLH = 1 << IL_ALLH_ORD , IL_CHRG = 1 << IL_CHRG_ORD ,
  IL_PROT = 1 << IL_PROT_ORD , IL_DBND = 1 << IL_DBND_ORD , IL_SP3S = 1 << IL_SP3S_ORD , IL_INVS = 1 << IL_INVS_ORD ,
  IL_TYPS = 1 << IL_TYPS_ORD , IL_ATMS = 1 << IL_ATMS_ORD , IL_XCGA = 1 << IL_XCGA_ORD , IL_FMLF = 1 << IL_FMLF_ORD ,
  IL_HFIX = 1 << IL_HFIX_ORD , IL_TRNS = 1 << IL_TRNS_ORD , IL_REC_ = 1 << IL_REC__ORD
}
 
enum  tagAuxLblOrd {
  AL_FIXH_ORD , AL_ISOT_ORD , AL_STER_ORD , AL_REVR_ORD ,
  AL_VERS_ORD , AL_NORM_ORD , AL_ANBR_ORD , AL_AEQU_ORD ,
  AL_GEQU_ORD , AL_SP3I_ORD , AL_SP3N_ORD , AL_CRV__ORD ,
  AL_ATMR_ORD , AL_BNDR_ORD , AL_XYZR_ORD , AL_FIXN_ORD ,
  AL_ISON_ORD , AL_REC__ORD , AL_MAX_ORD
}
 
enum  tagAuxLblBit {
  AL_FIXH = 1 << AL_FIXH_ORD , AL_ISOT = 1 << AL_ISOT_ORD , AL_STER = 1 << AL_STER_ORD , AL_REVR = 1 << AL_REVR_ORD ,
  AL_VERS = 1 << AL_VERS_ORD , AL_NORM = 1 << AL_NORM_ORD , AL_ANBR = 1 << AL_ANBR_ORD , AL_AEQU = 1 << AL_AEQU_ORD ,
  AL_GEQU = 1 << AL_GEQU_ORD , AL_SP3I = 1 << AL_SP3I_ORD , AL_SP3N = 1 << AL_SP3N_ORD , AL_CRV_ = 1 << AL_CRV__ORD ,
  AL_ATMR = 1 << AL_ATMR_ORD , AL_BNDR = 1 << AL_BNDR_ORD , AL_XYZR = 1 << AL_XYZR_ORD , AL_FIXN = 1 << AL_FIXN_ORD ,
  AL_ISON = 1 << AL_ISON_ORD , AL_REC_ = 1 << AL_REC__ORD
}
 

Functions

static int str_LineEnd (const char *tag, int *bOverflow, INCHI_IOS_STRING *buf, int ind, int bPlainTextTags)
 
static int CleanOrigCoord (MOL_COORD szCoord, int delim)
 
static int WriteOrigCoord (int num_inp_atoms, MOL_COORD *szMolCoord, int *i, char *szBuf, int buf_len)
 
static int WriteOrigAtoms (CANON_GLOBALS *pCG, int num_inp_atoms, inp_ATOM *at, int *i, char *szBuf, int buf_len, STRUCT_DATA *sd)
 
static int WriteOrigBonds (CANON_GLOBALS *pCG, int num_inp_atoms, inp_ATOM *at, int *i, char *szBuf, int buf_len, STRUCT_DATA *sd)
 
static void GetSaveOptLetters (unsigned char save_opt_bits, char *let1, char *let2)
 
static int OutputINCHI_VersionAndKind (INCHI_IOSTREAM *out_file, INCHI_IOS_STRING *strbuf, int bINChIOutputOptions, int is_beta, char *pLF, char *pTAB)
 
static int OutputINCHI_MainLayerFormula (CANON_GLOBALS *pCG, INCHI_IOSTREAM *out_file, INCHI_IOS_STRING *strbuf, int num_components2[], int *INCHI_basic_or_INCHI_reconnected, INCHI_OUT_CTL *io, char *pLF, char *pTAB)
 
static int OutputINCHI_MainLayerConnections (CANON_GLOBALS *pCG, INCHI_IOSTREAM *out_file, INCHI_IOS_STRING *strbuf, int num_components2[], int *INCHI_basic_or_INCHI_reconnected, INCHI_OUT_CTL *io, char *pLF, char *pTAB)
 
static int OutputINCHI_MainLayerHydrogens (CANON_GLOBALS *pCG, INCHI_IOSTREAM *out_file, INCHI_IOS_STRING *strbuf, int num_components2[], int *INCHI_basic_or_INCHI_reconnected, INCHI_OUT_CTL *io, char *pLF, char *pTAB)
 
static int OutputINCHI_ChargeAndRemovedAddedProtonsLayers (CANON_GLOBALS *pCG, INCHI_IOSTREAM *out_file, INCHI_IOS_STRING *strbuf, INCHI_OUT_CTL *io, char *pLF, char *pTAB)
 
static int OutputINCHI_StereoLayer (CANON_GLOBALS *pCG, INCHI_IOSTREAM *out_file, INCHI_IOS_STRING *strbuf, INCHI_OUT_CTL *io, char *pLF, char *pTAB)
 
static int OutputINCHI_IsotopicLayer (CANON_GLOBALS *pCG, INCHI_IOSTREAM *out_file, INCHI_IOS_STRING *strbuf, int *INCHI_basic_or_INCHI_reconnected, INCHI_OUT_CTL *io, char *pLF, char *pTAB)
 
static int OutputINCHI_FixedHLayerWithSublayers (CANON_GLOBALS *pCG, INCHI_IOSTREAM *out_file, INCHI_IOS_STRING *strbuf, int *INCHI_basic_or_INCHI_reconnected, INCHI_OUT_CTL *io, char *pLF, char *pTAB, int *then_goto_repeat)
 
static int OutputINCHI_PolymerLayer (CANON_GLOBALS *pCG, INCHI_IOSTREAM *out_file, INCHI_IOS_STRING *strbuf, int *INCHI_basic_or_INCHI_reconnected, ORIG_ATOM_DATA *orig_inp_data, ORIG_STRUCT *pOrigStruct, INCHI_OUT_CTL *io, char *pLF, char *pTAB)
 
static int OutputINCHI_PolymerLayer_SingleUnit (OAD_PolymerUnit *u, int bPolymers, int total_star_atoms, int *n_used_stars, OAD_AtProps *aprops, int *cano_nums, ORIG_ATOM_DATA *orig_inp_data, ORIG_STRUCT *pOrigStruct, INCHI_IOS_STRING *strbuf)
 
static int OutputAUXINFO_HeaderAndNormalization_type (CANON_GLOBALS *pCG, INCHI_IOSTREAM *out_file, INCHI_IOS_STRING *strbuf, int bINChIOutputOptions, int *INCHI_basic_or_INCHI_reconnected, int num_components2[], INCHI_OUT_CTL *io, char *pLF, char *pTAB)
 
static int OutputAUXINFO_OriginalNumbersAndEquivalenceClasses (CANON_GLOBALS *pCG, INCHI_IOSTREAM *out_file, INCHI_IOS_STRING *strbuf, int num_components2[], INCHI_OUT_CTL *io, char *pLF, char *pTAB)
 
static int OutputAUXINFO_TautomericGroupsEquivalence (CANON_GLOBALS *pCG, INCHI_IOSTREAM *out_file, INCHI_IOS_STRING *strbuf, INCHI_OUT_CTL *io)
 
static int OutputAUXINFO_Stereo (CANON_GLOBALS *pCG, INCHI_IOSTREAM *out_file, INCHI_IOS_STRING *strbuf, INCHI_OUT_CTL *io, char *pLF, char *pTAB)
 
static int OutputAUXINFO_IsotopicInfo (CANON_GLOBALS *pCG, INCHI_IOSTREAM *out_file, INCHI_IOS_STRING *strbuf, int *INCHI_basic_or_INCHI_reconnected, INCHI_OUT_CTL *io, char *pLF, char *pTAB)
 
static int OutputAUXINFO_ChargesRadicalsAndUnusualValences (CANON_GLOBALS *pCG, INCHI_IOSTREAM *out_file, INCHI_IOS_STRING *strbuf, INCHI_OUT_CTL *io, char *pLF, char *pTAB)
 
static int OutputAUXINFO_ReversibilityInfo (CANON_GLOBALS *pCG, INCHI_IOSTREAM *out_file, INCHI_IOS_STRING *strbuf, ORIG_STRUCT *pOrigStruct, INCHI_OUT_CTL *io, char *pLF, char *pTAB)
 
static int OutputAUXINFO_PolymerInfo (CANON_GLOBALS *pCG, INCHI_IOSTREAM *out_file, INCHI_IOS_STRING *strbuf, ORIG_STRUCT *pOrigStruct, INCHI_OUT_CTL *io, char *pLF, char *pTAB)
 
static int InternallyGetCanoNumsAndComponentNums (CANON_GLOBALS *pCG, INCHI_IOS_STRING *strbuf, INCHI_OUT_CTL *io, int nat, int *cano_nums, int *compnt_nums)
 
static int CountPseudoElementInFormula (const char *pseudo, char *s)
 
static int IsBondAtomNumsLesser (int *bond1, int *bond2)
 
static void inchi_sort_int_pair_ascending (int *a, int *b)
 
static void MergeZzInStrHillFormulaComponent (char *s)
 
char * szGetTag (const INCHI_TAG *Tag, int nTag, int bTag, char *szTag, int *bAlways)
 
int OutputINChIPlainError (INCHI_IOSTREAM *out_file, char *pErrorText, int bError)
 
const char * EquString (int EquVal)
 
int OutputINChI2 (CANON_GLOBALS *pCG, INCHI_IOS_STRING *strbuf, INCHI_SORT *pINChISortTautAndNonTaut2[][TAUT_NUM], int INCHI_basic_or_INCHI_reconnected, ORIG_ATOM_DATA *orig_inp_data, ORIG_STRUCT *pOrigStruct, INPUT_PARMS *ip, int bDisconnectedCoord, int bOutputType, int bINChIOutputOptions, int num_components2[], int num_non_taut2[], int num_taut2[], INCHI_IOSTREAM *output_file, INCHI_IOSTREAM *log_file, int num_input_struct, int *pSortPrintINChIFlags, unsigned char save_opt_bits)
 
int OutputINChI1 (CANON_GLOBALS *pCG, INCHI_IOS_STRING *strbuf, INCHI_SORT *pINChISortTautAndNonTaut2[][TAUT_NUM], int INCHI_basic_or_INCHI_reconnected, ORIG_ATOM_DATA *orig_inp_data, ORIG_STRUCT *pOrigStruct, INPUT_PARMS *ip, int bDisconnectedCoord, int bOutputType, int bINChIOutputOptions, int num_components2[], int num_non_taut2[], int num_taut2[], INCHI_IOSTREAM *out_file, INCHI_IOSTREAM *log_file, int num_input_struct, int *pSortPrintINChIFlags, unsigned char save_opt_bits)
 
int OrigStruct_FillOut (CANON_GLOBALS *pCG, ORIG_ATOM_DATA *orig_inp_data, ORIG_STRUCT *pOrigStruct, STRUCT_DATA *sd)
 
void OrigStruct_Free (ORIG_STRUCT *pOrigStruct)
 
void set_line_separators (int bINChIOutputOptions, char **pLF, char **pTAB)
 
void EditINCHI_HidePolymerZz (INCHI_IOSTREAM *out, int n_pzz, int n_zy)
 
int MergeZzInHillFormula (INCHI_IOS_STRING *strbuf)
 

Variables

const char sCompDelim [] = ";"
 
const char sIdenticalValues [] = "*"
 
const char x_space [] = " "
 
const char x_inchi [] = INCHI_NAME
 
const char x_inchi_ver [] = "version"
 
const char x_curr_ver [] = INCHI_VERSION
 
const char x_structure [] = "structure"
 
const char x_number [] = "number"
 
const char x_header [] = "id.name"
 
const char x_value [] = "id.value"
 
const char x_empty [] = ""
 
const char x_type [] = "type"
 
const char x_message [] = "message"
 
const char x_text [] = "value"
 
const char x_ferr [] = "fatal (aborted)"
 
const char x_err [] = "error (no InChI)"
 
const char x_warn [] = "warning"
 
const char x_basic [] = "identifier"
 
const char x_tautomeric [] = "mobile-H"
 
const char x_reconnected [] = "reconnected"
 
const char x_ver [] = "version"
 
const char x_type_alpha [] = "alpha"
 
const char x_type_numer [] = "numeric"
 
const char x_type_predec [] = "sct"
 
const char x_type_normal [] = "normal"
 
const char x_type_short [] = "compressed"
 
const char x_basic_layer [] = "basic"
 
const char x_aux_basic [] = "identifier.auxiliary-info"
 
const char x_aux_comm [] = "!-- This section is NOT a part of the identifier, it is not unique --"
 
const char x_ign_uu_sp2 [] = "omit_undef_dbond"
 
const char x_ign_uu_sp3 [] = "omit_undef_sp3"
 
const char x_line_opening [] = "<"
 
const char x_line_closing [] = "</"
 
const char x_close_line [] = ">"
 
const char x_abs [] = "1"
 
const char x_rel [] = "2"
 
const char x_rac [] = "3"
 
const INCHI_TAG IdentLbl []
 
const INCHI_TAG AuxLbl []
 
const int MAX_TAG_NUM = inchi_max( (short) IL_MAX_ORD, (short) AL_MAX_ORD )
 

Macro Definition Documentation

◆ MIN_BOND_LENGTH

#define MIN_BOND_LENGTH   (1.0e-6)

◆ NOT_YET_I2I_FOR_POLYMERS

#define NOT_YET_I2I_FOR_POLYMERS   40

◆ ORIG_STR_BUFLEN

#define ORIG_STR_BUFLEN   (7*MAXVAL+2) /* > 7*MAXVAL+2 = 142 */

◆ OUT_NONTAUT

#define OUT_NONTAUT   OUT_NN /* was OUT_NT until 2004-04-07 */

◆ SP

#define SP (   N)    (x_space+sizeof(x_space)-1-(N))

Typedef Documentation

◆ AUX_LBL_BIT

typedef enum tagAuxLblBit AUX_LBL_BIT

◆ AUX_LBL_ORD

typedef enum tagAuxLblOrd AUX_LBL_ORD

◆ IDENT_LBL_BIT

◆ IDENT_LBL_ORD

◆ INCHI_TAG

typedef struct tagInchiTag INCHI_TAG

Enumeration Type Documentation

◆ tagAuxLblBit

Enumerator
AL_FIXH 
AL_ISOT 
AL_STER 
AL_REVR 
AL_VERS 
AL_NORM 
AL_ANBR 
AL_AEQU 
AL_GEQU 
AL_SP3I 
AL_SP3N 
AL_CRV_ 
AL_ATMR 
AL_BNDR 
AL_XYZR 
AL_FIXN 
AL_ISON 
AL_REC_ 

◆ tagAuxLblOrd

Enumerator
AL_FIXH_ORD 
AL_ISOT_ORD 
AL_STER_ORD 
AL_REVR_ORD 
AL_VERS_ORD 
AL_NORM_ORD 
AL_ANBR_ORD 
AL_AEQU_ORD 
AL_GEQU_ORD 
AL_SP3I_ORD 
AL_SP3N_ORD 
AL_CRV__ORD 
AL_ATMR_ORD 
AL_BNDR_ORD 
AL_XYZR_ORD 
AL_FIXN_ORD 
AL_ISON_ORD 
AL_REC__ORD 
AL_MAX_ORD 

◆ tagIdentLblBit

Enumerator
IL_FIXH 
IL_ISOT 
IL_STER 
IL_VERS 
IL_FML_ 
IL_CONN 
IL_ALLH 
IL_CHRG 
IL_PROT 
IL_DBND 
IL_SP3S 
IL_INVS 
IL_TYPS 
IL_ATMS 
IL_XCGA 
IL_FMLF 
IL_HFIX 
IL_TRNS 
IL_REC_ 

◆ tagIdentLblOrd

Enumerator
IL_FIXH_ORD 
IL_ISOT_ORD 
IL_STER_ORD 
IL_VERS_ORD 
IL_FML__ORD 
IL_CONN_ORD 
IL_ALLH_ORD 
IL_CHRG_ORD 
IL_PROT_ORD 
IL_DBND_ORD 
IL_SP3S_ORD 
IL_INVS_ORD 
IL_TYPS_ORD 
IL_ATMS_ORD 
IL_XCGA_ORD 
IL_FMLF_ORD 
IL_HFIX_ORD 
IL_TRNS_ORD 
IL_REC__ORD 
IL_MAX_ORD 

Function Documentation

◆ CleanOrigCoord()

int CleanOrigCoord ( MOL_COORD  szCoord,
int  delim 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ CountPseudoElementInFormula()

int CountPseudoElementInFormula ( const char *  pseudo,
char *  s 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ EditINCHI_HidePolymerZz()

void EditINCHI_HidePolymerZz ( INCHI_IOSTREAM out,
int  n_pzz,
int  n_zy 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ EquString()

const char * EquString ( int  EquVal)
+ Here is the caller graph for this function:

◆ GetSaveOptLetters()

void GetSaveOptLetters ( unsigned char  save_opt_bits,
char *  let1,
char *  let2 
)
static
+ Here is the caller graph for this function:

◆ inchi_sort_int_pair_ascending()

static void inchi_sort_int_pair_ascending ( int *  a,
int *  b 
)
static
+ Here is the caller graph for this function:

◆ InternallyGetCanoNumsAndComponentNums()

int InternallyGetCanoNumsAndComponentNums ( CANON_GLOBALS pCG,
INCHI_IOS_STRING strbuf,
INCHI_OUT_CTL io,
int  nat,
int *  cano_nums,
int *  compnt_nums 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ IsBondAtomNumsLesser()

int IsBondAtomNumsLesser ( int *  bond1,
int *  bond2 
)
static
+ Here is the caller graph for this function:

◆ MergeZzInHillFormula()

int MergeZzInHillFormula ( INCHI_IOS_STRING strbuf)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MergeZzInStrHillFormulaComponent()

void MergeZzInStrHillFormulaComponent ( char *  s)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OrigStruct_FillOut()

int OrigStruct_FillOut ( CANON_GLOBALS pCG,
ORIG_ATOM_DATA orig_inp_data,
ORIG_STRUCT pOrigStruct,
STRUCT_DATA sd 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OrigStruct_Free()

void OrigStruct_Free ( ORIG_STRUCT pOrigStruct)
+ Here is the caller graph for this function:

◆ OutputAUXINFO_ChargesRadicalsAndUnusualValences()

int OutputAUXINFO_ChargesRadicalsAndUnusualValences ( CANON_GLOBALS pCG,
INCHI_IOSTREAM out_file,
INCHI_IOS_STRING strbuf,
INCHI_OUT_CTL io,
char *  pLF,
char *  pTAB 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OutputAUXINFO_HeaderAndNormalization_type()

int OutputAUXINFO_HeaderAndNormalization_type ( CANON_GLOBALS pCG,
INCHI_IOSTREAM out_file,
INCHI_IOS_STRING strbuf,
int  bINChIOutputOptions,
int *  INCHI_basic_or_INCHI_reconnected,
int  num_components2[],
INCHI_OUT_CTL io,
char *  pLF,
char *  pTAB 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OutputAUXINFO_IsotopicInfo()

int OutputAUXINFO_IsotopicInfo ( CANON_GLOBALS pCG,
INCHI_IOSTREAM out_file,
INCHI_IOS_STRING strbuf,
int *  INCHI_basic_or_INCHI_reconnected,
INCHI_OUT_CTL io,
char *  pLF,
char *  pTAB 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OutputAUXINFO_OriginalNumbersAndEquivalenceClasses()

int OutputAUXINFO_OriginalNumbersAndEquivalenceClasses ( CANON_GLOBALS pCG,
INCHI_IOSTREAM out_file,
INCHI_IOS_STRING strbuf,
int  num_components2[],
INCHI_OUT_CTL io,
char *  pLF,
char *  pTAB 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OutputAUXINFO_PolymerInfo()

int OutputAUXINFO_PolymerInfo ( CANON_GLOBALS pCG,
INCHI_IOSTREAM out_file,
INCHI_IOS_STRING strbuf,
ORIG_STRUCT pOrigStruct,
INCHI_OUT_CTL io,
char *  pLF,
char *  pTAB 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OutputAUXINFO_ReversibilityInfo()

int OutputAUXINFO_ReversibilityInfo ( CANON_GLOBALS pCG,
INCHI_IOSTREAM out_file,
INCHI_IOS_STRING strbuf,
ORIG_STRUCT pOrigStruct,
INCHI_OUT_CTL io,
char *  pLF,
char *  pTAB 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OutputAUXINFO_Stereo()

int OutputAUXINFO_Stereo ( CANON_GLOBALS pCG,
INCHI_IOSTREAM out_file,
INCHI_IOS_STRING strbuf,
INCHI_OUT_CTL io,
char *  pLF,
char *  pTAB 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OutputAUXINFO_TautomericGroupsEquivalence()

int OutputAUXINFO_TautomericGroupsEquivalence ( CANON_GLOBALS pCG,
INCHI_IOSTREAM out_file,
INCHI_IOS_STRING strbuf,
INCHI_OUT_CTL io 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OutputINChI1()

int OutputINChI1 ( CANON_GLOBALS pCG,
INCHI_IOS_STRING strbuf,
INCHI_SORT pINChISortTautAndNonTaut2[][TAUT_NUM],
int  INCHI_basic_or_INCHI_reconnected,
ORIG_ATOM_DATA orig_inp_data,
ORIG_STRUCT pOrigStruct,
INPUT_PARMS ip,
int  bDisconnectedCoord,
int  bOutputType,
int  bINChIOutputOptions,
int  num_components2[],
int  num_non_taut2[],
int  num_taut2[],
INCHI_IOSTREAM out_file,
INCHI_IOSTREAM log_file,
int  num_input_struct,
int *  pSortPrintINChIFlags,
unsigned char  save_opt_bits 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OutputINChI2()

int OutputINChI2 ( CANON_GLOBALS pCG,
INCHI_IOS_STRING strbuf,
INCHI_SORT pINChISortTautAndNonTaut2[][TAUT_NUM],
int  INCHI_basic_or_INCHI_reconnected,
ORIG_ATOM_DATA orig_inp_data,
ORIG_STRUCT pOrigStruct,
INPUT_PARMS ip,
int  bDisconnectedCoord,
int  bOutputType,
int  bINChIOutputOptions,
int  num_components2[],
int  num_non_taut2[],
int  num_taut2[],
INCHI_IOSTREAM output_file,
INCHI_IOSTREAM log_file,
int  num_input_struct,
int *  pSortPrintINChIFlags,
unsigned char  save_opt_bits 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OutputINCHI_ChargeAndRemovedAddedProtonsLayers()

int OutputINCHI_ChargeAndRemovedAddedProtonsLayers ( CANON_GLOBALS pCG,
INCHI_IOSTREAM out_file,
INCHI_IOS_STRING strbuf,
INCHI_OUT_CTL io,
char *  pLF,
char *  pTAB 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OutputINCHI_FixedHLayerWithSublayers()

int OutputINCHI_FixedHLayerWithSublayers ( CANON_GLOBALS pCG,
INCHI_IOSTREAM out_file,
INCHI_IOS_STRING strbuf,
int *  INCHI_basic_or_INCHI_reconnected,
INCHI_OUT_CTL io,
char *  pLF,
char *  pTAB,
int *  then_goto_repeat 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OutputINCHI_IsotopicLayer()

int OutputINCHI_IsotopicLayer ( CANON_GLOBALS pCG,
INCHI_IOSTREAM out_file,
INCHI_IOS_STRING strbuf,
int *  INCHI_basic_or_INCHI_reconnected,
INCHI_OUT_CTL io,
char *  pLF,
char *  pTAB 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OutputINCHI_MainLayerConnections()

int OutputINCHI_MainLayerConnections ( CANON_GLOBALS pCG,
INCHI_IOSTREAM out_file,
INCHI_IOS_STRING strbuf,
int  num_components2[],
int *  INCHI_basic_or_INCHI_reconnected,
INCHI_OUT_CTL io,
char *  pLF,
char *  pTAB 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OutputINCHI_MainLayerFormula()

int OutputINCHI_MainLayerFormula ( CANON_GLOBALS pCG,
INCHI_IOSTREAM out_file,
INCHI_IOS_STRING strbuf,
int  num_components2[],
int *  INCHI_basic_or_INCHI_reconnected,
INCHI_OUT_CTL io,
char *  pLF,
char *  pTAB 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OutputINCHI_MainLayerHydrogens()

int OutputINCHI_MainLayerHydrogens ( CANON_GLOBALS pCG,
INCHI_IOSTREAM out_file,
INCHI_IOS_STRING strbuf,
int  num_components2[],
int *  INCHI_basic_or_INCHI_reconnected,
INCHI_OUT_CTL io,
char *  pLF,
char *  pTAB 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OutputINCHI_PolymerLayer()

static int OutputINCHI_PolymerLayer ( CANON_GLOBALS pCG,
INCHI_IOSTREAM out_file,
INCHI_IOS_STRING strbuf,
int *  INCHI_basic_or_INCHI_reconnected,
ORIG_ATOM_DATA orig_inp_data,
ORIG_STRUCT pOrigStruct,
INCHI_OUT_CTL io,
char *  pLF,
char *  pTAB 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OutputINCHI_PolymerLayer_SingleUnit()

static int OutputINCHI_PolymerLayer_SingleUnit ( OAD_PolymerUnit u,
int  bPolymers,
int  total_star_atoms,
int *  n_used_stars,
OAD_AtProps aprops,
int *  cano_nums,
ORIG_ATOM_DATA orig_inp_data,
ORIG_STRUCT pOrigStruct,
INCHI_IOS_STRING strbuf 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OutputINCHI_StereoLayer()

int OutputINCHI_StereoLayer ( CANON_GLOBALS pCG,
INCHI_IOSTREAM out_file,
INCHI_IOS_STRING strbuf,
INCHI_OUT_CTL io,
char *  pLF,
char *  pTAB 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OutputINCHI_VersionAndKind()

int OutputINCHI_VersionAndKind ( INCHI_IOSTREAM out_file,
INCHI_IOS_STRING strbuf,
int  bINChIOutputOptions,
int  is_beta,
char *  pLF,
char *  pTAB 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OutputINChIPlainError()

int OutputINChIPlainError ( INCHI_IOSTREAM out_file,
char *  pErrorText,
int  bError 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ set_line_separators()

void set_line_separators ( int  bINChIOutputOptions,
char **  pLF,
char **  pTAB 
)
+ Here is the caller graph for this function:

◆ str_LineEnd()

int str_LineEnd ( const char *  tag,
int *  bOverflow,
INCHI_IOS_STRING buf,
int  ind,
int  bPlainTextTags 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ szGetTag()

char * szGetTag ( const INCHI_TAG Tag,
int  nTag,
int  bTag,
char *  szTag,
int *  bAlways 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ WriteOrigAtoms()

int WriteOrigAtoms ( CANON_GLOBALS pCG,
int  num_inp_atoms,
inp_ATOM at,
int *  i,
char *  szBuf,
int  buf_len,
STRUCT_DATA sd 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ WriteOrigBonds()

int WriteOrigBonds ( CANON_GLOBALS pCG,
int  num_inp_atoms,
inp_ATOM at,
int *  i,
char *  szBuf,
int  buf_len,
STRUCT_DATA sd 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ WriteOrigCoord()

int WriteOrigCoord ( int  num_inp_atoms,
MOL_COORD szMolCoord,
int *  i,
char *  szBuf,
int  buf_len 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Variable Documentation

◆ AuxLbl

const INCHI_TAG AuxLbl[]
Initial value:
=
{
{ "/", "fixed_H", "fixed-H", 0 },
{ "/", "isotopic", "isotopic", 0 },
{ "/", "abs_stereo_inverted", "stereo.abs.inverted", 0 },
{ "/", "reversibility", "reversibility", 0 },
{ "", "version", "version", 1 },
{ "/", "normalization_type", "norm-type", 1 },
{ "/N:", "original_atom_numbers", "atom.orig-nbr", 1 },
{ "/E:", "atom_equivalence", "atom.equivalence", 0 },
{ "/gE:", "group_equivalence", "group.equivalence", 0 },
{ "/it:", "sp3", "sp3", 0 },
{ "/iN:", "original_atom_numbers", "atom.orig-nbr", 0 },
{ "/CRV:", "charge_radical_valence", "charges-rad-val", 0 },
{ "/rA:", "atoms", "atoms", 0 },
{ "/rB:", "bonds", "bonds", 0 },
{ "/rC:", "xyz", "xyz", 0 },
{ "/F:", "original_atom_numbers", "atom.orig-nbr", 1 },
{ "/I:", "original_atom_numbers", "atom.orig-nbr", 1 },
{ "/R:", "reconnected bond(s) to metal(s) part", "", 1 }
}

◆ IdentLbl

const INCHI_TAG IdentLbl[]
Initial value:
=
{
{ "/", "fixed_H", "fixed-H", 0 },
{ "/", "isotopic", "isotopic", 0 },
{ "/", "stereo", "stereo", 0 },
{ "" , "version", "version", 1 },
{ "/", "formula", "formula", 1 },
{ "/c", "connections", "connections", 1 },
{ "/h", "H_atoms", "H", 1 },
{ "/q", "charge", "charge", 1 },
{ "/p", "protons", "protons", 0 },
{ "/b", "dbond", "dbond", 0 },
{ "/t", "sp3", "sp3", 0 },
{ "/m", "sp3:inverted", "abs.inverted", 0 },
{ "/s", "type (1=abs, 2=rel, 3=rac)", "type", 0 },
{ "/i", "atoms", "atoms", 1 },
{ "/h", "exchangeable_H", "H-isotopic", 1 },
{ "/f", "formula", "formula", 1 },
{ "/h", "H_fixed" , "H-fixed" , 1 },
{ "/o", "transposition", "transposition", 0 },
{ "/r", "reconnected bond(s) to metal(s) formula", "formula", 0 }
}

◆ MAX_TAG_NUM

const int MAX_TAG_NUM = inchi_max( (short) IL_MAX_ORD, (short) AL_MAX_ORD )

◆ sCompDelim

const char sCompDelim[] = ";"

◆ sIdenticalValues

const char sIdenticalValues[] = "*"

◆ x_abs

const char x_abs[] = "1"

◆ x_aux_basic

const char x_aux_basic[] = "identifier.auxiliary-info"

◆ x_aux_comm

const char x_aux_comm[] = "!-- This section is NOT a part of the identifier, it is not unique --"

◆ x_basic

const char x_basic[] = "identifier"

◆ x_basic_layer

const char x_basic_layer[] = "basic"

◆ x_close_line

const char x_close_line[] = ">"

◆ x_curr_ver

const char x_curr_ver[] = INCHI_VERSION

◆ x_empty

const char x_empty[] = ""

◆ x_err

const char x_err[] = "error (no InChI)"

◆ x_ferr

const char x_ferr[] = "fatal (aborted)"

◆ x_header

const char x_header[] = "id.name"

◆ x_ign_uu_sp2

const char x_ign_uu_sp2[] = "omit_undef_dbond"

◆ x_ign_uu_sp3

const char x_ign_uu_sp3[] = "omit_undef_sp3"

◆ x_inchi

const char x_inchi[] = INCHI_NAME

◆ x_inchi_ver

const char x_inchi_ver[] = "version"

◆ x_line_closing

const char x_line_closing[] = "</"

◆ x_line_opening

const char x_line_opening[] = "<"

◆ x_message

const char x_message[] = "message"

◆ x_number

const char x_number[] = "number"

◆ x_rac

const char x_rac[] = "3"

◆ x_reconnected

const char x_reconnected[] = "reconnected"

◆ x_rel

const char x_rel[] = "2"

◆ x_space

const char x_space[] = " "

◆ x_structure

const char x_structure[] = "structure"

◆ x_tautomeric

const char x_tautomeric[] = "mobile-H"

◆ x_text

const char x_text[] = "value"

◆ x_type

const char x_type[] = "type"

◆ x_type_alpha

const char x_type_alpha[] = "alpha"

◆ x_type_normal

const char x_type_normal[] = "normal"

◆ x_type_numer

const char x_type_numer[] = "numeric"

◆ x_type_predec

const char x_type_predec[] = "sct"

◆ x_type_short

const char x_type_short[] = "compressed"

◆ x_value

const char x_value[] = "id.value"

◆ x_ver

const char x_ver[] = "version"

◆ x_warn

const char x_warn[] = "warning"