#include <ctype.h>
#include <stdlib.h>
#include <string.h>
#include "mode.h"
#include "extr_ct.h"
#include "util.h"
#include "bcf_s.h"
Data Structures | |
struct | tagElData |
Macros | |
#define | is_ascii(c) ((unsigned)(c) < 0x80) |
#define | MIN_ATOM_CHARGE (-2) |
#define | MAX_ATOM_CHARGE 2 |
#define | NEUTRAL_STATE (-MIN_ATOM_CHARGE) |
#define | NUM_ATOM_CHARGES (MAX_ATOM_CHARGE - MIN_ATOM_CHARGE + 1) |
#define | MAX_NUM_VALENCES 5 /* max. number + 1 to provide zero termination */ |
#define | MAXQ 16 |
#define | __MYTOLOWER(c) (((c) >= 'A') && ((c) <= 'Z') ? ((c) - 'A' + 'a') : (c)) |
Typedefs | |
typedef struct tagElData | ELDATA |
Functions | |
int | get_element_chemical_symbol (int nAtNum, char *szElement) |
int | get_element_or_pseudoelement_symbol (int nAtNum, char *szElement) |
int | el_number_in_internal_ref_table (const char *elname) |
int | get_periodic_table_number (const char *elname) |
int | if_skip_add_H (int nPeriodicNum) |
int | get_el_valence (int nPeriodicNum, int charge, int val_num) |
int | get_unusual_el_valence (int nPeriodicNum, int charge, int radical, int bonds_valence, int num_H, int num_bonds) |
int | needed_unusual_el_valence (int nPeriodicNum, int charge, int radical, int bonds_valence, int actual_bonds_valence, int num_H, int num_bonds) |
int | detect_unusual_el_valence (int nPeriodicNum, int charge, int radical, int bonds_valence, int num_H, int num_bonds) |
int | get_el_type (int nPeriodicNum) |
int | is_el_a_metal (int nPeriodicNum) |
int | extract_charges_and_radicals (char *elname, int *pnRadical, int *pnCharge) |
int | extract_H_atoms (char *elname, S_CHAR num_iso_H[]) |
int | get_num_H (const char *elname, int inp_num_H, S_CHAR inp_num_iso_H[], int charge, int radical, int chem_bonds_valence, int atom_input_valence, int bAliased, int bDoNotAddH, int bHasMetalNeighbor) |
int | get_atomic_mass_from_elnum (int nAtNum) |
Get the atomic mass from elnum object. | |
int | get_atomic_mass (const char *elname) |
Get the atomic mass object. | |
AT_NUMB * | is_in_the_list (AT_NUMB *pathAtom, AT_NUMB nNextAtom, int nPathLen) |
int * | is_in_the_ilist (int *pathAtom, int nNextAtom, int nPathLen) |
int | is_ilist_inside (int *ilist, int nlist, int *ilist2, int nlist2) |
int | nBondsValToMetal (inp_ATOM *at, int iat) |
int | num_of_H (inp_ATOM *at, int iat) |
U_CHAR | ion_el_group (int el) |
int | has_other_ion_neigh (inp_ATOM *at, int iat, int iat_ion_neigh) |
int | has_other_ion_in_sphere_2 (inp_ATOM *at, int iat, int iat_ion_neigh) |
int | nNoMetalNumBonds (inp_ATOM *at, int at_no) |
int | nNoMetalBondsValence (inp_ATOM *at, int at_no) |
int | nNoMetalNeighIndex (inp_ATOM *at, int at_no) |
int | nNoMetalOtherNeighIndex (inp_ATOM *at, int at_no, int cur_neigh) |
int | nNoMetalOtherNeighIndex2 (inp_ATOM *at, int at_no, int cur_neigh, int cur_neigh2) |
int | get_endpoint_valence (U_CHAR el_number) |
int | get_endpoint_valence_KET (U_CHAR el_number) |
int | normalize_string (char *name) |
int | dotify_non_printable_chars (char *line) |
int | read_upto_delim (char **pstring, char *field, int maxlen, char *delims) |
int | is_matching_any_delim (char c, char *delims) |
Check if a character is in the list of possible delimiters. | |
void | remove_trailing_spaces (char *p) |
Remove trailing spaces from a string. | |
void | remove_one_lf (char *p) |
Remove one line feed character from the end of the string. | |
int | mystrncpy (char *target, const char *source, unsigned maxlen) |
Copies up to maxlen characters INCLUDING end null from source to target. Fills out the rest of the target with null bytes. Protected from non-zero-terminated source and overlapped target/source. | |
char * | lrtrim (char *p, int *nLen) |
Remove leading and trailing white spaces. | |
void | extract_inchi_substring (char **buf, const char *str, size_t slen) |
void | extract_auxinfo_substring (char **buf, const char *str, size_t slen) |
int | inchi_memicmp (const void *p1, const void *p2, size_t length) |
Compare two memory blocks in a case-insensitive manner. | |
int | inchi_stricmp (const char *s1, const char *s2) |
char * | inchi__strnset (char *s, int val, size_t length) |
char * | inchi__strdup (const char *string) |
Variables | |
const ELDATA | ElData [] |
const int | ERR_ELEM = 255 |
const int | nElDataLen = sizeof(ElData) / sizeof(ElData[0]) - 1 |
#define __MYTOLOWER | ( | c | ) | (((c) >= 'A') && ((c) <= 'Z') ? ((c) - 'A' + 'a') : (c)) |
#define is_ascii | ( | c | ) | ((unsigned)(c) < 0x80) |
#define MAX_ATOM_CHARGE 2 |
#define MAX_NUM_VALENCES 5 /* max. number + 1 to provide zero termination */ |
#define MAXQ 16 |
#define MIN_ATOM_CHARGE (-2) |
#define NEUTRAL_STATE (-MIN_ATOM_CHARGE) |
#define NUM_ATOM_CHARGES (MAX_ATOM_CHARGE - MIN_ATOM_CHARGE + 1) |
int detect_unusual_el_valence | ( | int | nPeriodicNum, |
int | charge, | ||
int | radical, | ||
int | bonds_valence, | ||
int | num_H, | ||
int | num_bonds | ||
) |
int dotify_non_printable_chars | ( | char * | line | ) |
int el_number_in_internal_ref_table | ( | const char * | elname | ) |
void extract_auxinfo_substring | ( | char ** | buf, |
const char * | str, | ||
size_t | slen | ||
) |
int extract_charges_and_radicals | ( | char * | elname, |
int * | pnRadical, | ||
int * | pnCharge | ||
) |
int extract_H_atoms | ( | char * | elname, |
S_CHAR | num_iso_H[] | ||
) |
void extract_inchi_substring | ( | char ** | buf, |
const char * | str, | ||
size_t | slen | ||
) |
int get_atomic_mass | ( | const char * | elname | ) |
Get the atomic mass object.
elname | Element name |
int get_atomic_mass_from_elnum | ( | int | nAtNum | ) |
Get the atomic mass from elnum object.
nAtNum | Element number |
int get_el_type | ( | int | nPeriodicNum | ) |
int get_el_valence | ( | int | nPeriodicNum, |
int | charge, | ||
int | val_num | ||
) |
int get_element_chemical_symbol | ( | int | nAtNum, |
char * | szElement | ||
) |
int get_element_or_pseudoelement_symbol | ( | int | nAtNum, |
char * | szElement | ||
) |
int get_endpoint_valence | ( | U_CHAR | el_number | ) |
int get_endpoint_valence_KET | ( | U_CHAR | el_number | ) |
int get_num_H | ( | const char * | elname, |
int | inp_num_H, | ||
S_CHAR | inp_num_iso_H[], | ||
int | charge, | ||
int | radical, | ||
int | chem_bonds_valence, | ||
int | atom_input_valence, | ||
int | bAliased, | ||
int | bDoNotAddH, | ||
int | bHasMetalNeighbor | ||
) |
int get_periodic_table_number | ( | const char * | elname | ) |
int get_unusual_el_valence | ( | int | nPeriodicNum, |
int | charge, | ||
int | radical, | ||
int | bonds_valence, | ||
int | num_H, | ||
int | num_bonds | ||
) |
int has_other_ion_in_sphere_2 | ( | inp_ATOM * | at, |
int | iat, | ||
int | iat_ion_neigh | ||
) |
int has_other_ion_neigh | ( | inp_ATOM * | at, |
int | iat, | ||
int | iat_ion_neigh | ||
) |
int if_skip_add_H | ( | int | nPeriodicNum | ) |
char * inchi__strdup | ( | const char * | string | ) |
char * inchi__strnset | ( | char * | s, |
int | val, | ||
size_t | length | ||
) |
int inchi_memicmp | ( | const void * | p1, |
const void * | p2, | ||
size_t | length | ||
) |
Compare two memory blocks in a case-insensitive manner.
p1 | Pointer to the first memory block. |
p2 | Pointer to the second memory block. |
length | Number of bytes to compare. |
int inchi_stricmp | ( | const char * | s1, |
const char * | s2 | ||
) |
U_CHAR ion_el_group | ( | int | el | ) |
int is_el_a_metal | ( | int | nPeriodicNum | ) |
int is_ilist_inside | ( | int * | ilist, |
int | nlist, | ||
int * | ilist2, | ||
int | nlist2 | ||
) |
int * is_in_the_ilist | ( | int * | pathAtom, |
int | nNextAtom, | ||
int | nPathLen | ||
) |
int is_matching_any_delim | ( | char | c, |
char * | delims | ||
) |
Check if a character is in the list of possible delimiters.
c | Character to check |
delims | String of delimiter characters |
char * lrtrim | ( | char * | p, |
int * | nLen | ||
) |
Remove leading and trailing white spaces.
p | Input string |
nLen | Output length of the trimmed string |
int mystrncpy | ( | char * | target, |
const char * | source, | ||
unsigned | maxlen | ||
) |
Copies up to maxlen characters INCLUDING end null from source to target. Fills out the rest of the target with null bytes. Protected from non-zero-terminated source and overlapped target/source.
target | Target string |
source | Source string |
maxlen | Maximum length to copy |
int nBondsValToMetal | ( | inp_ATOM * | at, |
int | iat | ||
) |
int needed_unusual_el_valence | ( | int | nPeriodicNum, |
int | charge, | ||
int | radical, | ||
int | bonds_valence, | ||
int | actual_bonds_valence, | ||
int | num_H, | ||
int | num_bonds | ||
) |
int nNoMetalBondsValence | ( | inp_ATOM * | at, |
int | at_no | ||
) |
int nNoMetalNeighIndex | ( | inp_ATOM * | at, |
int | at_no | ||
) |
int nNoMetalNumBonds | ( | inp_ATOM * | at, |
int | at_no | ||
) |
int nNoMetalOtherNeighIndex | ( | inp_ATOM * | at, |
int | at_no, | ||
int | cur_neigh | ||
) |
int nNoMetalOtherNeighIndex2 | ( | inp_ATOM * | at, |
int | at_no, | ||
int | cur_neigh, | ||
int | cur_neigh2 | ||
) |
int normalize_string | ( | char * | name | ) |
int num_of_H | ( | inp_ATOM * | at, |
int | iat | ||
) |
int read_upto_delim | ( | char ** | pstring, |
char * | field, | ||
int | maxlen, | ||
char * | delims | ||
) |
void remove_one_lf | ( | char * | p | ) |
Remove one line feed character from the end of the string.
p | Input string |
void remove_trailing_spaces | ( | char * | p | ) |
Remove trailing spaces from a string.
p | Input string |
const ELDATA ElData[] |
const int ERR_ELEM = 255 |