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
67
68/* STRUCT_DATA */
69
70
71typedef struct tagStructData
72{
73 unsigned long ulStructTime;
78 long fPtrStart; /* or number of processed structures */
79 long fPtrEnd; /* or number of errors */
84
85 /* information related to normal or disconnected layers */
88 INCHI_MODE bTautFlags[INCHI_NUM]; /* reconnected does not have TG_FLAG_DISCONNECT_COORD_DONE flag */
89 INCHI_MODE bTautFlagsDone[INCHI_NUM]; /* reconnected does not have TG_FLAG_DISCONNECT_COORD_DONE flag */
90 int num_components[INCHI_NUM]; /* number of allocated INChI, INChI_Aux data structures */
91 /* debugging info */
92#if ( bRELEASE_VERSION == 0 )
93 int bExtract;
94#endif
96
97
98/* Convenience storage for InChI serialization control data */
99typedef struct tagINCHI_OUT_CTL
100{
103
105
125
127
130 int nTag;
131 int bTag1;
132 int bTag2;
133 int bTag3;
136
139
161
166
167 int n_pzz;
168 int n_zy;
169
173}
175
176
177/* Context of ProcessOneStructureEx used in calls to ProcessOneStructureExCore */
199int POSEContext_Init(POSEContext *context,
200 STRUCT_DATA *sd, INPUT_PARMS *ip, char *szTitle,
201 PINChI2 *pINChI2[INCHI_NUM], PINChI_Aux2 *pINChI_Aux2[INCHI_NUM],
202 INCHI_IOSTREAM *inp_file, INCHI_IOSTREAM *log_file,
203 INCHI_IOSTREAM *out_file, INCHI_IOSTREAM *prb_file,
204 ORIG_ATOM_DATA *orig_inp_data, ORIG_ATOM_DATA *prep_inp_data,
205 long num_inp, INCHI_IOS_STRING *strbuf, unsigned char save_opt_bits);
206void POSEContext_Free(POSEContext *context);
208
209#ifndef COMPILE_ALL_CPP
210#ifdef __cplusplus
211extern "C" {
212#endif
213#endif
214
215
216/* MAIN_LOOP_ACTION */
217
226
227
228/* GENERAL PROCESSING STEPS */
229
230
231int ProcessSingleInputFile( int argc, char *argv[] );
232int ProcessMultipleInputFiles( int argc, char *argv[] );
233int ReadCommandLineParms( int argc, const char *argv[], INPUT_PARMS *ip,
234 char *szSdfDataValue, unsigned long *ulDisplTime,
235 int bReleaseVersion, INCHI_IOSTREAM *log_file );
237int OpenFiles( FILE **inp_file, FILE **out_file, FILE **log_file, FILE **prb_file, INPUT_PARMS *ip );
238int PrintInputParms( INCHI_IOSTREAM *log_file, INPUT_PARMS *ip );
239int SortAndPrintINChI( struct tagCANON_GLOBALS *pCG,
240 INCHI_IOSTREAM *out_file,
241 INCHI_IOS_STRING *strbuf,
242 INCHI_IOSTREAM *log_file,
243 INPUT_PARMS *ip,
244 ORIG_ATOM_DATA *orig_inp_data,
245 ORIG_ATOM_DATA *prep_inp_data,
246 COMP_ATOM_DATA composite_norm_data[INCHI_NUM][TAUT_NUM + 1],
247 ORIG_STRUCT *pOrigStruct,
248 int num_components[INCHI_NUM],
249 int num_non_taut[INCHI_NUM],
250 int num_taut[INCHI_NUM],
251 INCHI_MODE bTautFlags[INCHI_NUM],
252 INCHI_MODE bTautFlagsDone[INCHI_NUM],
253 NORM_CANON_FLAGS *pncFlags,
254 long num_inp,
255 PINChI2 *pINChI[INCHI_NUM],
256 PINChI_Aux2 *pINChI_Aux[INCHI_NUM],
257 int *pSortPrintINChIFlags,
258 unsigned char save_opt_bits );
260 PINChI_Aux2 *pINChI_Aux[INCHI_NUM],
261 int num_components[2] );
262void FreeINChIArrays( PINChI2 *pINChI,
263 PINChI_Aux2 *pINChI_Aux,
264 int num_components );
265int ReadTheStructure( struct tagINCHI_CLOCK *ic,
266 STRUCT_DATA *sd,
267 INPUT_PARMS *ip,
268 INCHI_IOSTREAM *inp_file,
269 ORIG_ATOM_DATA *orig_inp_data,
270 int inp_index,
271 int *out_index );
273 INPUT_PARMS *ip,
274 int nLogMask,
275 INCHI_IOSTREAM *inp_file,
276 INCHI_IOSTREAM *log_file,
277 INCHI_IOSTREAM *out_file,
278 INCHI_IOSTREAM *prb_file,
279 ORIG_ATOM_DATA *orig_inp_data,
280 long *num_inp );
281int GetOneComponent( struct tagINCHI_CLOCK *ic,
282 STRUCT_DATA *sd,
283 INPUT_PARMS *ip,
284 INCHI_IOSTREAM *log_file,
285 INCHI_IOSTREAM *out_file,
286 INP_ATOM_DATA *inp_cur_data,
287 ORIG_ATOM_DATA *orig_inp_data,
288 int i, long num_inp );
290 struct tagINCHI_CLOCK *ic,
291 STRUCT_DATA *sd,
292 INPUT_PARMS *ip,
293 INP_ATOM_DATA *inp_cur_data,
294 ORIG_ATOM_DATA *orig_inp_data,
295 PINChI2 *pINChI,
296 PINChI_Aux2 *pINChI_Aux,
297 int iINChI,
298 int i, long num_inp,
299 INP_ATOM_DATA **inp_norm_data,
300 NORM_CANON_FLAGS *pncFlags,
301 INCHI_IOSTREAM *log_file );
303 INPUT_PARMS *ip,
304 ORIG_ATOM_DATA *orig_inp_data,
305 int i,
306 long num_inp,
307 INCHI_IOSTREAM *inp_file,
308 INCHI_IOSTREAM *log_file,
309 INCHI_IOSTREAM *out_file,
310 INCHI_IOSTREAM *prb_file );
312 INPUT_PARMS *ip,
313 ORIG_ATOM_DATA *orig_inp_data,
314 long num_inp,
315 INCHI_IOSTREAM *inp_file,
316 INCHI_IOSTREAM *log_file,
317 INCHI_IOSTREAM *out_file,
318 INCHI_IOSTREAM *prb_file );
320 INP_ATOM_DATA **inp_norm_data,
321 STRUCT_DATA *sd,
322 int bNoWarnings );
324 STRUCT_DATA *sd, INPUT_PARMS *ip,
325 char *szTitle,
326 INCHI_IOSTREAM *inp_file,
327 INCHI_IOSTREAM *plog,
328 INCHI_IOSTREAM *pout,
329 INCHI_IOSTREAM *pprb,
330 ORIG_ATOM_DATA *orig_inp_data,
331 long *num_inp,
332 STRUCT_FPTRS *pStructPtrs,
333 int *nRet,
334 int *have_err_in_GetOneStructure,
335 long *num_err,
336 int output_error_inchi );
338 CANON_GLOBALS *CG,
339 STRUCT_DATA *sd,
340 INPUT_PARMS *ip,
341 char *szTitle,
342 PINChI2 *pINChI[INCHI_NUM],
343 PINChI_Aux2 *pINChI_Aux[INCHI_NUM],
344 INCHI_IOSTREAM *inp_file,
345 INCHI_IOSTREAM *plog,
346 INCHI_IOSTREAM *pout,
347 INCHI_IOSTREAM *pprb,
348 ORIG_ATOM_DATA *orig_inp_data,
349 ORIG_ATOM_DATA *prep_inp_data,
350 long *num_inp,
351 STRUCT_FPTRS *pStructPtrs,
352 int *nRet,
353 int have_err_in_GetOneStructure,
354 long *num_err,
355 int output_error_inchi,
356 INCHI_IOS_STRING *strbuf,
357 unsigned long *pulTotalProcessingTime,
358 char *pLF, char *pTAB,
359 char *ikey, int silent );
360int GetOneStructure( struct tagINCHI_CLOCK *ic,
361 STRUCT_DATA *sd,
362 INPUT_PARMS *ip,
363 char *szTitle,
364 INCHI_IOSTREAM *inp_file,
365 INCHI_IOSTREAM *log_file,
366 INCHI_IOSTREAM *out_file,
367 INCHI_IOSTREAM *prb_file,
368 ORIG_ATOM_DATA *orig_inp_data,
369 long *num_inp,
370 STRUCT_FPTRS *struct_fptrs );
371int ProcessOneStructure( struct tagINCHI_CLOCK *ic,
372 struct tagCANON_GLOBALS *pCG,
373 STRUCT_DATA *sd,
374 INPUT_PARMS *ip,
375 char *szTitle,
376 PINChI2 *pINChI2[INCHI_NUM],
377 PINChI_Aux2 *pINChI_Aux2[INCHI_NUM],
378 INCHI_IOSTREAM *inp_file,
379 INCHI_IOSTREAM *log_file,
380 INCHI_IOSTREAM *out_file,
381 INCHI_IOSTREAM *prb_file,
382 ORIG_ATOM_DATA *orig_inp_data,
383 ORIG_ATOM_DATA *prep_inp_data,
384 long num_inp,
385 INCHI_IOS_STRING *strbuf,
386 unsigned char save_opt_bits );
388 struct tagCANON_GLOBALS *pCG,
389 STRUCT_DATA *sd,
390 INPUT_PARMS *ip,
391 char *szTitle,
392 PINChI2 *pINChI2[INCHI_NUM],
393 PINChI_Aux2 *pINChI_Aux2[INCHI_NUM],
394 INCHI_IOSTREAM *inp_file,
395 INCHI_IOSTREAM *log_file,
396 INCHI_IOSTREAM *out_file,
397 INCHI_IOSTREAM *prb_file,
398 ORIG_ATOM_DATA *orig_inp_data,
399 ORIG_ATOM_DATA *prep_inp_data,
400 long num_inp,
401 INCHI_IOS_STRING *strbuf,
402 unsigned char save_opt_bits );
404 struct tagCANON_GLOBALS *CG,
405 STRUCT_DATA *sd,
406 INPUT_PARMS *ip,
407 char *szTitle,
408 PINChI2 *pINChI2[INCHI_NUM],
409 PINChI_Aux2 *pINChI_Aux2[INCHI_NUM],
410 INCHI_IOSTREAM *inp_file,
411 INCHI_IOSTREAM *log_file,
412 INCHI_IOSTREAM *out_file,
413 INCHI_IOSTREAM *prb_file,
414 ORIG_ATOM_DATA *orig_inp_data,
415 ORIG_ATOM_DATA *prep_inp_data,
416 long num_inp,
417 INCHI_IOS_STRING *strbuf,
418 unsigned char save_opt_bits,
419 char **sinchi,
420 char **saux);
422 struct tagCANON_GLOBALS *CG,
423 STRUCT_DATA *sd,
424 INPUT_PARMS *ip,
425 char *szTitle,
426 PINChI2 *pINChI2[INCHI_NUM],
427 PINChI_Aux2 *pINChI_Aux2[INCHI_NUM],
428 INCHI_IOSTREAM *inp_file,
429 INCHI_IOSTREAM *log_file,
430 INCHI_IOSTREAM *out_file,
431 INCHI_IOSTREAM *prb_file,
432 ORIG_ATOM_DATA *orig_inp_data,
433 ORIG_ATOM_DATA *prep_inp_data,
434 long num_inp,
435 INCHI_IOS_STRING *strbuf,
436 unsigned char save_opt_bits,
437 int *n_pzz,
438 char **sinchi,
439 char **saux);
441 struct tagCANON_GLOBALS *CG,
442 STRUCT_DATA *sd,
443 INPUT_PARMS *ip,
444 char *szTitle,
445 PINChI2 *pINChI2[INCHI_NUM],
446 PINChI_Aux2 *pINChI_Aux2[INCHI_NUM],
447 INCHI_IOSTREAM *inp_file,
448 INCHI_IOSTREAM *log_file,
449 INCHI_IOSTREAM *out_file,
450 INCHI_IOSTREAM *prb_file,
451 ORIG_ATOM_DATA *orig_inp_data,
452 ORIG_ATOM_DATA *prep_inp_data,
453 long num_inp,
454 INCHI_IOS_STRING *strbuf,
455 unsigned char save_opt_bits,
456 char **sinchi,
457 char **saux);
459 struct tagCANON_GLOBALS *CG,
460 STRUCT_DATA *sd,
461 INPUT_PARMS *ip,
462 char *szTitle,
463 PINChI2 *pINChI2[INCHI_NUM],
464 PINChI_Aux2 *pINChI_Aux2[INCHI_NUM],
465 INCHI_IOSTREAM *inp_file,
466 INCHI_IOSTREAM *log_file,
467 INCHI_IOSTREAM *out_file,
468 INCHI_IOSTREAM *prb_file,
469 ORIG_ATOM_DATA *orig_inp_data,
470 ORIG_ATOM_DATA *prep_inp_data,
471 long num_inp,
472 INCHI_IOS_STRING *strbuf,
473 unsigned char save_opt_bits,
474 int *mind_polymers);
475int CreateOneStructureINChI( struct tagCANON_GLOBALS *pCG, struct tagINCHI_CLOCK *ic,
476 STRUCT_DATA *sd, INPUT_PARMS *ip, char *szTitle,
477 PINChI2 *pINChI2[INCHI_NUM], PINChI_Aux2 *pINChI_Aux2[INCHI_NUM],
478 int iINChI,
479 INCHI_IOSTREAM *inp_file, INCHI_IOSTREAM *log_file,
480 INCHI_IOSTREAM *out_file, INCHI_IOSTREAM *prb_file,
481 ORIG_ATOM_DATA *orig_inp_data, ORIG_ATOM_DATA *prep_inp_data,
482 COMP_ATOM_DATA composite_norm_data2[][TAUT_NUM + 1],
483 long num_inp, INCHI_IOS_STRING *strbuf, NORM_CANON_FLAGS *pncFlags );
485 ORIG_ATOM_DATA *orig_inp_data, ORIG_ATOM_DATA *prep_inp_data );
487 STRUCT_DATA *sd, INPUT_PARMS *ip, char *szTitle,
488 PINChI2 *pINChI[INCHI_NUM], PINChI_Aux2 *pINChI_Aux[INCHI_NUM],
489 INCHI_IOSTREAM *inp_file, INCHI_IOSTREAM *plog,
490 INCHI_IOSTREAM *pout, INCHI_IOSTREAM *pprb,
491 ORIG_ATOM_DATA *orig_inp_data, ORIG_ATOM_DATA *prep_inp_data,
492 long *num_inp, STRUCT_FPTRS *pStructPtrs,
493 int *nRet, int have_err_in_GetOneStructure,
494 long *num_err, int output_error_inchi, INCHI_IOS_STRING *strbuf,
495 unsigned long *pulTotalProcessingTime, char *pLF, char *pTAB,
496 long int nrepeat);
497int bIsStructChiral( PINChI2 *pINChI2[INCHI_NUM], int num_components[] );
498
499
500/* ORIG_ATOM_DATA */
501
502int OrigAtData_Duplicate( ORIG_ATOM_DATA *new_orig_atom, ORIG_ATOM_DATA *orig_atom );
503
504int OrigAtData_RemoveAtom(ORIG_ATOM_DATA *orig_at_data, int iatom);
505int OrigAtData_AddSingleStereolessBond( int this_atom, int other_atom,
506 inp_ATOM *at, int *num_inp_bonds );
507int OrigAtData_AddBond( int this_atom, int other_atom, inp_ATOM *at,
508 int bond_type, int bond_stereo, int *num_bonds );
509int OrigAtData_RemoveBond( int this_atom, int other_atom, inp_ATOM *at,
510 int *bond_type, int *bond_stereo, int *num_inp_bonds );
511int OrigAtData_RemoveHalfBond( int this_atom, int other_atom, inp_ATOM *at,
512 int *bond_type, int *bond_stereo );
513int OrigAtData_IncreaseBondOrder( int this_atom, int other_atom, inp_ATOM *at );
514int OrigAtData_DecreaseBondOrder( int this_atom, int other_atom, inp_ATOM *at );
515int OrigAtData_SaveMolfile( ORIG_ATOM_DATA *orig_inp_data, STRUCT_DATA *sd,
516 INPUT_PARMS *ip, long num_inp, INCHI_IOSTREAM *out_file );
519 INPUT_PARMS *ip,
520 ORIG_ATOM_DATA *orig_at_data,
522 int *ret);
524 int nforbidden,
525 int *forbidden_orig,
526 int *n_fragbonds,
527 int **fragbonds,
528 int *n_fragatoms,
529 int *fragatoms,
530 int *err,
531 char *pStrErr);
532
533void winchi_calc_inchikey( int ret,
534 int *ikflag,
535 INPUT_PARMS *ip,
536 INCHI_IOSTREAM *out_file,
537 INCHI_IOSTREAM *log_file);
538
539/* inp_ATOM */
540int Inp_Atom_GetBondType(inp_ATOM *at, int iatom1, int iatom2);
541
542
543/* ORIG_STRUCT */
544
545int OrigStruct_FillOut( struct tagCANON_GLOBALS *pCG,
546 ORIG_ATOM_DATA *orig_inp_data,
547 ORIG_STRUCT *pOrigStruct,
548 STRUCT_DATA *sd );
549void OrigStruct_Free( ORIG_STRUCT *pOrigStruct );
550int ReadWriteInChI( struct tagINCHI_CLOCK *ic,
551 struct tagCANON_GLOBALS *pCG,
552 INCHI_IOSTREAM *pInp,
553 INCHI_IOSTREAM *pOut,
554 INCHI_IOSTREAM *pLog,
555 INPUT_PARMS *ip_inp,
556 STRUCT_DATA *sd_inp,
557 /* the following are InChI library-specific parameters */
558 inp_ATOM **at,
559 int *num_at,
560 int *num_bonds,
561 OAD_Polymer **polymer,
562 OAD_V3000 **v3000,
563 /* end of InChI library-specific parameters */
564 char *szMsg,
565 int nMsgLen,
566 unsigned long WarningFlags[2][2] );
567int CompareHillFormulasNoH( const char *f1, const char *f2,
568 int *num_H1, int *num_H2 );
569int CreateCompositeNormAtom( COMP_ATOM_DATA *composite_norm_data,
570 INP_ATOM_DATA2 *all_inp_norm_data,
571 int num_components );
572
573
574/* POLYMERS */
575
576void EditINCHI_HidePolymerZz( INCHI_IOSTREAM *out, int n_pzz, int n_zy );
577
578
579
580
581/* MISCELLANEOUS */
582
583
584void SplitTime( unsigned long ulTotalTime, int *hours, int *minutes, int *seconds, int *mseconds );
585void set_line_separators( int bINChIOutputOptions, char **pLF, char **pTAB );
586void save_command_line( int argc, char *argv[], INCHI_IOSTREAM *plog );
587void emit_empty_inchi( INPUT_PARMS *ip, long num_inp,
588 char *pLF, char *pTAB, INCHI_IOSTREAM *pout );
589
590#ifndef COMPILE_ANSI_ONLY
591void eat_keyboard_input( void );
592int user_quit( struct tagINCHI_CLOCK *ic, const char *msg, unsigned long ulMaxTime );
593#endif
594
595
596
597#ifndef COMPILE_ALL_CPP
598#ifdef __cplusplus
599}
600#endif
601#endif
602
603#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:2563
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:5039
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:1672
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:2691
void OrigAtData_DebugTrace(ORIG_ATOM_DATA *at_data)
Definition runichi3.c:1108
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:1065
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:2804
void save_command_line(int argc, char *argv[], INCHI_IOSTREAM *plog)
Definition ichimain.c:1044
int CompareHillFormulasNoH(const char *f1, const char *f2, int *num_H1, int *num_H2)
Definition ichimake.c:272
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:2516
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:3051
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:3112
int OrigAtData_AddBond(int this_atom, int other_atom, inp_ATOM *at, int bond_type, int bond_stereo, int *num_bonds)
Definition runichi3.c:2606
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
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:2576
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:1158
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:1085
void POSEContext_Free(POSEContext *context)
Definition runichi2.c:1636
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:1973
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:2681
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:219
@ DO_NEXT_STEP
Definition ichimain.h:220
@ DO_EXIT_FUNCTION
Definition ichimain.h:222
@ DO_CONTINUE_MAIN_LOOP
Definition ichimain.h:223
@ DO_BREAK_MAIN_LOOP
Definition ichimain.h:221
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:4505
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:2933
int OrigAtData_DecreaseBondOrder(int this_atom, int other_atom, inp_ATOM *at)
Definition runichi3.c:2749
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:488
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:1503
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:610
#define TAUT_NUM
Definition mode.h:593
Structure describing a polymer.
Definition inpdef.h:309
Structure describing v. 1.05 extended input supporting V3000; polymers.
Definition inpdef.h:380
Definition ichicant.h:338
Structure describing composite atom data for InChI generation.
Definition inpdef.h:647
Definition ichitime.h:85
Definition ichimain.h:100
int bIgn_UU_Sp3_Iso[TAUT_NUM]
Definition ichimain.h:157
int bIgn_UU_Sp3[TAUT_NUM]
Definition ichimain.h:155
int bIsotopicAtomEqu[TAUT_NUM]
Definition ichimain.h:149
int bAtomEqu[TAUT_NUM]
Definition ichimain.h:142
int n_zy
Definition ichimain.h:168
int bNonTautomeric
Definition ichimain.h:118
int tot_len
Definition ichimain.h:134
int bIsotopicRacemicStereo[TAUT_NUM]
Definition ichimain.h:153
int bInvIsotopicStereo[TAUT_NUM]
Definition ichimain.h:151
int bTag3
Definition ichimain.h:133
int nNumRemovedProtons
Definition ichimain.h:129
char sDifSegs[DIFL_LENGTH][DIFS_LENGTH]
Definition ichimain.h:162
char szTag3[PRINT_INCHI_MAX_TAG_LEN]
Definition ichimain.h:165
int bIgn_UU_Sp2_Iso[TAUT_NUM]
Definition ichimain.h:158
int bRacemicStereo[TAUT_NUM]
Definition ichimain.h:146
int bInvIsotopicStereoOrigNumb[TAUT_NUM]
Definition ichimain.h:152
int bSecondNonTautPass
Definition ichimain.h:115
int bTautomericOutputAllowed
Definition ichimain.h:116
int n_pzz
Definition ichimain.h:167
int bTag1
Definition ichimain.h:131
char szTag1[PRINT_INCHI_MAX_TAG_LEN]
Definition ichimain.h:163
INCHI_SORT * pINChISort2
Definition ichimain.h:172
int bIgn_UU_Sp2[TAUT_NUM]
Definition ichimain.h:156
INCHI_SORT ** pINChISortTautAndNonTaut
Definition ichimain.h:170
int bChargesRadVal[TAUT_NUM]
Definition ichimain.h:159
int bIsotopicTautEqu[TAUT_NUM]
Definition ichimain.h:150
int bNonTautIsIdenticalToTaut
Definition ichimain.h:119
int bOrigCoord[TAUT_NUM]
Definition ichimain.h:160
int bInvStereoOrigNumb[TAUT_NUM]
Definition ichimain.h:145
int bRelativeStereo[TAUT_NUM]
Definition ichimain.h:147
int bNonTautIsoIdentifierNotEmpty
Definition ichimain.h:114
int bIsotopicRelativeStereo[TAUT_NUM]
Definition ichimain.h:154
int bOmitRepetitions
Definition ichimain.h:111
int tot_len2
Definition ichimain.h:135
int bOutputType
Definition ichimain.h:108
INCHI_SORT * pINChISort
Definition ichimain.h:171
int bTautomeric
Definition ichimain.h:117
int bNonTautNonIsoIdentifierNotEmpty
Definition ichimain.h:113
int bOverflow
Definition ichimain.h:106
int bPlainTextTags
Definition ichimain.h:110
int bOutType
Definition ichimain.h:109
char szTag2[PRINT_INCHI_MAX_TAG_LEN]
Definition ichimain.h:164
int bRelRac
Definition ichimain.h:121
int bIsotopic
Definition ichimain.h:123
int bFhTag
Definition ichimain.h:120
int * pSortPrintINChIFlags
Definition ichimain.h:104
int bInvStereo[TAUT_NUM]
Definition ichimain.h:144
int num_comp[TAUT_NUM]
Definition ichimain.h:140
int ATOM_MODE
Definition ichimain.h:101
int num_iso_H[NUM_H_ISOTOPES]
Definition ichimain.h:141
int bTautEqu[TAUT_NUM]
Definition ichimain.h:143
int TAUT_MODE
Definition ichimain.h:102
int nCurINChISegment
Definition ichimain.h:137
int bPolymers
Definition ichimain.h:124
int bUseMulipliers
Definition ichimain.h:112
int bTag2
Definition ichimain.h:132
int bIsotopicOrigNumb[TAUT_NUM]
Definition ichimain.h:148
int nTag
Definition ichimain.h:130
int nSegmAction
Definition ichimain.h:138
int bAbcNumbers
Definition ichimain.h:122
int bAlways
Definition ichimain.h:107
int iCurTautMode
Definition ichimain.h:126
int num_components
Definition ichimain.h:128
Definition ichi.h:209
Definition ichi.h:305
Structure describing input atom data for InChI generation.
Definition inpdef.h:588
Structure describing an input atom.
Definition inpdef.h:142
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
Structure describing normalization and canonicalization flags.
Definition inpdef.h:621
Structure describing structure edits.
Definition inpdef.h:945
Structure describing original atom data.
Definition inpdef.h:433
Structure describing the original structure.
Definition inpdef.h:478
Definition mode.h:1030
Definition mode.h:1016
Definition ichimain.h:179
ORIG_ATOM_DATA OrigAtData
Definition ichimain.h:190
INCHI_IOS_STRING temp_string_container
Definition ichimain.h:195
PINChI_Aux2 * pINChI_Aux2[INCHI_NUM]
Definition ichimain.h:184
INCHI_IOSTREAM * out_file
Definition ichimain.h:188
long num_inp
Definition ichimain.h:194
ORIG_ATOM_DATA PrepAtData[2]
Definition ichimain.h:192
INCHI_IOS_STRING * strbuf
Definition ichimain.h:196
ORIG_ATOM_DATA * orig_inp_data
Definition ichimain.h:191
PINChI2 * pINChI2[INCHI_NUM]
Definition ichimain.h:183
unsigned char save_opt_bits
Definition ichimain.h:197
INPUT_PARMS ip
Definition ichimain.h:181
ORIG_ATOM_DATA * prep_inp_data
Definition ichimain.h:193
char szTitle[MAX_SDF_HEADER+MAX_SDF_VALUE+256]
Definition ichimain.h:182
STRUCT_DATA sd
Definition ichimain.h:180
INCHI_IOSTREAM * prb_file
Definition ichimain.h:189
INCHI_IOSTREAM * inp_file
Definition ichimain.h:185
INCHI_IOSTREAM * log_file
Definition ichimain.h:187
INCHI_IOSTREAM inchi_file[3]
Definition ichimain.h:186
Definition ichimain.h:72
int nStructReadError
Definition ichimain.h:76
int nErrorType
Definition ichimain.h:75
long fPtrEnd
Definition ichimain.h:79
int bChiralFlag
Definition ichimain.h:83
long fPtrStart
Definition ichimain.h:78
int bUserQuitComponentDisplay
Definition ichimain.h:82
INCHI_MODE bTautFlags[INCHI_NUM]
Definition ichimain.h:88
INCHI_MODE bTautFlagsDone[INCHI_NUM]
Definition ichimain.h:89
int bUserQuit
Definition ichimain.h:80
int num_components[INCHI_NUM]
Definition ichimain.h:90
int nErrorCode
Definition ichimain.h:74
int bUserQuitComponent
Definition ichimain.h:81
char pStrErrStruct[STR_ERR_LEN]
Definition ichimain.h:77
unsigned long ulStructTime
Definition ichimain.h:73
int num_taut[INCHI_NUM]
Definition ichimain.h:86
int num_non_taut[INCHI_NUM]
Definition ichimain.h:87
Structure describing file pointers for structures.
Definition inpdef.h:684
@ DIFS_LENGTH
Definition strutil.h:520
@ DIFL_LENGTH
Definition strutil.h:529