InChI
 
Loading...
Searching...
No Matches
ichimain.h
Go to the documentation of this file.
1/*
2 * International Chemical Identifier (InChI)
3 * Version 1
4 * Software version 1.07
5 * April 30, 2024
6 *
7 * MIT License
8 *
9 * Copyright (c) 2024 IUPAC and InChI Trust
10 *
11 * Permission is hereby granted, free of charge, to any person obtaining a copy
12 * of this software and associated documentation files (the "Software"), to deal
13 * in the Software without restriction, including without limitation the rights
14 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
15 * copies of the Software, and to permit persons to whom the Software is
16 * furnished to do so, subject to the following conditions:
17 *
18 * The above copyright notice and this permission notice shall be included in all
19 * copies or substantial portions of the Software.
20 *
21 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
26 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
27 * SOFTWARE.
28*
29* The InChI library and programs are free software developed under the
30 * auspices of the International Union of Pure and Applied Chemistry (IUPAC).
31 * Originally developed at NIST.
32 * Modifications and additions by IUPAC and the InChI Trust.
33 * Some portions of code were developed/changed by external contributors
34 * (either contractor or volunteer) which are listed in the file
35 * 'External-contributors' included in this distribution.
36 *
37 * info@inchi-trust.org
38 *
39*/
40
41
42#ifndef _ICHIMAIN_H_
43#define _ICHIMAIN_H_
44
45#include "strutil.h"
46#include "ichicomn.h"
47
48#define ESC_KEY 27
49
50#define INCHI_SEGM_BUFLEN 524288
51#define PRINT_INCHI_MAX_TAG_LEN 64
52typedef struct tagLine
53{
54 char *str;
55 int len;
57 int c;
59/* for DisplayTheWholeStructure() */
60#define COMP_ORIG_0_MAIN 0x0001
61#define COMP_ORIG_0_RECN 0x0002
62#define COMP_PREP_0_MAIN 0x0004
63#define COMP_PREP_0_RECN 0x0008
64#define COMP_ORIG_1_MAIN 0x0010
65#define COMP_ORIG_1_RECN 0x0020
66/* Renumbering atoms stuff */
67#define PERMAXATOMS 32767
68#define BYTE(X) ((unsigned char *)(X))
69int rrand( int m );
70void shuffle( void *obj, size_t nmemb, size_t size );
71
72
73/* STRUCT_DATA */
74
75
76typedef struct tagStructData
77{
78 unsigned long ulStructTime;
83 long fPtrStart; /* or number of processed structures */
84 long fPtrEnd; /* or number of errors */
89
90 /* information related to normal or disconnected layers */
93 INCHI_MODE bTautFlags[INCHI_NUM]; /* reconnected does not have TG_FLAG_DISCONNECT_COORD_DONE flag */
94 INCHI_MODE bTautFlagsDone[INCHI_NUM]; /* reconnected does not have TG_FLAG_DISCONNECT_COORD_DONE flag */
95 int num_components[INCHI_NUM]; /* number of allocated INChI, INChI_Aux data structures */
96 /* debugging info */
97#if ( bRELEASE_VERSION == 0 )
98 int bExtract;
99#endif
101
102
103/* Convenience storage for InChI serialization control data */
104typedef struct tagINCHI_OUT_CTL
105{
108
110
130
132
135 int nTag;
136 int bTag1;
137 int bTag2;
138 int bTag3;
141
144
166
171
172 int n_pzz;
173 int n_zy;
174
178}
180
181
182/* Context of ProcessOneStructureEx used in calls to ProcessOneStructureExCore */
204int POSEContext_Init(POSEContext *context,
205 STRUCT_DATA *sd, INPUT_PARMS *ip, char *szTitle,
206 PINChI2 *pINChI2[INCHI_NUM], PINChI_Aux2 *pINChI_Aux2[INCHI_NUM],
207 INCHI_IOSTREAM *inp_file, INCHI_IOSTREAM *log_file,
208 INCHI_IOSTREAM *out_file, INCHI_IOSTREAM *prb_file,
209 ORIG_ATOM_DATA *orig_inp_data, ORIG_ATOM_DATA *prep_inp_data,
210 long num_inp, INCHI_IOS_STRING *strbuf, unsigned char save_opt_bits);
211void POSEContext_Free(POSEContext *context);
213
214#ifndef COMPILE_ALL_CPP
215#ifdef __cplusplus
216extern "C" {
217#endif
218#endif
219
220
221/* MAIN_LOOP_ACTION */
222
231
232
233/* GENERAL PROCESSING STEPS */
234
235
236int ProcessSingleInputFile( int argc, char *argv[] );
237int ProcessMultipleInputFiles( int argc, char *argv[] );
238int ReadCommandLineParms( int argc, const char *argv[], INPUT_PARMS *ip,
239 char *szSdfDataValue, unsigned long *ulDisplTime,
240 int bReleaseVersion, INCHI_IOSTREAM *log_file );
242int OpenFiles( FILE **inp_file, FILE **out_file, FILE **log_file, FILE **prb_file, INPUT_PARMS *ip );
243int PrintInputParms( INCHI_IOSTREAM *log_file, INPUT_PARMS *ip );
244int SortAndPrintINChI( struct tagCANON_GLOBALS *pCG,
245 INCHI_IOSTREAM *out_file,
246 INCHI_IOS_STRING *strbuf,
247 INCHI_IOSTREAM *log_file,
248 INPUT_PARMS *ip,
249 ORIG_ATOM_DATA *orig_inp_data,
250 ORIG_ATOM_DATA *prep_inp_data,
251 COMP_ATOM_DATA composite_norm_data[INCHI_NUM][TAUT_NUM + 1],
252 ORIG_STRUCT *pOrigStruct,
253 int num_components[INCHI_NUM],
254 int num_non_taut[INCHI_NUM],
255 int num_taut[INCHI_NUM],
256 INCHI_MODE bTautFlags[INCHI_NUM],
257 INCHI_MODE bTautFlagsDone[INCHI_NUM],
258 NORM_CANON_FLAGS *pncFlags,
259 long num_inp,
260 PINChI2 *pINChI[INCHI_NUM],
261 PINChI_Aux2 *pINChI_Aux[INCHI_NUM],
262 int *pSortPrintINChIFlags,
263 unsigned char save_opt_bits );
265 PINChI_Aux2 *pINChI_Aux[INCHI_NUM],
266 int num_components[2] );
267void FreeINChIArrays( PINChI2 *pINChI,
268 PINChI_Aux2 *pINChI_Aux,
269 int num_components );
270int ReadTheStructure( struct tagINCHI_CLOCK *ic,
271 STRUCT_DATA *sd,
272 INPUT_PARMS *ip,
273 INCHI_IOSTREAM *inp_file,
274 ORIG_ATOM_DATA *orig_inp_data,
275 int inp_index,
276 int *out_index );
278 INPUT_PARMS *ip,
279 int nLogMask,
280 INCHI_IOSTREAM *inp_file,
281 INCHI_IOSTREAM *log_file,
282 INCHI_IOSTREAM *out_file,
283 INCHI_IOSTREAM *prb_file,
284 ORIG_ATOM_DATA *orig_inp_data,
285 long *num_inp );
286int GetOneComponent( struct tagINCHI_CLOCK *ic,
287 STRUCT_DATA *sd,
288 INPUT_PARMS *ip,
289 INCHI_IOSTREAM *log_file,
290 INCHI_IOSTREAM *out_file,
291 INP_ATOM_DATA *inp_cur_data,
292 ORIG_ATOM_DATA *orig_inp_data,
293 int i, long num_inp );
295 struct tagINCHI_CLOCK *ic,
296 STRUCT_DATA *sd,
297 INPUT_PARMS *ip,
298 INP_ATOM_DATA *inp_cur_data,
299 ORIG_ATOM_DATA *orig_inp_data,
300 PINChI2 *pINChI,
301 PINChI_Aux2 *pINChI_Aux,
302 int iINChI,
303 int i, long num_inp,
304 INP_ATOM_DATA **inp_norm_data,
305 NORM_CANON_FLAGS *pncFlags,
306 INCHI_IOSTREAM *log_file );
308 INPUT_PARMS *ip,
309 ORIG_ATOM_DATA *orig_inp_data,
310 int i,
311 long num_inp,
312 INCHI_IOSTREAM *inp_file,
313 INCHI_IOSTREAM *log_file,
314 INCHI_IOSTREAM *out_file,
315 INCHI_IOSTREAM *prb_file );
317 INPUT_PARMS *ip,
318 ORIG_ATOM_DATA *orig_inp_data,
319 long num_inp,
320 INCHI_IOSTREAM *inp_file,
321 INCHI_IOSTREAM *log_file,
322 INCHI_IOSTREAM *out_file,
323 INCHI_IOSTREAM *prb_file );
325 INP_ATOM_DATA **inp_norm_data,
326 STRUCT_DATA *sd,
327 int bNoWarnings );
329 STRUCT_DATA *sd, INPUT_PARMS *ip,
330 char *szTitle,
331 INCHI_IOSTREAM *inp_file,
332 INCHI_IOSTREAM *plog,
333 INCHI_IOSTREAM *pout,
334 INCHI_IOSTREAM *pprb,
335 ORIG_ATOM_DATA *orig_inp_data,
336 long *num_inp,
337 STRUCT_FPTRS *pStructPtrs,
338 int *nRet,
339 int *have_err_in_GetOneStructure,
340 long *num_err,
341 int output_error_inchi );
343 CANON_GLOBALS *CG,
344 STRUCT_DATA *sd,
345 INPUT_PARMS *ip,
346 char *szTitle,
347 PINChI2 *pINChI[INCHI_NUM],
348 PINChI_Aux2 *pINChI_Aux[INCHI_NUM],
349 INCHI_IOSTREAM *inp_file,
350 INCHI_IOSTREAM *plog,
351 INCHI_IOSTREAM *pout,
352 INCHI_IOSTREAM *pprb,
353 ORIG_ATOM_DATA *orig_inp_data,
354 ORIG_ATOM_DATA *prep_inp_data,
355 long *num_inp,
356 STRUCT_FPTRS *pStructPtrs,
357 int *nRet,
358 int have_err_in_GetOneStructure,
359 long *num_err,
360 int output_error_inchi,
361 INCHI_IOS_STRING *strbuf,
362 unsigned long *pulTotalProcessingTime,
363 char *pLF, char *pTAB,
364 char *ikey, int silent );
365int GetOneStructure( struct tagINCHI_CLOCK *ic,
366 STRUCT_DATA *sd,
367 INPUT_PARMS *ip,
368 char *szTitle,
369 INCHI_IOSTREAM *inp_file,
370 INCHI_IOSTREAM *log_file,
371 INCHI_IOSTREAM *out_file,
372 INCHI_IOSTREAM *prb_file,
373 ORIG_ATOM_DATA *orig_inp_data,
374 long *num_inp,
375 STRUCT_FPTRS *struct_fptrs );
376int ProcessOneStructure( struct tagINCHI_CLOCK *ic,
377 struct tagCANON_GLOBALS *pCG,
378 STRUCT_DATA *sd,
379 INPUT_PARMS *ip,
380 char *szTitle,
381 PINChI2 *pINChI2[INCHI_NUM],
382 PINChI_Aux2 *pINChI_Aux2[INCHI_NUM],
383 INCHI_IOSTREAM *inp_file,
384 INCHI_IOSTREAM *log_file,
385 INCHI_IOSTREAM *out_file,
386 INCHI_IOSTREAM *prb_file,
387 ORIG_ATOM_DATA *orig_inp_data,
388 ORIG_ATOM_DATA *prep_inp_data,
389 long num_inp,
390 INCHI_IOS_STRING *strbuf,
391 unsigned char save_opt_bits );
393 struct tagCANON_GLOBALS *pCG,
394 STRUCT_DATA *sd,
395 INPUT_PARMS *ip,
396 char *szTitle,
397 PINChI2 *pINChI2[INCHI_NUM],
398 PINChI_Aux2 *pINChI_Aux2[INCHI_NUM],
399 INCHI_IOSTREAM *inp_file,
400 INCHI_IOSTREAM *log_file,
401 INCHI_IOSTREAM *out_file,
402 INCHI_IOSTREAM *prb_file,
403 ORIG_ATOM_DATA *orig_inp_data,
404 ORIG_ATOM_DATA *prep_inp_data,
405 long num_inp,
406 INCHI_IOS_STRING *strbuf,
407 unsigned char save_opt_bits );
409 struct tagCANON_GLOBALS *CG,
410 STRUCT_DATA *sd,
411 INPUT_PARMS *ip,
412 char *szTitle,
413 PINChI2 *pINChI2[INCHI_NUM],
414 PINChI_Aux2 *pINChI_Aux2[INCHI_NUM],
415 INCHI_IOSTREAM *inp_file,
416 INCHI_IOSTREAM *log_file,
417 INCHI_IOSTREAM *out_file,
418 INCHI_IOSTREAM *prb_file,
419 ORIG_ATOM_DATA *orig_inp_data,
420 ORIG_ATOM_DATA *prep_inp_data,
421 long num_inp,
422 INCHI_IOS_STRING *strbuf,
423 unsigned char save_opt_bits,
424 char **sinchi,
425 char **saux);
427 struct tagCANON_GLOBALS *CG,
428 STRUCT_DATA *sd,
429 INPUT_PARMS *ip,
430 char *szTitle,
431 PINChI2 *pINChI2[INCHI_NUM],
432 PINChI_Aux2 *pINChI_Aux2[INCHI_NUM],
433 INCHI_IOSTREAM *inp_file,
434 INCHI_IOSTREAM *log_file,
435 INCHI_IOSTREAM *out_file,
436 INCHI_IOSTREAM *prb_file,
437 ORIG_ATOM_DATA *orig_inp_data,
438 ORIG_ATOM_DATA *prep_inp_data,
439 long num_inp,
440 INCHI_IOS_STRING *strbuf,
441 unsigned char save_opt_bits,
442 int *n_pzz,
443 char **sinchi,
444 char **saux);
446 struct tagCANON_GLOBALS *CG,
447 STRUCT_DATA *sd,
448 INPUT_PARMS *ip,
449 char *szTitle,
450 PINChI2 *pINChI2[INCHI_NUM],
451 PINChI_Aux2 *pINChI_Aux2[INCHI_NUM],
452 INCHI_IOSTREAM *inp_file,
453 INCHI_IOSTREAM *log_file,
454 INCHI_IOSTREAM *out_file,
455 INCHI_IOSTREAM *prb_file,
456 ORIG_ATOM_DATA *orig_inp_data,
457 ORIG_ATOM_DATA *prep_inp_data,
458 long num_inp,
459 INCHI_IOS_STRING *strbuf,
460 unsigned char save_opt_bits,
461 char **sinchi,
462 char **saux);
464 struct tagCANON_GLOBALS *CG,
465 STRUCT_DATA *sd,
466 INPUT_PARMS *ip,
467 char *szTitle,
468 PINChI2 *pINChI2[INCHI_NUM],
469 PINChI_Aux2 *pINChI_Aux2[INCHI_NUM],
470 INCHI_IOSTREAM *inp_file,
471 INCHI_IOSTREAM *log_file,
472 INCHI_IOSTREAM *out_file,
473 INCHI_IOSTREAM *prb_file,
474 ORIG_ATOM_DATA *orig_inp_data,
475 ORIG_ATOM_DATA *prep_inp_data,
476 long num_inp,
477 INCHI_IOS_STRING *strbuf,
478 unsigned char save_opt_bits,
479 int *mind_polymers);
480int CreateOneStructureINChI( struct tagCANON_GLOBALS *pCG, struct tagINCHI_CLOCK *ic,
481 STRUCT_DATA *sd, INPUT_PARMS *ip, char *szTitle,
482 PINChI2 *pINChI2[INCHI_NUM], PINChI_Aux2 *pINChI_Aux2[INCHI_NUM],
483 int iINChI,
484 INCHI_IOSTREAM *inp_file, INCHI_IOSTREAM *log_file,
485 INCHI_IOSTREAM *out_file, INCHI_IOSTREAM *prb_file,
486 ORIG_ATOM_DATA *orig_inp_data, ORIG_ATOM_DATA *prep_inp_data,
487 COMP_ATOM_DATA composite_norm_data2[][TAUT_NUM + 1],
488 long num_inp, INCHI_IOS_STRING *strbuf, NORM_CANON_FLAGS *pncFlags );
490 ORIG_ATOM_DATA *orig_inp_data, ORIG_ATOM_DATA *prep_inp_data );
492 STRUCT_DATA *sd, INPUT_PARMS *ip, char *szTitle,
493 PINChI2 *pINChI[INCHI_NUM], PINChI_Aux2 *pINChI_Aux[INCHI_NUM],
494 INCHI_IOSTREAM *inp_file, INCHI_IOSTREAM *plog,
495 INCHI_IOSTREAM *pout, INCHI_IOSTREAM *pprb,
496 ORIG_ATOM_DATA *orig_inp_data, ORIG_ATOM_DATA *prep_inp_data,
497 long *num_inp, STRUCT_FPTRS *pStructPtrs,
498 int *nRet, int have_err_in_GetOneStructure,
499 long *num_err, int output_error_inchi, INCHI_IOS_STRING *strbuf,
500 unsigned long *pulTotalProcessingTime, char *pLF, char *pTAB,
501 long int nrepeat);
502int bIsStructChiral( PINChI2 *pINChI2[INCHI_NUM], int num_components[] );
503
504
505/* ORIG_ATOM_DATA */
506
507int OrigAtData_Duplicate( ORIG_ATOM_DATA *new_orig_atom, ORIG_ATOM_DATA *orig_atom );
508void OrigAtData_Permute( ORIG_ATOM_DATA *permuted, ORIG_ATOM_DATA *saved, int *numbers );
509
510int OrigAtData_RemoveAtom(ORIG_ATOM_DATA *orig_at_data, int iatom);
511int OrigAtData_AddSingleStereolessBond( int this_atom, int other_atom,
512 inp_ATOM *at, int *num_inp_bonds );
513int OrigAtData_AddBond( int this_atom, int other_atom, inp_ATOM *at,
514 int bond_type, int bond_stereo, int *num_bonds );
515int OrigAtData_RemoveBond( int this_atom, int other_atom, inp_ATOM *at,
516 int *bond_type, int *bond_stereo, int *num_inp_bonds );
517int OrigAtData_RemoveHalfBond( int this_atom, int other_atom, inp_ATOM *at,
518 int *bond_type, int *bond_stereo );
519int OrigAtData_IncreaseBondOrder( int this_atom, int other_atom, inp_ATOM *at );
520int OrigAtData_DecreaseBondOrder( int this_atom, int other_atom, inp_ATOM *at );
521int OrigAtData_SaveMolfile( ORIG_ATOM_DATA *orig_inp_data, STRUCT_DATA *sd,
522 INPUT_PARMS *ip, long num_inp, INCHI_IOSTREAM *out_file );
525 INPUT_PARMS *ip,
526 ORIG_ATOM_DATA *orig_at_data,
528 int *ret);
530 int nforbidden,
531 int *forbidden_orig,
532 int *n_fragbonds,
533 int **fragbonds,
534 int *n_fragatoms,
535 int *fragatoms,
536 int *err,
537 char *pStrErr);
538
539void winchi_calc_inchikey( int ret,
540 int *ikflag,
541 INPUT_PARMS *ip,
542 INCHI_IOSTREAM *out_file,
543 INCHI_IOSTREAM *log_file);
544
545/* inp_ATOM */
546int Inp_Atom_GetBondType(inp_ATOM *at, int iatom1, int iatom2);
547
548
549/* ORIG_STRUCT */
550
551int OrigStruct_FillOut( struct tagCANON_GLOBALS *pCG,
552 ORIG_ATOM_DATA *orig_inp_data,
553 ORIG_STRUCT *pOrigStruct,
554 STRUCT_DATA *sd );
555void OrigStruct_Free( ORIG_STRUCT *pOrigStruct );
556int ReadWriteInChI( struct tagINCHI_CLOCK *ic,
557 struct tagCANON_GLOBALS *pCG,
558 INCHI_IOSTREAM *pInp,
559 INCHI_IOSTREAM *pOut,
560 INCHI_IOSTREAM *pLog,
561 INPUT_PARMS *ip_inp,
562 STRUCT_DATA *sd_inp,
563 /* the following are InChI library-specific parameters */
564 inp_ATOM **at,
565 int *num_at,
566 int *num_bonds,
567 OAD_Polymer **polymer,
568 OAD_V3000 **v3000,
569 /* end of InChI library-specific parameters */
570 char *szMsg,
571 int nMsgLen,
572 unsigned long WarningFlags[2][2] );
573int CompareHillFormulasNoH( const char *f1, const char *f2,
574 int *num_H1, int *num_H2 );
575int CreateCompositeNormAtom( COMP_ATOM_DATA *composite_norm_data,
576 INP_ATOM_DATA2 *all_inp_norm_data,
577 int num_components );
578
579
580/* POLYMERS */
581
582void EditINCHI_HidePolymerZz( INCHI_IOSTREAM *out, int n_pzz, int n_zy );
583
584
585
586
587/* MISCELLANEOUS */
588
589
590void SplitTime( unsigned long ulTotalTime, int *hours, int *minutes, int *seconds, int *mseconds );
591void set_line_separators( int bINChIOutputOptions, char **pLF, char **pTAB );
592void save_command_line( int argc, char *argv[], INCHI_IOSTREAM *plog );
593void emit_empty_inchi( INPUT_PARMS *ip, long num_inp,
594 char *pLF, char *pTAB, INCHI_IOSTREAM *pout );
595
596#ifndef COMPILE_ANSI_ONLY
597void eat_keyboard_input( void );
598int user_quit( struct tagINCHI_CLOCK *ic, const char *msg, unsigned long ulMaxTime );
599#endif
600
601
602
603#ifndef COMPILE_ALL_CPP
604#ifdef __cplusplus
605}
606#endif
607#endif
608
609#endif /* _ICHIMAIN_H_ */
INChI * PINChI2[TAUT_NUM]
Definition ichi.h:259
INChI_Aux * PINChI_Aux2[TAUT_NUM]
Definition ichi.h:302
#define STR_ERR_LEN
Definition ichierr.h:161
int SortAndPrintINChI(struct tagCANON_GLOBALS *pCG, INCHI_IOSTREAM *out_file, INCHI_IOS_STRING *strbuf, INCHI_IOSTREAM *log_file, INPUT_PARMS *ip, ORIG_ATOM_DATA *orig_inp_data, ORIG_ATOM_DATA *prep_inp_data, COMP_ATOM_DATA composite_norm_data[INCHI_NUM][TAUT_NUM+1], ORIG_STRUCT *pOrigStruct, int num_components[INCHI_NUM], int num_non_taut[INCHI_NUM], int num_taut[INCHI_NUM], INCHI_MODE bTautFlags[INCHI_NUM], INCHI_MODE bTautFlagsDone[INCHI_NUM], NORM_CANON_FLAGS *pncFlags, long num_inp, PINChI2 *pINChI[INCHI_NUM], PINChI_Aux2 *pINChI_Aux[INCHI_NUM], int *pSortPrintINChIFlags, unsigned char save_opt_bits)
Definition runichi4.c:102
struct tagStructData STRUCT_DATA
int OrigAtData_RemoveAtom(ORIG_ATOM_DATA *orig_at_data, int iatom)
Definition runichi3.c:2544
int ProcessOneStructureEx(struct tagINCHI_CLOCK *ic, struct tagCANON_GLOBALS *pCG, STRUCT_DATA *sd, INPUT_PARMS *ip, char *szTitle, PINChI2 *pINChI2[INCHI_NUM], PINChI_Aux2 *pINChI_Aux2[INCHI_NUM], INCHI_IOSTREAM *inp_file, INCHI_IOSTREAM *log_file, INCHI_IOSTREAM *out_file, INCHI_IOSTREAM *prb_file, ORIG_ATOM_DATA *orig_inp_data, ORIG_ATOM_DATA *prep_inp_data, long num_inp, INCHI_IOS_STRING *strbuf, unsigned char save_opt_bits)
Definition runichi.c:2023
int CreateOneComponentINChI(struct tagCANON_GLOBALS *pCG, struct tagINCHI_CLOCK *ic, STRUCT_DATA *sd, INPUT_PARMS *ip, INP_ATOM_DATA *inp_cur_data, ORIG_ATOM_DATA *orig_inp_data, PINChI2 *pINChI, PINChI_Aux2 *pINChI_Aux, int iINChI, int i, long num_inp, INP_ATOM_DATA **inp_norm_data, NORM_CANON_FLAGS *pncFlags, INCHI_IOSTREAM *log_file)
Definition runichi.c:1741
void EditINCHI_HidePolymerZz(INCHI_IOSTREAM *out, int n_pzz, int n_zy)
Definition ichiprt1.c:5032
int OrigAtData_SaveMolfile(ORIG_ATOM_DATA *orig_inp_data, STRUCT_DATA *sd, INPUT_PARMS *ip, long num_inp, INCHI_IOSTREAM *out_file)
Definition runichi.c:559
void POSEContext_DebugPrint(POSEContext *context)
Definition runichi2.c:1668
int RepeatedlyRenumberAtomsAndRecalcINCHI(struct tagINCHI_CLOCK *ic, CANON_GLOBALS *CG, STRUCT_DATA *sd, INPUT_PARMS *ip, char *szTitle, PINChI2 *pINChI[INCHI_NUM], PINChI_Aux2 *pINChI_Aux[INCHI_NUM], INCHI_IOSTREAM *inp_file, INCHI_IOSTREAM *plog, INCHI_IOSTREAM *pout, INCHI_IOSTREAM *pprb, ORIG_ATOM_DATA *orig_inp_data, ORIG_ATOM_DATA *prep_inp_data, long *num_inp, STRUCT_FPTRS *pStructPtrs, int *nRet, int have_err_in_GetOneStructure, long *num_err, int output_error_inchi, INCHI_IOS_STRING *strbuf, unsigned long *pulTotalProcessingTime, char *pLF, char *pTAB, long int nrepeat)
int OrigAtData_IncreaseBondOrder(int this_atom, int other_atom, inp_ATOM *at)
Definition runichi3.c:2672
void OrigAtData_DebugTrace(ORIG_ATOM_DATA *at_data)
Definition runichi3.c:1089
int OAD_ProcessOneStructure105Plus(struct tagINCHI_CLOCK *ic, struct tagCANON_GLOBALS *CG, STRUCT_DATA *sd, INPUT_PARMS *ip, char *szTitle, PINChI2 *pINChI2[INCHI_NUM], PINChI_Aux2 *pINChI_Aux2[INCHI_NUM], INCHI_IOSTREAM *inp_file, INCHI_IOSTREAM *log_file, INCHI_IOSTREAM *out_file, INCHI_IOSTREAM *prb_file, ORIG_ATOM_DATA *orig_inp_data, ORIG_ATOM_DATA *prep_inp_data, long num_inp, INCHI_IOS_STRING *strbuf, unsigned char save_opt_bits, char **sinchi, char **saux)
Definition runichi.c:3051
int ReadTheStructure(struct tagINCHI_CLOCK *ic, STRUCT_DATA *sd, INPUT_PARMS *ip, INCHI_IOSTREAM *inp_file, ORIG_ATOM_DATA *orig_inp_data, int inp_index, int *out_index)
Definition runichi2.c:396
int TreatErrorsInCreateOneComponentINChI(STRUCT_DATA *sd, INPUT_PARMS *ip, ORIG_ATOM_DATA *orig_inp_data, int i, long num_inp, INCHI_IOSTREAM *inp_file, INCHI_IOSTREAM *log_file, INCHI_IOSTREAM *out_file, INCHI_IOSTREAM *prb_file)
Definition runichi4.c:1387
int ReadCommandLineParms(int argc, const char *argv[], INPUT_PARMS *ip, char *szSdfDataValue, unsigned long *ulDisplTime, int bReleaseVersion, INCHI_IOSTREAM *log_file)
Definition ichiparm.c:602
struct tagLine SEGM_LINE
void SplitTime(unsigned long ulTotalTime, int *hours, int *minutes, int *seconds, int *mseconds)
Definition runichi4.c:1252
void emit_empty_inchi(INPUT_PARMS *ip, long num_inp, char *pLF, char *pTAB, INCHI_IOSTREAM *pout)
Definition ichimain.c:1061
int OpenFiles(FILE **inp_file, FILE **out_file, FILE **log_file, FILE **prb_file, INPUT_PARMS *ip)
Definition ichiparm.c:2880
void OAD_CollectFragmentBondsAndAtoms(ORIG_ATOM_DATA *at_data, int nforbidden, int *forbidden_orig, int *n_fragbonds, int **fragbonds, int *n_fragatoms, int *fragatoms, int *err, char *pStrErr)
Definition runichi3.c:2785
void save_command_line(int argc, char *argv[], INCHI_IOSTREAM *plog)
Definition ichimain.c:1040
int CompareHillFormulasNoH(const char *f1, const char *f2, int *num_H1, int *num_H2)
Definition ichimake.c:271
int ValidateAndPreparePolymerAndPseudoatoms(struct tagINCHI_CLOCK *ic, struct tagCANON_GLOBALS *CG, STRUCT_DATA *sd, INPUT_PARMS *ip, char *szTitle, PINChI2 *pINChI2[INCHI_NUM], PINChI_Aux2 *pINChI_Aux2[INCHI_NUM], INCHI_IOSTREAM *inp_file, INCHI_IOSTREAM *log_file, INCHI_IOSTREAM *out_file, INCHI_IOSTREAM *prb_file, ORIG_ATOM_DATA *orig_inp_data, ORIG_ATOM_DATA *prep_inp_data, long num_inp, INCHI_IOS_STRING *strbuf, unsigned char save_opt_bits, int *mind_polymers)
Definition runichi.c:2873
int OrigAtData_RemoveHalfBond(int this_atom, int other_atom, inp_ATOM *at, int *bond_type, int *bond_stereo)
Definition runichi3.c:2497
int bIsStructChiral(PINChI2 *pINChI2[INCHI_NUM], int num_components[])
Definition runichi4.c:1271
int ReadWriteInChI(struct tagINCHI_CLOCK *ic, struct tagCANON_GLOBALS *pCG, INCHI_IOSTREAM *pInp, INCHI_IOSTREAM *pOut, INCHI_IOSTREAM *pLog, INPUT_PARMS *ip_inp, STRUCT_DATA *sd_inp, inp_ATOM **at, int *num_at, int *num_bonds, OAD_Polymer **polymer, OAD_V3000 **v3000, char *szMsg, int nMsgLen, unsigned long WarningFlags[2][2])
Definition ichiread.c:615
void OrigStruct_Free(ORIG_STRUCT *pOrigStruct)
Definition ichiprt1.c:3044
int TreatCreateINChIWarning(STRUCT_DATA *sd, INPUT_PARMS *ip, ORIG_ATOM_DATA *orig_inp_data, long num_inp, INCHI_IOSTREAM *inp_file, INCHI_IOSTREAM *log_file, INCHI_IOSTREAM *out_file, INCHI_IOSTREAM *prb_file)
Definition runichi4.c:1453
struct tagINCHI_OUT_CTL INCHI_OUT_CTL
void FreeAllINChIArrays(PINChI2 *pINChI[INCHI_NUM], PINChI_Aux2 *pINChI_Aux[INCHI_NUM], int num_components[2])
void set_line_separators(int bINChIOutputOptions, char **pLF, char **pTAB)
Definition ichiprt1.c:3105
void OrigAtData_Permute(ORIG_ATOM_DATA *permuted, ORIG_ATOM_DATA *saved, int *numbers)
int rrand(int m)
int OrigAtData_AddBond(int this_atom, int other_atom, inp_ATOM *at, int bond_type, int bond_stereo, int *num_bonds)
Definition runichi3.c:2587
int OAD_ProcessOneStructureNoEdits(struct tagINCHI_CLOCK *ic, struct tagCANON_GLOBALS *CG, STRUCT_DATA *sd, INPUT_PARMS *ip, char *szTitle, PINChI2 *pINChI2[INCHI_NUM], PINChI_Aux2 *pINChI_Aux2[INCHI_NUM], INCHI_IOSTREAM *inp_file, INCHI_IOSTREAM *log_file, INCHI_IOSTREAM *out_file, INCHI_IOSTREAM *prb_file, ORIG_ATOM_DATA *orig_inp_data, ORIG_ATOM_DATA *prep_inp_data, long num_inp, INCHI_IOS_STRING *strbuf, unsigned char save_opt_bits, int *n_pzz, char **sinchi, char **saux)
Definition runichi.c:2956
int TreatErrorsInReadTheStructure(STRUCT_DATA *sd, INPUT_PARMS *ip, int nLogMask, INCHI_IOSTREAM *inp_file, INCHI_IOSTREAM *log_file, INCHI_IOSTREAM *out_file, INCHI_IOSTREAM *prb_file, ORIG_ATOM_DATA *orig_inp_data, long *num_inp)
Definition runichi2.c:716
int CreateOneStructureINChI(struct tagCANON_GLOBALS *pCG, struct tagINCHI_CLOCK *ic, STRUCT_DATA *sd, INPUT_PARMS *ip, char *szTitle, PINChI2 *pINChI2[INCHI_NUM], PINChI_Aux2 *pINChI_Aux2[INCHI_NUM], int iINChI, INCHI_IOSTREAM *inp_file, INCHI_IOSTREAM *log_file, INCHI_IOSTREAM *out_file, INCHI_IOSTREAM *prb_file, ORIG_ATOM_DATA *orig_inp_data, ORIG_ATOM_DATA *prep_inp_data, COMP_ATOM_DATA composite_norm_data2[][TAUT_NUM+1], long num_inp, INCHI_IOS_STRING *strbuf, NORM_CANON_FLAGS *pncFlags)
Definition runichi.c:803
void shuffle(void *obj, size_t nmemb, size_t size)
int PrintInputParms(INCHI_IOSTREAM *log_file, INPUT_PARMS *ip)
Definition ichiparm.c:2130
int OrigAtData_RemoveBond(int this_atom, int other_atom, inp_ATOM *at, int *bond_type, int *bond_stereo, int *num_inp_bonds)
Definition runichi3.c:2557
int CalcAndPrintINCHIAndINCHIKEY(struct tagINCHI_CLOCK *ic, CANON_GLOBALS *CG, STRUCT_DATA *sd, INPUT_PARMS *ip, char *szTitle, PINChI2 *pINChI[INCHI_NUM], PINChI_Aux2 *pINChI_Aux[INCHI_NUM], INCHI_IOSTREAM *inp_file, INCHI_IOSTREAM *plog, INCHI_IOSTREAM *pout, INCHI_IOSTREAM *pprb, ORIG_ATOM_DATA *orig_inp_data, ORIG_ATOM_DATA *prep_inp_data, long *num_inp, STRUCT_FPTRS *pStructPtrs, int *nRet, int have_err_in_GetOneStructure, long *num_err, int output_error_inchi, INCHI_IOS_STRING *strbuf, unsigned long *pulTotalProcessingTime, char *pLF, char *pTAB, char *ikey, int silent)
Definition ichimain.c:1154
int OrigAtData_Duplicate(ORIG_ATOM_DATA *new_orig_atom, ORIG_ATOM_DATA *orig_atom)
Definition runichi3.c:148
struct tagPOSEContext POSEContext
int GetTheNextRecordOfInputFile(struct tagINCHI_CLOCK *ic, STRUCT_DATA *sd, INPUT_PARMS *ip, char *szTitle, INCHI_IOSTREAM *inp_file, INCHI_IOSTREAM *plog, INCHI_IOSTREAM *pout, INCHI_IOSTREAM *pprb, ORIG_ATOM_DATA *orig_inp_data, long *num_inp, STRUCT_FPTRS *pStructPtrs, int *nRet, int *have_err_in_GetOneStructure, long *num_err, int output_error_inchi)
Definition ichimain.c:1081
void POSEContext_Free(POSEContext *context)
Definition runichi2.c:1632
int PreprocessPolymerCRUData(struct tagINCHI_CLOCK *ic, struct tagCANON_GLOBALS *CG, STRUCT_DATA *sd, INPUT_PARMS *ip, char *szTitle, PINChI2 *pINChI2[INCHI_NUM], PINChI_Aux2 *pINChI_Aux2[INCHI_NUM], INCHI_IOSTREAM *inp_file, INCHI_IOSTREAM *log_file, INCHI_IOSTREAM *out_file, INCHI_IOSTREAM *prb_file, ORIG_ATOM_DATA *orig_inp_data, ORIG_ATOM_DATA *prep_inp_data, long num_inp, INCHI_IOS_STRING *strbuf, unsigned char save_opt_bits, char **sinchi, char **saux)
Definition runichi.c:2141
int OAD_StructureEdits_Apply(STRUCT_DATA *sd, INPUT_PARMS *ip, ORIG_ATOM_DATA *orig_at_data, OAD_StructureEdits *ed, int *ret)
Definition runichi.c:2421
int CreateCompositeNormAtom(COMP_ATOM_DATA *composite_norm_data, INP_ATOM_DATA2 *all_inp_norm_data, int num_components)
Definition inchi_dll_a2.c:1970
int GetProcessingWarningsOneComponentInChI(INChI *cur_INChI[], INP_ATOM_DATA **inp_norm_data, STRUCT_DATA *sd, int bNoWarnings)
Definition runichi4.c:1550
#define PRINT_INCHI_MAX_TAG_LEN
Definition ichimain.h:51
int OrigAtData_AddSingleStereolessBond(int this_atom, int other_atom, inp_ATOM *at, int *num_inp_bonds)
Definition runichi3.c:2662
void FreeINChIArrays(PINChI2 *pINChI, PINChI_Aux2 *pINChI_Aux, int num_components)
Definition runichi4.c:1357
int ProcessSingleInputFile(int argc, char *argv[])
MAIN_LOOP_ACTION
Definition ichimain.h:224
@ DO_NEXT_STEP
Definition ichimain.h:225
@ DO_EXIT_FUNCTION
Definition ichimain.h:227
@ DO_CONTINUE_MAIN_LOOP
Definition ichimain.h:228
@ DO_BREAK_MAIN_LOOP
Definition ichimain.h:226
int GetOneStructure(struct tagINCHI_CLOCK *ic, STRUCT_DATA *sd, INPUT_PARMS *ip, char *szTitle, INCHI_IOSTREAM *inp_file, INCHI_IOSTREAM *log_file, INCHI_IOSTREAM *out_file, INCHI_IOSTREAM *prb_file, ORIG_ATOM_DATA *orig_inp_data, long *num_inp, STRUCT_FPTRS *struct_fptrs)
Definition runichi2.c:134
int Inp_Atom_GetBondType(inp_ATOM *at, int iatom1, int iatom2)
Definition runichi3.c:4481
void winchi_calc_inchikey(int ret, int *ikflag, INPUT_PARMS *ip, INCHI_IOSTREAM *out_file, INCHI_IOSTREAM *log_file)
Definition runichi4.c:421
void HelpCommandLineParms(INCHI_IOSTREAM *f)
Definition ichiparm.c:2700
int ProcessOneStructure(struct tagINCHI_CLOCK *ic, struct tagCANON_GLOBALS *pCG, STRUCT_DATA *sd, INPUT_PARMS *ip, char *szTitle, PINChI2 *pINChI2[INCHI_NUM], PINChI_Aux2 *pINChI_Aux2[INCHI_NUM], INCHI_IOSTREAM *inp_file, INCHI_IOSTREAM *log_file, INCHI_IOSTREAM *out_file, INCHI_IOSTREAM *prb_file, ORIG_ATOM_DATA *orig_inp_data, ORIG_ATOM_DATA *prep_inp_data, long num_inp, INCHI_IOS_STRING *strbuf, unsigned char save_opt_bits)
Definition runichi.c:218
int OrigStruct_FillOut(struct tagCANON_GLOBALS *pCG, ORIG_ATOM_DATA *orig_inp_data, ORIG_STRUCT *pOrigStruct, STRUCT_DATA *sd)
Definition ichiprt1.c:2926
int OrigAtData_DecreaseBondOrder(int this_atom, int other_atom, inp_ATOM *at)
Definition runichi3.c:2730
int ProcessMultipleInputFiles(int argc, char *argv[])
int GetOneComponent(struct tagINCHI_CLOCK *ic, STRUCT_DATA *sd, INPUT_PARMS *ip, INCHI_IOSTREAM *log_file, INCHI_IOSTREAM *out_file, INP_ATOM_DATA *inp_cur_data, ORIG_ATOM_DATA *orig_inp_data, int i, long num_inp)
Definition runichi2.c:345
int PreprocessOneStructure(struct tagINCHI_CLOCK *ic, STRUCT_DATA *sd, INPUT_PARMS *ip, ORIG_ATOM_DATA *orig_inp_data, ORIG_ATOM_DATA *prep_inp_data)
Definition runichi3.c:469
int POSEContext_Init(POSEContext *context, STRUCT_DATA *sd, INPUT_PARMS *ip, char *szTitle, PINChI2 *pINChI2[INCHI_NUM], PINChI_Aux2 *pINChI_Aux2[INCHI_NUM], INCHI_IOSTREAM *inp_file, INCHI_IOSTREAM *log_file, INCHI_IOSTREAM *out_file, INCHI_IOSTREAM *prb_file, ORIG_ATOM_DATA *orig_inp_data, ORIG_ATOM_DATA *prep_inp_data, long num_inp, INCHI_IOS_STRING *strbuf, unsigned char save_opt_bits)
Definition runichi2.c:1499
unsigned long INCHI_MODE
Definition ichisize.h:60
#define NUM_H_ISOTOPES
Definition inchi_api.h:107
#define INCHI_NUM
Definition inchi_api.h:1179
#define MAX_SDF_VALUE
Definition incomdef.h:53
#define MAX_SDF_HEADER
Definition incomdef.h:52
INP_ATOM_DATA INP_ATOM_DATA2[TAUT_NUM]
Definition inpdef.h:428
#define TAUT_NUM
Definition mode.h:593
Definition inpdef.h:240
Definition inpdef.h:274
Definition ichicant.h:338
Definition inpdef.h:443
Definition ichitime.h:85
Definition ichimain.h:105
int bIgn_UU_Sp3_Iso[TAUT_NUM]
Definition ichimain.h:162
int bIgn_UU_Sp3[TAUT_NUM]
Definition ichimain.h:160
int bIsotopicAtomEqu[TAUT_NUM]
Definition ichimain.h:154
int bAtomEqu[TAUT_NUM]
Definition ichimain.h:147
int n_zy
Definition ichimain.h:173
int bNonTautomeric
Definition ichimain.h:123
int tot_len
Definition ichimain.h:139
int bIsotopicRacemicStereo[TAUT_NUM]
Definition ichimain.h:158
int bInvIsotopicStereo[TAUT_NUM]
Definition ichimain.h:156
int bTag3
Definition ichimain.h:138
int nNumRemovedProtons
Definition ichimain.h:134
char sDifSegs[DIFL_LENGTH][DIFS_LENGTH]
Definition ichimain.h:167
char szTag3[PRINT_INCHI_MAX_TAG_LEN]
Definition ichimain.h:170
int bIgn_UU_Sp2_Iso[TAUT_NUM]
Definition ichimain.h:163
int bRacemicStereo[TAUT_NUM]
Definition ichimain.h:151
int bInvIsotopicStereoOrigNumb[TAUT_NUM]
Definition ichimain.h:157
int bSecondNonTautPass
Definition ichimain.h:120
int bTautomericOutputAllowed
Definition ichimain.h:121
int n_pzz
Definition ichimain.h:172
int bTag1
Definition ichimain.h:136
char szTag1[PRINT_INCHI_MAX_TAG_LEN]
Definition ichimain.h:168
INCHI_SORT * pINChISort2
Definition ichimain.h:177
int bIgn_UU_Sp2[TAUT_NUM]
Definition ichimain.h:161
INCHI_SORT ** pINChISortTautAndNonTaut
Definition ichimain.h:175
int bChargesRadVal[TAUT_NUM]
Definition ichimain.h:164
int bIsotopicTautEqu[TAUT_NUM]
Definition ichimain.h:155
int bNonTautIsIdenticalToTaut
Definition ichimain.h:124
int bOrigCoord[TAUT_NUM]
Definition ichimain.h:165
int bInvStereoOrigNumb[TAUT_NUM]
Definition ichimain.h:150
int bRelativeStereo[TAUT_NUM]
Definition ichimain.h:152
int bNonTautIsoIdentifierNotEmpty
Definition ichimain.h:119
int bIsotopicRelativeStereo[TAUT_NUM]
Definition ichimain.h:159
int bOmitRepetitions
Definition ichimain.h:116
int tot_len2
Definition ichimain.h:140
int bOutputType
Definition ichimain.h:113
INCHI_SORT * pINChISort
Definition ichimain.h:176
int bTautomeric
Definition ichimain.h:122
int bNonTautNonIsoIdentifierNotEmpty
Definition ichimain.h:118
int bOverflow
Definition ichimain.h:111
int bPlainTextTags
Definition ichimain.h:115
int bOutType
Definition ichimain.h:114
char szTag2[PRINT_INCHI_MAX_TAG_LEN]
Definition ichimain.h:169
int bRelRac
Definition ichimain.h:126
int bIsotopic
Definition ichimain.h:128
int bFhTag
Definition ichimain.h:125
int * pSortPrintINChIFlags
Definition ichimain.h:109
int bInvStereo[TAUT_NUM]
Definition ichimain.h:149
int num_comp[TAUT_NUM]
Definition ichimain.h:145
int ATOM_MODE
Definition ichimain.h:106
int num_iso_H[NUM_H_ISOTOPES]
Definition ichimain.h:146
int bTautEqu[TAUT_NUM]
Definition ichimain.h:148
int TAUT_MODE
Definition ichimain.h:107
int nCurINChISegment
Definition ichimain.h:142
int bPolymers
Definition ichimain.h:129
int bUseMulipliers
Definition ichimain.h:117
int bTag2
Definition ichimain.h:137
int bIsotopicOrigNumb[TAUT_NUM]
Definition ichimain.h:153
int nTag
Definition ichimain.h:135
int nSegmAction
Definition ichimain.h:143
int bAbcNumbers
Definition ichimain.h:127
int bAlways
Definition ichimain.h:112
int iCurTautMode
Definition ichimain.h:131
int num_components
Definition ichimain.h:133
Definition ichi.h:209
Definition ichi.h:305
Definition inpdef.h:406
Definition inpdef.h:110
Definition ichidrp.h:120
Definition ichimain.h:53
int len_alloc
Definition ichimain.h:56
int c
Definition ichimain.h:57
char * str
Definition ichimain.h:54
int len
Definition ichimain.h:55
Definition inpdef.h:433
Definition inpdef.h:582
Definition inpdef.h:305
Definition inpdef.h:340
Definition mode.h:1030
Definition mode.h:1016
Definition ichimain.h:184
ORIG_ATOM_DATA OrigAtData
Definition ichimain.h:195
INCHI_IOS_STRING temp_string_container
Definition ichimain.h:200
PINChI_Aux2 * pINChI_Aux2[INCHI_NUM]
Definition ichimain.h:189
INCHI_IOSTREAM * out_file
Definition ichimain.h:193
long num_inp
Definition ichimain.h:199
ORIG_ATOM_DATA PrepAtData[2]
Definition ichimain.h:197
INCHI_IOS_STRING * strbuf
Definition ichimain.h:201
ORIG_ATOM_DATA * orig_inp_data
Definition ichimain.h:196
PINChI2 * pINChI2[INCHI_NUM]
Definition ichimain.h:188
unsigned char save_opt_bits
Definition ichimain.h:202
INPUT_PARMS ip
Definition ichimain.h:186
ORIG_ATOM_DATA * prep_inp_data
Definition ichimain.h:198
char szTitle[MAX_SDF_HEADER+MAX_SDF_VALUE+256]
Definition ichimain.h:187
STRUCT_DATA sd
Definition ichimain.h:185
INCHI_IOSTREAM * prb_file
Definition ichimain.h:194
INCHI_IOSTREAM * inp_file
Definition ichimain.h:190
INCHI_IOSTREAM * log_file
Definition ichimain.h:192
INCHI_IOSTREAM inchi_file[3]
Definition ichimain.h:191
Definition ichimain.h:77
int nStructReadError
Definition ichimain.h:81
int nErrorType
Definition ichimain.h:80
long fPtrEnd
Definition ichimain.h:84
int bChiralFlag
Definition ichimain.h:88
long fPtrStart
Definition ichimain.h:83
int bUserQuitComponentDisplay
Definition ichimain.h:87
INCHI_MODE bTautFlags[INCHI_NUM]
Definition ichimain.h:93
INCHI_MODE bTautFlagsDone[INCHI_NUM]
Definition ichimain.h:94
int bUserQuit
Definition ichimain.h:85
int num_components[INCHI_NUM]
Definition ichimain.h:95
int nErrorCode
Definition ichimain.h:79
int bUserQuitComponent
Definition ichimain.h:86
char pStrErrStruct[STR_ERR_LEN]
Definition ichimain.h:82
unsigned long ulStructTime
Definition ichimain.h:78
int num_taut[INCHI_NUM]
Definition ichimain.h:91
int num_non_taut[INCHI_NUM]
Definition ichimain.h:92
Definition inpdef.h:474
@ DIFS_LENGTH
Definition strutil.h:292
@ DIFL_LENGTH
Definition strutil.h:301