third_party/inchi/INCHI_BASE/src/ichiprt1.c
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 )
{
    /* Original atom numbers in order of canonical numbers */
    if (num_components2[0] || num_components2[1])
    {
        szGetTag( AuxLbl, io->nTag,
                 io->bTag1 = ( io->bSecondNonTautPass ? AL_FIXN : AL_ANBR ) | io->bFhTag, io->szTag1, &io->bAlways );
        inchi_strbuf_reset( strbuf );
        io->tot_len = 0;
        /* Original numbering output */
        io->tot_len = str_AuxNumb( pCG, io->pINChISort, io->pINChISort2,
                                   strbuf, &io->bOverflow,
                                   io->bOutType, io->TAUT_MODE, io->num_components,
                                   io->bSecondNonTautPass, io->bOmitRepetitions );

        if (str_LineEnd( io->szTag1, &io->bOverflow, strbuf, -1, io->bPlainTextTags ))
        {
            return 1;
        }
        inchi_ios_print( out_file, "%s%s", strbuf->pStr, pLF );
    }

    /*
        Symmetry numbers (constit. equivalence)    /E:
    */
    if (io->bAtomEqu[io->iCurTautMode])
    {
        /*  aux equ atoms */
        /* 1. Compare to tautomeric equivalence (in case of second, non-taut, pass only) */
        /* 2. Compare to the previous component if (1) failed to find equivalence */
        szGetTag( AuxLbl, io->nTag, io->bTag1 = AL_AEQU | io->bFhTag, io->szTag1, &io->bAlways );
        inchi_strbuf_reset( strbuf );
        io->tot_len = 0;
        io->tot_len = str_AuxEqu( io->pINChISort, io->pINChISort2,
                              strbuf, &io->bOverflow, io->bOutType, io->TAUT_MODE,
                              io->num_components, io->bSecondNonTautPass,
                              io->bOmitRepetitions, io->bUseMulipliers );

        if (str_LineEnd( io->szTag1, &io->bOverflow, strbuf, -1, io->bPlainTextTags ))
        {
            return 1;
        }
        inchi_ios_print( out_file, "%s%s", strbuf->pStr, pLF );
    }
    else
    {
        if (io->bPlainTextTags == 1)
        {
            inchi_ios_print( out_file, "/" );
        }
    }

    return 0;
}
/****************************************************************************
Output AuxInfo: original atom numbers and symmetry numbers (constit. equivalence /E: )
****************************************************************************/
Output AuxInfo: original atom numbers and symmetry numbers (constit. equivalence /E: )
Output AuxInfo : original atom numbers and symmetry numbers ( constit . equivalence / E : )
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 )
{
    if (num_components2[0] || num_components2[1])
    {
        szGetTag( AuxLbl, io->nTag,
                 io->bTag1 = ( io->bSecondNonTautPass ? AL_FIXN : AL_ANBR ) | io->bFhTag, io->szTag1, &io->bAlways );
        inchi_strbuf_reset( strbuf );
        io->tot_len = 0;
        io->tot_len = str_AuxNumb( pCG, io->pINChISort, io->pINChISort2,
                                   strbuf, &io->bOverflow,
                                   io->bOutType, io->TAUT_MODE, io->num_components,
                                   io->bSecondNonTautPass, io->bOmitRepetitions );
        if (str_LineEnd( io->szTag1, &io->bOverflow, strbuf, -1, io->bPlainTextTags ))
        {
            return 1;
        }
        inchi_ios_print( out_file, "%s%s", strbuf->pStr, pLF );
    }
    if (io->bAtomEqu[io->iCurTautMode])
    {
        szGetTag( AuxLbl, io->nTag, io->bTag1 = AL_AEQU | io->bFhTag, io->szTag1, &io->bAlways );
        inchi_strbuf_reset( strbuf );
        io->tot_len = 0;
        io->tot_len = str_AuxEqu( io->pINChISort, io->pINChISort2,
                              strbuf, &io->bOverflow, io->bOutType, io->TAUT_MODE,
                              io->num_components, io->bSecondNonTautPass,
                              io->bOmitRepetitions, io->bUseMulipliers );
        if (str_LineEnd( io->szTag1, &io->bOverflow, strbuf, -1, io->bPlainTextTags ))
        {
            return 1;
        }
        inchi_ios_print( out_file, "%s%s", strbuf->pStr, pLF );
    }
    else
    {
        if (io->bPlainTextTags == 1)
        {
            inchi_ios_print( out_file, "/" );
        }
    }
    return 0;
}
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 ) { if ( num_components2 [ 0 ] || num_components2 [ 1 ] ) { szGetTag ( AuxLbl , io -> nTag , io -> bTag1 = ( io -> bSecondNonTautPass ? AL_FIXN : AL_ANBR ) | io -> bFhTag , io -> szTag1 , & io -> bAlways ) ; inchi_strbuf_reset ( strbuf ) ; io -> tot_len = 0 ; io -> tot_len = str_AuxNumb ( pCG , io -> pINChISort , io -> pINChISort2 , strbuf , & io -> bOverflow , io -> bOutType , io -> TAUT_MODE , io -> num_components , io -> bSecondNonTautPass , io -> bOmitRepetitions ) ; if ( str_LineEnd ( io -> szTag1 , & io -> bOverflow , strbuf , -1 , io -> bPlainTextTags ) ) { return 1 ; } inchi_ios_print ( out_file , " " , strbuf -> pStr , pLF ) ; } if ( io -> bAtomEqu [ io -> iCurTautMode ] ) { szGetTag ( AuxLbl , io -> nTag , io -> bTag1 = AL_AEQU | io -> bFhTag , io -> szTag1 , & io -> bAlways ) ; inchi_strbuf_reset ( strbuf ) ; io -> tot_len = 0 ; io -> tot_len = str_AuxEqu ( io -> pINChISort , io -> pINChISort2 , strbuf , & io -> bOverflow , io -> bOutType , io -> TAUT_MODE , io -> num_components , io -> bSecondNonTautPass , io -> bOmitRepetitions , io -> bUseMulipliers ) ; if ( str_LineEnd ( io -> szTag1 , & io -> bOverflow , strbuf , -1 , io -> bPlainTextTags ) ) { return 1 ; } inchi_ios_print ( out_file , " " , strbuf -> pStr , pLF ) ; } else { if ( io -> bPlainTextTags == 1 ) { inchi_ios_print ( out_file , " " ) ; } } return 0 ; }
Output AuxInfo: original atom numbers and symmetry numbers (constit.
Output AuxInfo : original atom numbers and symmetry numbers ( constit .
/* Original atom numbers in order of canonical numbers */ /* Original numbering output */ /*
        Symmetry numbers (constit. equivalence)    /E:
    */ /*  aux equ atoms */ /* 1. Compare to tautomeric equivalence (in case of second, non-taut, pass only) */ /* 2. Compare to the previous component if (1) failed to find equivalence */