diff --git a/Phreeqc.cpp b/Phreeqc.cpp index 529aa61e..c4441577 100644 --- a/Phreeqc.cpp +++ b/Phreeqc.cpp @@ -1472,7 +1472,7 @@ Phreeqc::InternalCopy(const Phreeqc *pSrc) for (int i = 0; i < (int)pSrc->elements.size(); i++) { - const char * ptr = string_hsave(pSrc->elements[i]->name); + const char* ptr = string_hsave(pSrc->elements[i]->name); struct element *elt_ptr = element_store(ptr); elt_ptr->gfw = pSrc->elements[i]->gfw; } @@ -1561,7 +1561,7 @@ Phreeqc::InternalCopy(const Phreeqc *pSrc) count_elts = 0; paren_count = 0; char * string = string_duplicate(s_ptr->mole_balance); - char * ptr = string; + const char* ptr = string; get_secondary_in_species(&ptr, 1.0); s_ptr->next_secondary = elt_list_save(); free_check_null(string); diff --git a/Phreeqc.h b/Phreeqc.h index 064b87e1..89f1e57c 100644 --- a/Phreeqc.h +++ b/Phreeqc.h @@ -560,7 +560,7 @@ public: int clear(void); int convert_units(cxxSolution* solution_ptr); struct unknown* find_surface_charge_unknown(std::string& str_ptr, int plane); - std::vector get_list_master_ptrs(const char* ptr, struct master* master_ptr); + std::vector get_list_master_ptrs(const char* cptr, struct master* master_ptr); int inout(void); int is_special(struct species* spec); int mb_for_species_aq(int n); @@ -606,7 +606,7 @@ public: int write_phase_sys_total(int n); // print.cpp ------------------------------- - static char* sformatf(const char* format, ...); + char* sformatf(const char* format, ...); int array_print(LDBLE* array_l, int row_count, int column_count, int max_column_count); int set_pr_in_false(void); @@ -649,11 +649,11 @@ public: int read_input(void); int* read_list_ints_range(const char** ptr, int* count_ints, int positive, int* int_list); - int read_log_k_only(const char* ptr, LDBLE* log_k); - int read_t_c_only(const char* ptr, LDBLE* t_c); - int read_p_c_only(const char* ptr, LDBLE* p_c); - int read_omega_only(const char* ptr, LDBLE* omega); - int read_number_description(const char* ptr, int* n_user, int* n_user_end, + int read_log_k_only(const char* cptr, LDBLE* log_k); + int read_t_c_only(const char* cptr, LDBLE* t_c); + int read_p_c_only(const char* cptr, LDBLE* p_c); + int read_omega_only(const char* cptr, LDBLE* omega); + int read_number_description(const char* cptr, int* n_user, int* n_user_end, char** description, int allow_negative = FALSE); int check_key(const char* str); int check_units(std::string& tot_units, bool alkalinity, bool check_compatibility, @@ -665,19 +665,19 @@ public: int add_psi_master_species(char* token); int read_advection(void); - int read_analytical_expression_only(const char* ptr, LDBLE* log_k); + int read_analytical_expression_only(const char* cptr, LDBLE* log_k); /* VP: Density Start */ - int read_millero_abcdef(const char* ptr, LDBLE* abcdef); + int read_millero_abcdef(const char* cptr, LDBLE* abcdef); /* VP: Density End */ - int read_viscosity_parms(const char* ptr, LDBLE* Jones_Dole); + int read_viscosity_parms(const char* cptr, LDBLE* Jones_Dole); int read_copy(void); int read_debug(void); - int read_delta_h_only(const char* ptr, LDBLE* delta_h, + int read_delta_h_only(const char* cptr, LDBLE* delta_h, DELTA_H_UNIT* units); - int read_aq_species_vm_parms(const char* ptr, LDBLE* delta_v); - int read_vm_only(const char* ptr, LDBLE* delta_v, + int read_aq_species_vm_parms(const char* cptr, LDBLE* delta_v); + int read_vm_only(const char* cptr, LDBLE* delta_v, DELTA_V_UNIT* units); - int read_phase_vm(const char* ptr, LDBLE* delta_v, + int read_phase_vm(const char* cptr, LDBLE* delta_v, DELTA_V_UNIT* units); int read_llnl_aqueous_model_parameters(void); int read_exchange(void); @@ -687,7 +687,7 @@ public: int read_incremental_reactions(void); int read_inverse(void); int read_inv_balances(struct inverse* inverse_ptr, const char* next_char); - int read_inv_isotopes(struct inverse* inverse_ptr, const char* ptr); + int read_inv_isotopes(struct inverse* inverse_ptr, const char* cptr); int read_inv_phases(struct inverse* inverse_ptr, const char* next_char); int read_kinetics(void); LDBLE* read_list_doubles(const char** ptr, int* count_doubles); @@ -841,12 +841,12 @@ protected: struct logk* logk_search(const char* name); struct master* master_alloc(void); static int master_compare(const void* ptr1, const void* ptr2); - int master_delete(const char* ptr); + int master_delete(const char* cptr); public: - struct master* master_bsearch(const char* ptr); - struct master* master_bsearch_primary(const char* ptr); - struct master* master_bsearch_secondary(const char* ptr); - struct master* master_search(const char* ptr, int* n); + struct master* master_bsearch(const char* cptr); + struct master* master_bsearch_primary(const char* cptr); + struct master* master_bsearch_secondary(const char* cptr); + struct master* master_search(const char* cptr, int* n); struct pe_data* pe_data_alloc(void); public: struct pe_data* pe_data_dup(struct pe_data* pe_ptr_old); @@ -854,13 +854,13 @@ public: protected: int pe_data_store(struct pe_data** pe, const char* token); public: - struct phase* phase_bsearch(const char* ptr, int* j, int print); + struct phase* phase_bsearch(const char* cptr, int* j, int print); protected: static int phase_compare(const void* ptr1, const void* ptr2); int phase_delete(int i); struct phase* phase_store(const char* name); public: - struct rate* rate_bsearch(const char* ptr, int* j); + struct rate* rate_bsearch(const char* cptr, int* j); int rate_free(struct rate* rate_ptr); struct rate* rate_copy(struct rate* rate_ptr); struct rate* rate_search(const char* name, int* n); @@ -1054,7 +1054,7 @@ public: #endif int copy_token(char* token_ptr, const char** ptr, int* length); int copy_token(std::string& token, const char** ptr); - int dup_print(const char* ptr, int emphasis); + int dup_print(const char* cptr, int emphasis); int equal(LDBLE a, LDBLE b, LDBLE eps); public: void* free_check_null(void* ptr); @@ -1068,6 +1068,7 @@ protected: int print_centered(const char* string); public: static int replace(const char* str1, const char* str2, char* str); + static void replace(std::string &stds, const char* str1, const char* str2); static bool replace(const char* str1, const char* str2, std::string& str); static int strcmp_nocase(const char* str1, const char* str2); static int strcmp_nocase_arg1(const char* str1, const char* str2); @@ -1088,9 +1089,12 @@ public: void strings_map_clear(); protected: char* string_pad(const char* str, int i); - int string_trim(char* str); - int string_trim_right(char* str); - int string_trim_left(char* str); + static int string_trim(char* str); + static int string_trim_right(char* str); + static int string_trim_left(char* str); + static void string_trim(std::string& str); + static void string_trim_left(std::string& str); + static void string_trim_right(std::string& str); static LDBLE under(LDBLE xval); int get_input_errors(void); int isamong(char c, const char* s_l); diff --git a/basicsubs.cpp b/basicsubs.cpp index 2b0c4f2b..159a34b0 100644 --- a/basicsubs.cpp +++ b/basicsubs.cpp @@ -814,7 +814,7 @@ calc_surface_charge(const char *surface_name) /* ---------------------------------------------------------------------- */ { char token[MAX_LENGTH], token1[MAX_LENGTH]; - char *ptr; + const char* cptr; int i, j, k; LDBLE charge; struct rxn_token_temp *token_ptr; @@ -840,8 +840,8 @@ calc_surface_charge(const char *surface_name) master_ptr = trxn.token[i].s->primary; strcpy(token, master_ptr->elt->name); replace("_", " ", token); - ptr = token; - copy_token(token1, &ptr, &j); + cptr = token; + copy_token(token1, &cptr, &j); if (strcmp(surface_name, token1) == 0) { charge += s_x[k]->moles * s_x[k]->z; @@ -1966,7 +1966,7 @@ match_elts_in_species(const char *name, const char *mytemplate) */ int i, i1, l, case_no, match; char c, c1; - char *ptr, *ptr1; + const char* cptr, *ptr1; LDBLE d; char element[MAX_LENGTH]; char token[MAX_LENGTH], equal_list[MAX_LENGTH]; @@ -1993,11 +1993,11 @@ match_elts_in_species(const char *name, const char *mytemplate) replace("--", "-2", token); } - ptr = token; + cptr = token; std::vector< std::pair > match_vector; - while ((c = *ptr) != '\0') + while ((c = *cptr) != '\0') { - c1 = *(ptr + 1); + c1 = *(cptr + 1); str[0] = c; str[1] = '\0'; /* @@ -2008,11 +2008,11 @@ match_elts_in_species(const char *name, const char *mytemplate) /* * Get new element and subscript */ - if (get_elt(&ptr, element, &l) == ERROR) + if (get_elt(&cptr, element, &l) == ERROR) { return (ERROR); } - if (get_num(&ptr, &d) == ERROR) + if (get_num(&cptr, &d) == ERROR) { return (ERROR); } @@ -2023,7 +2023,7 @@ match_elts_in_species(const char *name, const char *mytemplate) { std::pair pr(str, 1.0); match_vector.push_back(pr); - ptr += 1; + cptr += 1; } } /* @@ -2031,8 +2031,8 @@ match_elts_in_species(const char *name, const char *mytemplate) */ strcpy(template1, mytemplate); squeeze_white(template1); - ptr = template1; - while (extract_bracket(&ptr, equal_list) == TRUE) + cptr = template1; + while (extract_bracket(&cptr, equal_list) == TRUE) { replace("{", "", equal_list); replace("}", "", equal_list); @@ -2102,8 +2102,8 @@ match_elts_in_species(const char *name, const char *mytemplate) */ strcpy(template1, mytemplate); squeeze_white(template1); - ptr = template1; - while (extract_bracket(&ptr, equal_list) == TRUE) + cptr = template1; + while (extract_bracket(&cptr, equal_list) == TRUE) { strcpy(equal_list1, equal_list); replace("{", "", equal_list); @@ -2124,7 +2124,7 @@ match_elts_in_species(const char *name, const char *mytemplate) } replace(equal_list1, elt_name.c_str(), template1); squeeze_white(template1); - ptr = template1; + cptr = template1; } /* * Compare string @@ -2160,13 +2160,13 @@ match_elts_in_species(const char *name, const char *mytemplate) break; case 1: /* leading wild card */ - if ((ptr = strstr(token, template1)) == NULL) + if ((cptr = strstr(token, template1)) == NULL) { match = FALSE; } else { - if (strcmp(ptr, template1) == 0) + if (strcmp(cptr, template1) == 0) match = TRUE; } break; @@ -2186,14 +2186,15 @@ match_elts_in_species(const char *name, const char *mytemplate) /* ---------------------------------------------------------------------- */ int Phreeqc:: -extract_bracket(char **string, char *bracket_string) +extract_bracket(const char **string, char *bracket_string) /* ---------------------------------------------------------------------- */ { - char *ptr, *ptr1; + const char* cptr; + char *ptr1; - if ((ptr = strstr(*string, "{")) == NULL) + if ((cptr = strstr(*string, "{")) == NULL) return (FALSE); - strcpy(bracket_string, ptr); + strcpy(bracket_string, cptr); if ((ptr1 = strstr(bracket_string, "}")) == NULL) { error_string = sformatf( @@ -2272,8 +2273,8 @@ surf_total(const char *total_name, const char *surface_name) //strcpy(token, s_x[j]->next_elt[i].elt->name); //replace("_", " ", token); - //ptr = token; - //copy_token(name, &ptr, &k); + //cptr = token; + //copy_token(name, &cptr, &k); token = s_x[j]->next_elt[i].elt->name; replace("_", " ", token); std::string::iterator b = token.begin(); @@ -2360,7 +2361,7 @@ surf_total_no_redox(const char *total_name, const char *surface_name) int i, j, k; char name[MAX_LENGTH], token[MAX_LENGTH]; char surface_name_local[MAX_LENGTH]; - char *ptr; + const char* cptr; if (use.Get_surface_ptr() == NULL) return (0); @@ -2374,8 +2375,8 @@ surf_total_no_redox(const char *total_name, const char *surface_name) continue; strcpy(token, x[j]->master[0]->elt->name); replace("_", " ", token); - ptr = token; - copy_token(name, &ptr, &k); + cptr = token; + copy_token(name, &cptr, &k); if (surface_name != NULL) { if (strcmp(name, surface_name) == 0) @@ -2404,8 +2405,8 @@ surf_total_no_redox(const char *total_name, const char *surface_name) strcpy(token, s_x[j]->next_elt[i].elt->name); replace("_", " ", token); - ptr = token; - copy_token(name, &ptr, &k); + cptr = token; + copy_token(name, &cptr, &k); if (strcmp(name, surface_name_local) == 0) { /* @@ -2821,8 +2822,8 @@ kinetics_formula(std::string kin_name, cxxNameDouble &stoichiometry) std::string name = it->first; LDBLE coef = it->second; char * temp_name = string_duplicate(name.c_str()); - char *ptr = temp_name; - get_elts_in_species(&ptr, coef); + const char* cptr = temp_name; + get_elts_in_species(&cptr, coef); free_check_null(temp_name); } } diff --git a/class_main.cpp b/class_main.cpp index 78f3d148..24fa50e0 100644 --- a/class_main.cpp +++ b/class_main.cpp @@ -332,7 +332,7 @@ process_file_names(int argc, char *argv[], std::istream **db_cookie, char query[2 * MAX_LENGTH]; char in_file[2 * MAX_LENGTH], out_file[2 * MAX_LENGTH], db_file[2 * MAX_LENGTH]; char *env_ptr; - char *ptr; + const char* cptr; /* * Prepare error handling */ @@ -383,8 +383,8 @@ process_file_names(int argc, char *argv[], std::istream **db_cookie, * Open file for output */ strcpy(query, "Name of output file?"); - ptr = default_name; - copy_token(token, &ptr, &l); + cptr = default_name; + copy_token(token, &cptr, &l); strcpy(token, default_name); strcat(token, ".out"); std::ofstream * local_output_stream = NULL; @@ -422,12 +422,12 @@ process_file_names(int argc, char *argv[], std::istream **db_cookie, phrq_io->push_istream(local_input_stream); if (get_line() == KEYWORD) { - ptr = line; - copy_token(token, &ptr, &l); + cptr = line; + copy_token(token, &cptr, &l); if (strcmp_nocase(token, "database") == 0) { user_database = (char *) free_check_null(user_database); - user_database = string_duplicate(ptr); + user_database = string_duplicate(cptr); if (string_trim(user_database) == EMPTY) { warning_msg("DATABASE file name is missing; default database will be used."); @@ -529,7 +529,7 @@ process_file_names(int argc, char *argv[], std::istream **db_cookie, char query[2 * MAX_LENGTH]; char in_file[2 * MAX_LENGTH], out_file[2 * MAX_LENGTH], db_file[2 * MAX_LENGTH]; char *env_ptr; - char *ptr; + const char* cptr; /* * Prepare error handling */ @@ -580,8 +580,8 @@ process_file_names(int argc, char *argv[], std::istream **db_cookie, * Open file for output */ strcpy(query, "Name of output file?"); - ptr = default_name; - copy_token(token, &ptr, &l); + cptr = default_name; + copy_token(token, &cptr, &l); strcat(token, ".out"); std::ofstream * local_output_stream; if (argc <= 1) @@ -618,12 +618,12 @@ process_file_names(int argc, char *argv[], std::istream **db_cookie, phrq_io->push_istream(local_input_stream); if (get_line() == KEYWORD) { - ptr = line; - copy_token(token, &ptr, &l); + cptr = line; + copy_token(token, &cptr, &l); if (strcmp_nocase(token, "database") == 0) { user_database = (char *) free_check_null(user_database); - user_database = string_duplicate(ptr); + user_database = string_duplicate(cptr); if (string_trim(user_database) == EMPTY) { warning_msg("DATABASE file name is missing; default database will be used."); diff --git a/inverse.cpp b/inverse.cpp index 26a6e824..f140974d 100644 --- a/inverse.cpp +++ b/inverse.cpp @@ -4044,7 +4044,7 @@ dump_netpath(struct inverse *inverse_ptr) { int j; std::string string; - char *ptr; + const char* cptr; if (inverse_ptr->netpath == NULL) return; @@ -4079,8 +4079,8 @@ dump_netpath(struct inverse *inverse_ptr) /* flags and description */ char * description = string_duplicate(it->second.Get_description().c_str()); - ptr = description; - j = copy_token(string, &ptr); + cptr = description; + j = copy_token(string, &cptr); if (j != EMPTY) { string = sformatf("%s", description); @@ -4397,7 +4397,7 @@ dump_netpath_pat(struct inverse *inv_ptr) cxxSolution *solution_ptr, *solution_ptr_orig; struct master *master_ptr; LDBLE d1, d2, d3; - char *ptr; + const char* cptr; LDBLE sum, sum1, sum_iso, d; std::vector array_save, l_delta_save; int count_unknowns_save, max_row_count_save, max_column_count_save, temp, @@ -4517,9 +4517,9 @@ dump_netpath_pat(struct inverse *inv_ptr) /* Header */ char * description = string_duplicate(solution_ptr_orig->Get_description().c_str()); - ptr = description; + cptr = description; std::string string; - if (copy_token(string, &ptr) != EMPTY) + if (copy_token(string, &cptr) != EMPTY) { fprintf(netpath_file, "%d. %s\n", count_inverse_models, solution_ptr_orig->Get_description().c_str()); diff --git a/isotopes.cpp b/isotopes.cpp index 15b78017..597ed2b0 100644 --- a/isotopes.cpp +++ b/isotopes.cpp @@ -28,7 +28,7 @@ read_isotopes(void) struct element *elt_ptr; int return_value, opt, opt_save; - char *next_char; + const char* next_char; const char *opt_list[] = { "isotope", /* 0 */ "total_is_major" /* 1 */ @@ -160,14 +160,14 @@ read_calculate_values(void) * ERROR if error occurred reading data * */ - char *ptr; + const char* cptr; int l; int return_value, opt, opt_save; char token[MAX_LENGTH]; struct calculate_value *calculate_value_ptr; char *description; int n_user, n_user_end; - char *next_char; + const char* next_char; const char *opt_list[] = { "start", /* 0 */ "end" /* 1 */ @@ -176,8 +176,8 @@ read_calculate_values(void) /* * Read advection number (not currently used) */ - ptr = line; - read_number_description(ptr, &n_user, &n_user_end, &description); + cptr = line; + read_number_description(cptr, &n_user, &n_user_end, &description); description = (char *) free_check_null(description); opt_save = OPTION_DEFAULT; /* @@ -276,14 +276,14 @@ read_isotope_ratios(void) * ERROR if error occurred reading data * */ - char *ptr; + const char* cptr; int l; int return_value, opt, opt_save; char token[MAX_LENGTH]; struct isotope_ratio *isotope_ratio_ptr; char *description; int n_user, n_user_end; - char *next_char; + const char* next_char; const char *opt_list[] = { "no_options" /* 0 */ }; @@ -291,8 +291,8 @@ read_isotope_ratios(void) /* * Read number (not currently used) */ - ptr = line; - read_number_description(ptr, &n_user, &n_user_end, &description); + cptr = line; + read_number_description(cptr, &n_user, &n_user_end, &description); description = (char *) free_check_null(description); opt_save = OPTION_DEFAULT; /* @@ -375,14 +375,14 @@ read_isotope_alphas(void) * ERROR if error occurred reading data * */ - char *ptr; + const char* cptr; int l; int return_value, opt, opt_save; char token[MAX_LENGTH]; struct isotope_alpha *isotope_alpha_ptr; char *description; int n_user, n_user_end; - char *next_char; + const char* next_char; const char *opt_list[] = { "no_options" /* 0 */ }; @@ -390,8 +390,8 @@ read_isotope_alphas(void) /* * Read number (not currently used) */ - ptr = line; - read_number_description(ptr, &n_user, &n_user_end, &description); + cptr = line; + read_number_description(cptr, &n_user, &n_user_end, &description); description = (char *) free_check_null(description); opt_save = OPTION_DEFAULT; /* diff --git a/kinetics.cpp b/kinetics.cpp index bceaf1a0..82d0f620 100644 --- a/kinetics.cpp +++ b/kinetics.cpp @@ -187,7 +187,7 @@ RESTART: // if limiting rates, jump to here else { char * temp_name = string_duplicate(name.c_str()); - char * ptr = temp_name; + const char* ptr = temp_name; if (get_elts_in_species(&ptr, coef * coef1) == ERROR) { error_string = sformatf("Error in -formula: %s", temp_name); @@ -211,7 +211,7 @@ RESTART: // if limiting rates, jump to here { /* found kinetics component */ char * formula = string_duplicate(exchange_ptr->Get_exchange_comps()[j].Get_formula().c_str()); - char * ptr = formula; + const char* ptr = formula; if (get_elts_in_species(&ptr, -coef*exchange_ptr->Get_exchange_comps()[j].Get_phase_proportion()) == ERROR) { error_string = sformatf("Error in -formula: %s", formula); @@ -236,7 +236,7 @@ RESTART: // if limiting rates, jump to here { /* found kinetics component */ char * temp_formula = string_duplicate(surface_comp_ptr->Get_formula().c_str()); - char *ptr = temp_formula; + const char* cptr = temp_formula; /* Surface = 0 when m becomes low ... */ if (0.9 * surface_comp_ptr->Get_phase_proportion() * @@ -251,7 +251,7 @@ RESTART: // if limiting rates, jump to here } else { - if (get_elts_in_species(&ptr, -coef * surface_comp_ptr->Get_phase_proportion()) == ERROR) + if (get_elts_in_species(&cptr, -coef * surface_comp_ptr->Get_phase_proportion()) == ERROR) { error_string = sformatf("Error in -formula: %s", temp_formula); error_msg(error_string, CONTINUE); diff --git a/mainsubs.cpp b/mainsubs.cpp index 98561920..5c2b7423 100644 --- a/mainsubs.cpp +++ b/mainsubs.cpp @@ -2233,8 +2233,11 @@ do_status(void) } //pr.headings = TRUE; // set in class_main; not set for IPhreeqc LDBLE ext = (double) clock() / CLOCKS_PER_SEC; +#define TESTING +#ifndef TESTING dup_print(sformatf("End of Run after %g Seconds.", ext), TRUE); screen_msg(sformatf("\nEnd of Run after %g Seconds.\n", ext)); +#endif // appt this gives output when the charts are active... phrq_io->output_flush(); phrq_io->error_flush(); diff --git a/parse.cpp b/parse.cpp index 3c5da231..70ff78d8 100644 --- a/parse.cpp +++ b/parse.cpp @@ -26,7 +26,7 @@ parse_eq(char *eqn, struct elt_list **elt_ptr, int association) int i; LDBLE coef, l_z; char c; - char *ptr; + const char* cptr; char token[MAX_LENGTH]; paren_count = 0; @@ -53,8 +53,8 @@ parse_eq(char *eqn, struct elt_list **elt_ptr, int association) */ count_trxn = 0; trxn.dz[0] = trxn.dz[1] = trxn.dz[2] = 0.0; - ptr = eqn; - c = ptr[0]; + cptr = eqn; + c = cptr[0]; for (;;) { if (c == '=') @@ -65,11 +65,11 @@ parse_eq(char *eqn, struct elt_list **elt_ptr, int association) error_msg(error_string, CONTINUE); return (ERROR); } - if (get_species(&ptr) == ERROR) + if (get_species(&cptr) == ERROR) { return (ERROR); } - c = ptr[0]; + c = cptr[0]; if (association == FALSE) { trxn.token[count_trxn].coef *= -1.0; @@ -79,10 +79,10 @@ parse_eq(char *eqn, struct elt_list **elt_ptr, int association) /* * Get coefficient, name, and charge of species for dissociation reaction */ - ptr++; + cptr++; if (association == TRUE) { - if (get_species(&ptr) == ERROR) + if (get_species(&cptr) == ERROR) { return (ERROR); } @@ -102,16 +102,16 @@ parse_eq(char *eqn, struct elt_list **elt_ptr, int association) /* * Get reaction species from rhs of equation */ - c = ptr[0]; + c = cptr[0]; for (;;) { if (c == '\0') break; - if (get_species(&ptr) == ERROR) + if (get_species(&cptr) == ERROR) { return (ERROR); } - c = ptr[0]; + c = cptr[0]; if (association == TRUE) { trxn.token[count_trxn].coef *= -1.0; @@ -131,7 +131,7 @@ parse_eq(char *eqn, struct elt_list **elt_ptr, int association) replace("(S)", "", token); replace("(g)", "", token); replace("(G)", "", token); - char *char_ptr = token; + const char *char_ptr = token; if (get_elts_in_species(&char_ptr, trxn.token[0].coef) == ERROR) { @@ -214,7 +214,7 @@ check_eqn(int association) { sumcharge += (trxn.token[i].coef) * (trxn.token[i].z); char * temp_name = string_duplicate(trxn.token[i].name); - char *t_ptr = temp_name; + const char *t_ptr = temp_name; if (get_elts_in_species(&t_ptr, trxn.token[i].coef) == ERROR) { free_check_null(temp_name); @@ -283,7 +283,7 @@ get_charge(char *charge, LDBLE * l_z) */ { int i; - char *ptr; + char* ptr; char c, c1; /* * Charge is zero @@ -333,6 +333,7 @@ get_charge(char *charge, LDBLE * l_z) { if (*ptr != '0') { + char* ptr; *l_z = strtod(charge, &ptr); return (OK); } @@ -404,12 +405,14 @@ get_coef(LDBLE * coef, const char **eqnaddr) { int i; char c, c1; - char *ptr, *ptr1, *rest; + const char* cptr; + const char* rest; + char* ptr1; char token[MAX_LENGTH];; rest = *eqnaddr; - ptr = *eqnaddr; /* address of a position in eqn */ - c = *ptr; /* character in eqn */ + cptr = *eqnaddr; /* address of a position in eqn */ + c = *cptr; /* character in eqn */ *coef = 0.0; /* * No leading sign or number @@ -423,12 +426,12 @@ get_coef(LDBLE * coef, const char **eqnaddr) /* * Leading +, no digits */ - c1 = *(ptr + 1); + c1 = *(cptr + 1); if (c == '+' && (isalpha((int) c1) || (c1 == '(') || (c1 == ')') || (c1 == '[') || (c1 == ']'))) { - *eqnaddr = ++ptr; + *eqnaddr = ++cptr; *coef = 1.0; return (OK); } @@ -439,7 +442,7 @@ get_coef(LDBLE * coef, const char **eqnaddr) (isalpha((int) c1) || (c1 == '(') || (c1 == ')') || (c1 == '[') || (c1 == ']'))) { - *eqnaddr = ++ptr; + *eqnaddr = ++cptr; *coef = -1.0; return (OK); } @@ -459,10 +462,10 @@ get_coef(LDBLE * coef, const char **eqnaddr) error_msg(error_string, CONTINUE); return (ERROR); } - c = *(++ptr); + c = *(++cptr); } token[i] = '\0'; - *eqnaddr = ptr; + *eqnaddr = cptr; errno = 0; *coef = strtod(token, &ptr1); if ((errno == ERANGE) || (*ptr1 != '\0')) @@ -575,7 +578,7 @@ get_elts_in_species(const char **t_ptr, LDBLE coef) char c, c1; LDBLE d; char element[MAX_LENGTH]; - char** t_ptr_save = t_ptr; + const char** t_ptr_save = t_ptr; while (((c = **t_ptr) != '+') && (c != '-') && (c != '\0')) { /* close parenthesis */ @@ -708,7 +711,7 @@ get_secondary(const char **t_ptr, char *element, int *i) { int j; char c; - char *ptr; + const char* cptr; c = *(*t_ptr)++; if (c == '\0') @@ -766,7 +769,7 @@ get_secondary(const char **t_ptr, char *element, int *i) * Check if secondary master species element */ j = *i; - ptr = *t_ptr; + cptr = *t_ptr; if (c == '(') { /* copy parenthesis */ @@ -796,7 +799,7 @@ get_secondary(const char **t_ptr, char *element, int *i) if (c != ')') { *i = j; - *t_ptr = ptr; + *t_ptr = cptr; /* put in closing parenthesis */ } else @@ -830,7 +833,7 @@ get_secondary_in_species(const char **t_ptr, LDBLE coef) char c, c1; LDBLE d; char element[MAX_LENGTH]; - char** t_ptr_save = t_ptr; + const char** t_ptr_save = t_ptr; while (((c = **t_ptr) != '+') && (c != '-') && (c != '\0')) { /* close parenthesis */ @@ -962,7 +965,7 @@ get_num(const char **t_ptr, LDBLE * num) { int i, decimal; char c; - char *ptr1; + char* ptr1; char token[MAX_LENGTH]; *num = 1.0; @@ -1005,7 +1008,7 @@ get_num(const char **t_ptr, LDBLE * num) /* ---------------------------------------------------------------------- */ int Phreeqc:: -get_species(const char **ptr) +get_species(const char **cptr) /* ---------------------------------------------------------------------- */ { /* Function reads next species out of the equation, including optional @@ -1013,7 +1016,7 @@ get_species(const char **ptr) * store in trxn.token[count]. * * Arguments: - * **ptr input, points to the position in the equation to pick up the species. + * **cptr input, points to the position in the equation to pick up the species. * output, points to the next character after the species charge. * */ @@ -1023,12 +1026,12 @@ get_species(const char **ptr) if ((size_t) count_trxn + 1 > trxn.token.size()) trxn.token.resize((size_t)count_trxn + 1); /* coefficient */ - if (get_coef(&(trxn.token[count_trxn].coef), ptr) == ERROR) + if (get_coef(&(trxn.token[count_trxn].coef), cptr) == ERROR) { return (ERROR); } /* name and charge */ - if (get_token(ptr, string, &trxn.token[count_trxn].z, &l) == ERROR) + if (get_token(cptr, string, &trxn.token[count_trxn].z, &l) == ERROR) { return (ERROR); } diff --git a/pitzer.cpp b/pitzer.cpp index 4da1eafd..c7b7247c 100644 --- a/pitzer.cpp +++ b/pitzer.cpp @@ -571,7 +571,7 @@ read_pitzer(void) pitz_param_type pzp_type; int return_value, opt, opt_save; - char *next_char; + const char* next_char; const char *opt_list[] = { "b0", /* 0 */ "b1", /* 1 */ diff --git a/pitzer_structures.cpp b/pitzer_structures.cpp index 93d8ccd3..1d9623c1 100644 --- a/pitzer_structures.cpp +++ b/pitzer_structures.cpp @@ -68,7 +68,7 @@ pitz_param_read(char *string, int n) * */ int l, i, j, k; - char *ptr; + const char* cptr; char token[2 * MAX_LENGTH]; struct pitz_param pzp, *pzp_ptr; @@ -78,13 +78,13 @@ pitz_param_read(char *string, int n) return (NULL); pitz_param_init(&pzp); - ptr = string; - if (copy_token(token, &ptr, &l) == EMPTY) + cptr = string; + if (copy_token(token, &cptr, &l) == EMPTY) return (NULL); - ptr = string; + cptr = string; for (i = 0; i < n; i++) { - int j = copy_token(token, &ptr, &l); + int j = copy_token(token, &cptr, &l); if (j == EMPTY) return (NULL); if (j != UPPER && token[0] != '(') @@ -99,7 +99,7 @@ pitz_param_read(char *string, int n) k = 0; for (i = 0; i < 6; i++) { - if (copy_token(token, &ptr, &l) == EMPTY) + if (copy_token(token, &cptr, &l) == EMPTY) break; j = sscanf(token, SCANFORMAT, &pzp.a[i]); if (j <= 0) diff --git a/prep.cpp b/prep.cpp index 5fbd003b..33aaeae6 100644 --- a/prep.cpp +++ b/prep.cpp @@ -309,9 +309,9 @@ quick_setup(void) /* test that charge and surface match */ cxxSurfaceComp *comp_ptr = use.Get_surface_ptr()->Find_comp(x[i]->surface_comp); char * temp_formula = string_duplicate(comp_ptr->Get_formula().c_str()); - char * ptr = temp_formula; + const char* ptr = temp_formula; copy_token(token, &ptr, &l); - char * ptr1 = token; + const char* ptr1 = token; get_elt(&ptr1, name, &l); ptr1 = strchr(name, '_'); if (ptr1 != NULL) @@ -656,7 +656,7 @@ build_ss_assemblage(void) int row, col; struct master *master_ptr; struct rxn_token *rxn_ptr; - char *ptr; + const char* cptr; if (ss_unknown == NULL) return (OK); @@ -760,8 +760,8 @@ build_ss_assemblage(void) count_elts = 0; paren_count = 0; char * token = string_duplicate(x[i]->phase->formula); - ptr = token; - get_elts_in_species(&ptr, 1.0); + cptr = token; + get_elts_in_species(&cptr, 1.0); free_check_null(token); /* * Go through elements in phase @@ -1373,7 +1373,7 @@ build_pure_phases(void) */ bool stop; std::string token; - char *ptr; + const char* cptr; struct master *master_ptr; struct rxn_token *rxn_ptr; /* @@ -1439,15 +1439,15 @@ build_pure_phases(void) if (comp_ptr->Get_add_formula().size() > 0) { char * char_name = string_duplicate(comp_ptr->Get_add_formula().c_str()); - ptr = char_name; - get_elts_in_species(&ptr, 1.0); + cptr = char_name; + get_elts_in_species(&cptr, 1.0); free_check_null(char_name); } else { char * char_name = string_duplicate(x[i]->phase->formula); - ptr = char_name; - get_elts_in_species(&ptr, 1.0); + cptr = char_name; + get_elts_in_species(&cptr, 1.0); free_check_null(char_name); } /* @@ -1889,8 +1889,8 @@ convert_units(cxxSolution *solution_ptr) else { char * temp_desc = string_duplicate(comp_ref.Get_description().c_str()); - char *ptr = temp_desc; - copy_token(token, &ptr); + const char* cptr = temp_desc; + copy_token(token, &cptr); master_ptr = master_bsearch(token.c_str()); free_check_null(temp_desc); if (master_ptr != NULL) @@ -1988,11 +1988,11 @@ convert_units(cxxSolution *solution_ptr) /* ---------------------------------------------------------------------- */ std::vector Phreeqc:: -get_list_master_ptrs(char *ptr, struct master *master_ptr) +get_list_master_ptrs(const char* cptr, struct master *master_ptr) /* ---------------------------------------------------------------------- */ { /* - * Input: ptr contains a list of one or more master species names + * Input: cptr contains a list of one or more master species names * Output: space is allocated and a list of master species pointers is * returned. */ @@ -2054,7 +2054,7 @@ get_list_master_ptrs(char *ptr, struct master *master_ptr) * First in list is secondary species, Include all valences from input */ master_ptr_list.push_back(master_ptr0); - while (copy_token(token, &ptr, &l) != EMPTY) + while (copy_token(token, &cptr, &l) != EMPTY) { master_ptr = master_bsearch(token); if (master_ptr != NULL) @@ -2947,7 +2947,7 @@ add_surface_charge_balance(void) * Include charge balance in list for mass-balance equations */ int i; - char *ptr; + const char* cptr; std::string token; struct master *master_ptr; @@ -2999,8 +2999,8 @@ add_surface_charge_balance(void) * Include charge balance in list for mass-balance equations */ char * temp_name = string_duplicate(master_ptr->elt->name); - ptr = temp_name; - get_secondary_in_species(&ptr, 1.0); + cptr = temp_name; + get_secondary_in_species(&cptr, 1.0); free_check_null(temp_name); return (OK); @@ -3062,8 +3062,8 @@ add_cd_music_charge_balances(int n) */ { char * temp_name = string_duplicate( master_ptr->elt->name); - char *ptr = temp_name; - get_secondary_in_species(&ptr, s[n]->dz[0]); + const char* cptr = temp_name; + get_secondary_in_species(&cptr, s[n]->dz[0]); free_check_null(temp_name); } /* @@ -3077,8 +3077,8 @@ add_cd_music_charge_balances(int n) */ { char * temp_name = string_duplicate( master_ptr->elt->name); - char *ptr = temp_name; - get_secondary_in_species(&ptr, s[n]->dz[1]); + const char* cptr = temp_name; + get_secondary_in_species(&cptr, s[n]->dz[1]); free_check_null(temp_name); } /* @@ -3092,8 +3092,8 @@ add_cd_music_charge_balances(int n) */ { char * temp_name = string_duplicate(master_ptr->elt->name); - char *ptr = temp_name; - get_secondary_in_species(&ptr, s[n]->dz[2]); + const char* cptr = temp_name; + get_secondary_in_species(&cptr, s[n]->dz[2]); free_check_null(temp_name); } @@ -4183,7 +4183,7 @@ setup_solution(void) */ struct master *master_ptr; cxxSolution *solution_ptr; - char *ptr; + const char* cptr; std::string token; struct master_isotope *master_isotope_ptr; struct phase *phase_ptr; @@ -4223,8 +4223,8 @@ setup_solution(void) comp_ptr = &(comp_it->second); } char * temp_desc = string_duplicate(it->first.c_str()); - ptr = temp_desc; - copy_token(token, &ptr); + cptr = temp_desc; + copy_token(token, &cptr); master_ptr = master_bsearch(token.c_str()); /* * Check that total not <= zero @@ -4263,7 +4263,7 @@ setup_solution(void) /* * Store list of master species pointers, set master[i].in and master[i].rxn for list */ - x[count_unknowns]->master = get_list_master_ptrs(ptr, master_ptr); + x[count_unknowns]->master = get_list_master_ptrs(cptr, master_ptr); if (comp_ptr) { setup_master_rxn(x[count_unknowns]->master, comp_ptr->Get_pe_reaction()); @@ -4288,8 +4288,8 @@ setup_solution(void) */ free_check_null(temp_desc); temp_desc = string_duplicate(it->first.c_str()); - ptr = temp_desc; - copy_token(token, &ptr); + cptr = temp_desc; + copy_token(token, &cptr); Utilities::str_tolower(token); if (strstr(token.c_str(), "alk") != NULL) { @@ -4347,8 +4347,8 @@ setup_solution(void) if (comp_ptr && comp_ptr->Get_equation_name().size() > 0) { char * temp_eq_name = string_duplicate(comp_ptr->Get_equation_name().c_str()); - ptr = temp_eq_name; - copy_token(token, &ptr); + cptr = temp_eq_name; + copy_token(token, &cptr); Utilities::str_tolower(token); if (strstr(token.c_str(), "charge") != NULL) { @@ -5131,8 +5131,8 @@ write_mb_eqn_x(void) { j = count_elts; char * temp_name = string_duplicate(trxn.token[i].s->name); - char * ptr = temp_name; - get_elts_in_species(&ptr, trxn.token[i].coef); + const char* cptr = temp_name; + get_elts_in_species(&cptr, trxn.token[i].coef); free_check_null(temp_name); for (k = j; k < count_elts; k++) { @@ -5153,15 +5153,15 @@ write_mb_eqn_x(void) if (trxn.token[i].s->secondary == NULL) { char * temp_name = string_duplicate(trxn.token[i].s->primary->elt->name); - char *ptr = temp_name; - get_secondary_in_species(&ptr, trxn.token[i].coef); + const char* cptr = temp_name; + get_secondary_in_species(&cptr, trxn.token[i].coef); free_check_null(temp_name); } else { char * temp_name = string_duplicate(trxn.token[i].s->secondary->elt->name); - ptr = temp_name; - get_secondary_in_species(&ptr, trxn.token[i].coef); + cptr = temp_name; + get_secondary_in_species(&cptr, trxn.token[i].coef); free_check_null(temp_name); } } @@ -5194,15 +5194,15 @@ write_mb_for_species_list(int n) if (trxn.token[i].s->secondary == NULL) { char * temp_name = string_duplicate(trxn.token[i].s->primary->elt->name); - char * ptr = temp_name; - get_secondary_in_species(&ptr, trxn.token[i].coef); + const char* cptr = temp_name; + get_secondary_in_species(&cptr, trxn.token[i].coef); free_check_null(temp_name); } else { char * temp_name = string_duplicate(trxn.token[i].s->secondary->elt->name); - char * ptr = temp_name; - if (get_secondary_in_species(&ptr, trxn.token[i].coef) == ERROR) + const char* cptr = temp_name; + if (get_secondary_in_species(&cptr, trxn.token[i].coef) == ERROR) { input_error++; error_string = sformatf( "Error parsing %s.", trxn.token[i].s->secondary->elt->name); @@ -5256,15 +5256,15 @@ write_phase_sys_total(int n) if (trxn.token[i].s->secondary == NULL) { char * temp_name = string_duplicate(trxn.token[i].s->primary->elt->name); - char *ptr = temp_name; - get_secondary_in_species(&ptr, trxn.token[i].coef); + const char* cptr = temp_name; + get_secondary_in_species(&cptr, trxn.token[i].coef); free_check_null(temp_name); } else { char * temp_name = string_duplicate(trxn.token[i].s->secondary->elt->name); - char *ptr = temp_name; - get_secondary_in_species(&ptr, trxn.token[i].coef); + const char* cptr = temp_name; + get_secondary_in_species(&cptr, trxn.token[i].coef); free_check_null(temp_name); } } @@ -6053,8 +6053,8 @@ build_min_exch(void) paren_count = 0; { char * formula = string_duplicate(comp_ref.Get_formula().c_str()); - char * ptr = formula; - get_elts_in_species(&ptr, 1.0); + const char* cptr = formula; + get_elts_in_species(&cptr, 1.0); free_check_null(formula); } #ifdef COMBINE @@ -6187,8 +6187,8 @@ build_min_surface(void) { /* Add specified formula for all types of surfaces */ char * formula = string_duplicate(comp_ptr->Get_formula().c_str()); - char *ptr1 = formula; - get_elts_in_species(&ptr1, 1.0); + const char* cptr1 = formula; + get_elts_in_species(&cptr1, 1.0); free_check_null(formula); } #ifdef COMBINE diff --git a/read.cpp b/read.cpp index 6378124e..88f35496 100644 --- a/read.cpp +++ b/read.cpp @@ -25,7 +25,7 @@ read_input(void) /* ---------------------------------------------------------------------- */ { int i, j, l; - char *ptr; + const char* cptr; char token[2 * MAX_LENGTH]; #define LAST_C_KEYWORD 61 @@ -252,14 +252,14 @@ read_input(void) } else { - ptr = line; - copy_token(token, &ptr, &l); + cptr = line; + copy_token(token, &cptr, &l); #if defined(SWIG_SHARED_OBJ) warning_msg("DATABASE keyword is ignored by IPhreeqc."); #else user_database = (char *) free_check_null(user_database); - user_database = string_duplicate(ptr); + user_database = string_duplicate(cptr); if (string_trim(user_database) == EMPTY) { error_msg("DATABASE file name is missing.", CONTINUE); @@ -393,7 +393,7 @@ read_exchange_species(void) int i; int association; char token[MAX_LENGTH]; - char *ptr; + const char* cptr; struct phase *phase_ptr; struct species *s_ptr; @@ -403,7 +403,7 @@ read_exchange_species(void) LDBLE offset; int return_value, opt, opt_save; - char *next_char; + const char* next_char; const char *opt_list[] = { "no_check", /* 0 */ "check", /* 1 */ @@ -496,8 +496,8 @@ read_exchange_species(void) paren_count = 0; copy_token(token, &next_char, &i); s_ptr->mole_balance = string_hsave(token); - ptr = token; - get_secondary_in_species(&ptr, 1.0); + cptr = token; + get_secondary_in_species(&cptr, 1.0); s_ptr->next_secondary = (struct elt_list *) free_check_null(s_ptr->next_secondary); s_ptr->next_secondary = elt_list_save(); @@ -824,11 +824,11 @@ read_exchange(void) */ int n_user, n_user_end; LDBLE conc; - char *ptr; + const char* cptr; char *description; int return_value, opt; - char *next_char; + const char* next_char; const char *opt_list[] = { "equilibrate", /* 0 */ "equil", /* 1 */ @@ -848,8 +848,8 @@ read_exchange(void) * Read exchange number and description */ - ptr = line; - read_number_description(ptr, &n_user, &n_user_end, &description); + cptr = line; + read_number_description(cptr, &n_user, &n_user_end, &description); /* * Default values + n_user, description */ @@ -927,8 +927,8 @@ read_exchange(void) case OPTION_DEFAULT: { std::string token; - ptr = line; - int i = copy_token(token, &ptr); + cptr = line; + int i = copy_token(token, &cptr); /* * Species formula is stored in token */ @@ -945,9 +945,9 @@ read_exchange(void) temp_exchange.Get_exchange_comps().push_back(temp_comp); comp_ptr = &(temp_exchange.Get_exchange_comps().back()); comp_ptr->Set_formula(token.c_str()); - prev_next_char = ptr; + prev_next_char = cptr; std::string token1; - i = copy_token(token1, &ptr); + i = copy_token(token1, &cptr); if (i == DIGIT) { /* @@ -964,12 +964,12 @@ read_exchange(void) input_error++; break; } - prev_next_char = ptr; - int j = copy_token(token1, &ptr); + prev_next_char = cptr; + int j = copy_token(token1, &cptr); if (j == UPPER || j == LOWER) { comp_ptr->Set_rate_name(token1.c_str()); - if (copy_token(token1, &ptr) != DIGIT) + if (copy_token(token1, &cptr) != DIGIT) { error_string = sformatf( "Expected a coefficient to relate exchange to kinetic reaction, but found:\n %s", @@ -991,8 +991,8 @@ read_exchange(void) /* exchanger conc. is related to mineral or kinetics */ comp_ptr->Set_phase_name(token1.c_str()); - prev_next_char = ptr; - int j = copy_token(token1, &ptr); + prev_next_char = cptr; + int j = copy_token(token1, &cptr); if (j != DIGIT) { if (token1[0] == 'K' || token1[0] == 'k') @@ -1009,8 +1009,8 @@ read_exchange(void) input_error++; break; } - prev_next_char = ptr; - j = copy_token(token1, &ptr); + prev_next_char = cptr; + j = copy_token(token1, &cptr); } @@ -1044,18 +1044,18 @@ read_exchange(void) count_elts = 0; paren_count = 0; char * formula = string_duplicate(token.c_str()); - ptr = formula; - get_elts_in_species(&ptr, conc); + cptr = formula; + get_elts_in_species(&cptr, conc); /* * save formula for adjusting number of exchange sites */ - ptr = formula; + cptr = formula; char *name = string_duplicate(token.c_str()); name[0] = '\0'; LDBLE z; int l; - get_token(&ptr, name, &z, &l); + get_token(&cptr, name, &z, &l); comp_ptr->Set_formula_z(z); free_check_null(formula); free_check_null(name); @@ -1083,7 +1083,7 @@ read_exchange_master_species(void) * Reads master species data from data file or input file */ int j, l; - char *ptr, *ptr1; + const char* cptr, *cptr1; LDBLE l_z; struct element *elts_ptr; struct species *s_ptr; @@ -1098,11 +1098,11 @@ read_exchange_master_species(void) /* * Get element name with valence, allocate space, store */ - ptr = line; + cptr = line; /* * Get element name and save pointer to character string */ - if (copy_token(token, &ptr, &l) != UPPER && token[0] != '[') + if (copy_token(token, &cptr, &l) != UPPER && token[0] != '[') { parse_error++; error_msg("Reading element for master species.", CONTINUE); @@ -1111,8 +1111,8 @@ read_exchange_master_species(void) } /* if (token[0] == '[') { - ptr1 = token; - get_elt(&ptr, element, &l); + cptr1 = token; + get_elt(&cptr, element, &l); strcpy(token, element); } */ @@ -1138,7 +1138,7 @@ read_exchange_master_species(void) /* * Save pointer to species data for master species */ - if ((copy_token(token, &ptr, &l) != UPPER) && + if ((copy_token(token, &cptr, &l) != UPPER) && token[0] != '[' && (strcmp_nocase_arg1(token, "e-") != 0)) { parse_error++; @@ -1153,8 +1153,8 @@ read_exchange_master_species(void) } else { - ptr1 = token; - get_token(&ptr1, token1, &l_z, &l); + cptr1 = token; + get_token(&cptr1, token1, &l_z, &l); master[count_master]->s = s_store(token1, l_z, FALSE); } /* @@ -1189,12 +1189,12 @@ read_gas_phase(void) */ int i, j, l; int n_user, n_user_end; - char *ptr; + const char* cptr; char *description; char token[MAX_LENGTH]; cxxGasPhase temp_gas_phase(this->phrq_io); int return_value, opt; - char *next_char; + const char* next_char; const char *opt_list[] = { "pressure", /* 0 */ "volume", /* 1 */ @@ -1210,8 +1210,8 @@ read_gas_phase(void) /* * Read gas_phase number */ - ptr = line; - read_number_description(ptr, &n_user, &n_user_end, &description); + cptr = line; + read_number_description(cptr, &n_user, &n_user_end, &description); temp_gas_phase.Set_n_user(n_user); temp_gas_phase.Set_n_user_end(n_user_end); @@ -1302,10 +1302,10 @@ read_gas_phase(void) /* * Read name */ - ptr = line; - copy_token(token, &ptr, &l); + cptr = line; + copy_token(token, &cptr, &l); temp_comp.Set_phase_name(token); - if ((j = copy_token(token, &ptr, &l)) == EMPTY) + if ((j = copy_token(token, &cptr, &l)) == EMPTY) { temp_comp.Set_p_read(NAN); temp_gas_phase.Get_gas_comps().push_back(temp_comp); @@ -1376,12 +1376,12 @@ read_inverse(void) */ int n, j; int n_user, n_user_end; - char *ptr; + const char* cptr; char *description; LDBLE range_max, inv_tol, water_uncertainty; int return_value, opt, opt_save; - char *next_char; + const char* next_char; const char *opt_list[] = { "solutions", /* 0 */ "uncertainty", /* 1 */ @@ -1413,11 +1413,11 @@ read_inverse(void) }; int count_opt_list = 27; - ptr = line; + cptr = line; /* * Read solution number and description */ - read_number_description(ptr, &n_user, &n_user_end, &description); + read_number_description(cptr, &n_user, &n_user_end, &description); /* * Malloc space for solution data */ @@ -1484,10 +1484,10 @@ read_inverse(void) case 1: /* uncertainty */ case 2: /* uncertainties */ inverse[n].uncertainties = - (LDBLE *) free_check_null(inverse[n].uncertainties); + (LDBLE*)free_check_null(inverse[n].uncertainties); inverse[n].uncertainties = read_list_doubles(&next_char, - &inverse[n].count_uncertainties); + &inverse[n].count_uncertainties); opt_save = OPTION_ERROR; break; case 3: /* balances */ @@ -1536,7 +1536,7 @@ read_inverse(void) case 17: /* force_solution */ case 18: /* force_solutions */ inverse[n].force_solns = - (int *) free_check_null(inverse[n].force_solns); + (int*)free_check_null(inverse[n].force_solns); inverse[n].force_solns = read_list_t_f(&next_char, &inverse[n].count_force_solns); opt_save = OPTION_ERROR; @@ -1569,29 +1569,35 @@ read_inverse(void) opt_save = OPTION_ERROR; break; case 25: /* lon_netpath */ - /*copy_token(file_name, &next_char, &l); */ - if (string_trim(next_char) != EMPTY) + { + std::string temp_name(next_char); + string_trim(temp_name); + if (temp_name.size() > 0) { - inverse[n].netpath = string_hsave(next_char); + inverse[n].netpath = string_hsave(temp_name.c_str()); } else { inverse[n].netpath = string_hsave("netpath"); } opt_save = OPTION_ERROR; - break; + } + break; case 26: /* pat_netpath */ - /*copy_token(file_name, &next_char, &l); */ - if (string_trim(next_char) != EMPTY) + { + std::string temp_name(next_char); + string_trim(temp_name); + if (temp_name.size() > 0) { - inverse[n].pat = string_hsave(next_char); + inverse[n].pat = string_hsave(temp_name.c_str()); } else { inverse[n].pat = string_hsave("netpath"); } opt_save = OPTION_ERROR; - break; + } + break; } if (return_value == EOF || return_value == KEYWORD) break; @@ -1630,7 +1636,7 @@ read_inverse(void) /* ---------------------------------------------------------------------- */ int Phreeqc:: -read_inv_balances(struct inverse *inverse_ptr, char *ptr) +read_inv_balances(struct inverse *inverse_ptr, const char* cptr) /* ---------------------------------------------------------------------- */ { int j, l, count; @@ -1638,7 +1644,7 @@ read_inv_balances(struct inverse *inverse_ptr, char *ptr) /* * Read element name */ - j = copy_token(token, &ptr, &l); + j = copy_token(token, &cptr, &l); if (j == EMPTY) { return (OK); @@ -1661,7 +1667,7 @@ read_inv_balances(struct inverse *inverse_ptr, char *ptr) * Read element uncertainties */ inverse_ptr->elts[inverse_ptr->count_elts].uncertainties = - read_list_doubles(&ptr, &count); + read_list_doubles(&cptr, &count); inverse_ptr->elts[inverse_ptr->count_elts].count_uncertainties = count; inverse_ptr->count_elts++; @@ -1670,7 +1676,7 @@ read_inv_balances(struct inverse *inverse_ptr, char *ptr) { inverse_ptr->ph_uncertainties = (LDBLE *) free_check_null(inverse_ptr->ph_uncertainties); - inverse_ptr->ph_uncertainties = read_list_doubles(&ptr, &count); + inverse_ptr->ph_uncertainties = read_list_doubles(&cptr, &count); inverse_ptr->count_ph_uncertainties = count; } return (OK); @@ -1678,21 +1684,21 @@ read_inv_balances(struct inverse *inverse_ptr, char *ptr) /* ---------------------------------------------------------------------- */ int Phreeqc:: -read_inv_isotopes(struct inverse *inverse_ptr, char *ptr) +read_inv_isotopes(struct inverse *inverse_ptr, const char* cptr) /* ---------------------------------------------------------------------- */ { int i, j, l, l1, l2, count; LDBLE isotope_number; char token[MAX_LENGTH], token1[MAX_LENGTH]; - char *ptr1, *ptr2; + const char* cptr1, *ptr2; const char * redox_name, *element_name; /* * Read element name */ - ptr1 = ptr; - j = copy_token(token, &ptr1, &l); + cptr1 = cptr; + j = copy_token(token, &cptr1, &l); /* - * ptr1 is start of uncertainties + * cptr1 is start of uncertainties */ if (j == EMPTY) { @@ -1769,24 +1775,24 @@ read_inv_isotopes(struct inverse *inverse_ptr, char *ptr) * Read isotope uncertainties */ inverse_ptr->i_u[inverse_ptr->count_i_u].uncertainties = - read_list_doubles(&ptr1, &count); + read_list_doubles(&cptr1, &count); inverse_ptr->i_u[inverse_ptr->count_i_u].count_uncertainties = count; inverse_ptr->count_i_u++; return (OK); } /* ---------------------------------------------------------------------- */ int Phreeqc:: -read_inv_phases(struct inverse *inverse_ptr, char *ptr) +read_inv_phases(struct inverse *inverse_ptr, const char* cptr) /* ---------------------------------------------------------------------- */ { int j, l; char token[MAX_LENGTH], token1[MAX_LENGTH]; - char *ptr1; + const char* cptr1; std::vector isotopes; /* * Read phase name */ - j = copy_token(token, &ptr, &l); + j = copy_token(token, &cptr, &l); if (j == EMPTY) return (OK); inverse_ptr->phases = (struct inv_phases *) PHRQ_realloc(inverse_ptr->phases, @@ -1802,7 +1808,7 @@ read_inv_phases(struct inverse *inverse_ptr, char *ptr) for (;;) { cxxSolutionIsotope temp_isotope; - j = copy_token(token, &ptr, &l); + j = copy_token(token, &cptr, &l); if (j == EMPTY) break; strcpy(token1, token); @@ -1826,14 +1832,14 @@ read_inv_phases(struct inverse *inverse_ptr, char *ptr) /* * read isotope data */ - ptr1 = token; + cptr1 = token; /* isotope number */ - get_num(&ptr1, &dummy); + get_num(&cptr1, &dummy); temp_isotope.Set_isotope_number(dummy); - if (ptr1[0] == '\0' || isupper((int) ptr1[0]) == FALSE) + if (cptr1[0] == '\0' || isupper((int) cptr1[0]) == FALSE) { - error_string = sformatf( "Expecting element name: %s.", ptr1); + error_string = sformatf( "Expecting element name: %s.", cptr1); error_msg(error_string, CONTINUE); error_msg(line_save, CONTINUE); input_error++; @@ -1841,10 +1847,10 @@ read_inv_phases(struct inverse *inverse_ptr, char *ptr) } /* element name */ - temp_isotope.Set_elt_name(ptr1); + temp_isotope.Set_elt_name(cptr1); /* ratio */ - j = copy_token(token, &ptr, &l); + j = copy_token(token, &cptr, &l); if (j != DIGIT) { error_msg("Expecting isotope ratio for phase.", CONTINUE); @@ -1856,8 +1862,8 @@ read_inv_phases(struct inverse *inverse_ptr, char *ptr) temp_isotope.Set_ratio(dummy); /* read and store isotope ratio uncertainty */ - prev_next_char = ptr; - if (copy_token(token, &ptr, &l) != DIGIT) + prev_next_char = cptr; + if (copy_token(token, &cptr, &l) != DIGIT) { input_error++; error_string = sformatf( @@ -1930,14 +1936,14 @@ read_kinetics(void) /* * Read kinetics */ - char *ptr; + const char* cptr; char *description; std::string token; int n_user, n_user_end; LDBLE step; int return_value, opt; - char *next_char; + const char* next_char; const char *opt_list[] = { "tol", /* 0 */ "m", /* 1 */ @@ -1961,8 +1967,8 @@ read_kinetics(void) /* * Read kinetics number */ - ptr = line; - read_number_description(ptr, &n_user, &n_user_end, &description); + cptr = line; + read_number_description(cptr, &n_user, &n_user_end, &description); cxxKinetics temp_kinetics(this->phrq_io); temp_kinetics.Set_n_user(n_user); temp_kinetics.Set_n_user_end(n_user_end); @@ -2000,8 +2006,8 @@ read_kinetics(void) delete kinetics_comp_ptr; } kinetics_comp_ptr = new cxxKineticsComp; - ptr = line; - copy_token(token, &ptr); + cptr = line; + copy_token(token, &cptr); kinetics_comp_ptr->Set_rate_name(token.c_str()); break; case OPTION_ERROR: @@ -2021,6 +2027,7 @@ read_kinetics(void) prev_next_char = next_char; if (copy_token(token, &next_char) == DIGIT) { + char* ptr; kinetics_comp_ptr->Set_tol(strtod(token.c_str(), &ptr)); } else @@ -2045,6 +2052,7 @@ read_kinetics(void) prev_next_char = next_char; if (copy_token(token, &next_char) == DIGIT) { + char* ptr; kinetics_comp_ptr->Set_m(strtod(token.c_str(), &ptr)); } else @@ -2069,6 +2077,7 @@ read_kinetics(void) prev_next_char = next_char; if (copy_token(token, &next_char) == DIGIT) { + char* ptr; kinetics_comp_ptr->Set_m0(strtod(token.c_str(), &ptr)); } else @@ -2099,6 +2108,7 @@ read_kinetics(void) */ if (j == DIGIT) { + char* ptr; kinetics_comp_ptr->Get_d_params().push_back(strtod(token.c_str(), &ptr)); } else @@ -2123,11 +2133,11 @@ read_kinetics(void) /* * Store reactant name, default coefficient */ - ptr = next_char; + cptr = next_char; bool have_name = false; std::string name; LDBLE coef = 1; - while (copy_token(token, &ptr) != EMPTY) + while (copy_token(token, &cptr) != EMPTY) { coef = 1; if (isalpha((int) token[0]) || (token[0] == '(') @@ -2207,6 +2217,7 @@ read_kinetics(void) } else { + char* ptr; step = strtod(token.c_str(), &ptr); temp_kinetics.Get_steps().push_back(step); } @@ -2278,6 +2289,7 @@ read_kinetics(void) int j = copy_token(token, &next_char); if (j == DIGIT) { + char* ptr; temp_kinetics.Set_rk((int) strtod(token.c_str(), &ptr)); } else if (j == EMPTY) @@ -2297,6 +2309,7 @@ read_kinetics(void) int j = copy_token(token, &next_char); if (j == DIGIT) { + char* ptr; temp_kinetics.Set_bad_step_max((int) strtod(token.c_str(), &ptr)); } else if (j == EMPTY) @@ -2318,6 +2331,7 @@ read_kinetics(void) int j = copy_token(token, &next_char); if (j == DIGIT) { + char* ptr; temp_kinetics.Set_cvode_steps((int) strtod(token.c_str(), &ptr)); } else if (j == EMPTY) @@ -2337,6 +2351,7 @@ read_kinetics(void) int j = copy_token(token, &next_char); if (j == DIGIT) { + char* ptr; temp_kinetics.Set_cvode_order((int) strtod(token.c_str(), &ptr)); } else if (j == EMPTY) @@ -2415,7 +2430,7 @@ read_kinetics(void) } /* ---------------------------------------------------------------------- */ LDBLE * Phreeqc:: -read_list_doubles(char **ptr, int *count_doubles) +read_list_doubles(const char **cptr, int *count_doubles) /* ---------------------------------------------------------------------- */ { /* @@ -2423,7 +2438,7 @@ read_list_doubles(char **ptr, int *count_doubles) * a LDBLE cannot be read from a token. * * Arguments: - * ptr entry: points to line to read from + * cptr entry: points to line to read from * exit: points to next non-LDBLE token or end of line * * count_doubles exit: number of LDBLEs read @@ -2435,7 +2450,7 @@ read_list_doubles(char **ptr, int *count_doubles) LDBLE *LDBLE_list; char token[MAX_LENGTH]; LDBLE value; - char *ptr_save; + const char* cptr_save; int l; LDBLE_list = (LDBLE *) PHRQ_malloc(sizeof(LDBLE)); @@ -2443,8 +2458,8 @@ read_list_doubles(char **ptr, int *count_doubles) malloc_error(); *count_doubles = 0; - ptr_save = *ptr; - while (copy_token(token, ptr, &l) != EMPTY) + cptr_save = *cptr; + while (copy_token(token, cptr, &l) != EMPTY) { if (sscanf(token, SCANFORMAT, &value) == 1) { @@ -2456,11 +2471,11 @@ read_list_doubles(char **ptr, int *count_doubles) if (LDBLE_list == NULL) malloc_error(); LDBLE_list[(*count_doubles) - 1] = value; - ptr_save = *ptr; + cptr_save = *cptr; } else { - *ptr = ptr_save; + *cptr = cptr_save; break; } } @@ -2469,7 +2484,7 @@ read_list_doubles(char **ptr, int *count_doubles) /* ---------------------------------------------------------------------- */ int * Phreeqc:: -read_list_ints(char **ptr, int *count_ints, int positive) +read_list_ints(const char **cptr, int *count_ints, int positive) /* ---------------------------------------------------------------------- */ { /* @@ -2477,7 +2492,7 @@ read_list_ints(char **ptr, int *count_ints, int positive) * an int cannot be read from a token. * * Arguments: - * ptr entry: points to line to read from + * cptr entry: points to line to read from * exit: points to next non-int token or end of line * * count_ints exit: number of LDBLEs read @@ -2491,15 +2506,15 @@ read_list_ints(char **ptr, int *count_ints, int positive) char token[MAX_LENGTH]; int value; int l; - char *ptr_save; + const char* cptr_save; int_list = (int *) PHRQ_malloc(sizeof(int)); if (int_list == NULL) malloc_error(); *count_ints = 0; - ptr_save = *ptr; - while (copy_token(token, ptr, &l) != EMPTY) + cptr_save = *cptr; + while (copy_token(token, cptr, &l) != EMPTY) { if (sscanf(token, "%d", &value) == 1) { @@ -2519,11 +2534,11 @@ read_list_ints(char **ptr, int *count_ints, int positive) error_msg(line_save, CONTINUE); input_error++; } - ptr_save = *ptr; + cptr_save = *cptr; } else { - *ptr = ptr_save; + *cptr = cptr_save; break; } } @@ -2532,7 +2547,7 @@ read_list_ints(char **ptr, int *count_ints, int positive) /* ---------------------------------------------------------------------- */ int * Phreeqc:: -read_list_ints_range(char **ptr, int *count_ints, int positive, int *int_list) +read_list_ints_range(const char **cptr, int *count_ints, int positive, int *int_list) /* ---------------------------------------------------------------------- */ { /* @@ -2540,7 +2555,7 @@ read_list_ints_range(char **ptr, int *count_ints, int positive, int *int_list) * an int cannot be read from a token. * * Arguments: - * ptr entry: points to line to read from + * cptr entry: points to line to read from * exit: points to next non-int token or end of line * * count_ints entry: number of ints already in list @@ -2553,7 +2568,7 @@ read_list_ints_range(char **ptr, int *count_ints, int positive, int *int_list) char token[MAX_LENGTH]; int value, value1, value2; int i, l; - char *ptr_save; + const char* cptr_save; if (int_list == NULL) { @@ -2565,8 +2580,8 @@ read_list_ints_range(char **ptr, int *count_ints, int positive, int *int_list) } *count_ints = 0; } - ptr_save = *ptr; - while (copy_token(token, ptr, &l) != EMPTY) + cptr_save = *cptr; + while (copy_token(token, cptr, &l) != EMPTY) { if (sscanf(token, "%d", &value) == 1) { @@ -2628,11 +2643,11 @@ read_list_ints_range(char **ptr, int *count_ints, int positive, int *int_list) } } } - ptr_save = *ptr; + cptr_save = *cptr; } else { - *ptr = ptr_save; + *cptr = cptr_save; break; } } @@ -2641,7 +2656,7 @@ read_list_ints_range(char **ptr, int *count_ints, int positive, int *int_list) /* ---------------------------------------------------------------------- */ int * Phreeqc:: -read_list_t_f(char **ptr, int *count_ints) +read_list_t_f(const char **cptr, int *count_ints) /* ---------------------------------------------------------------------- */ { /* @@ -2649,7 +2664,7 @@ read_list_t_f(char **ptr, int *count_ints) * until non- t or f is found * * Arguments: - * ptr entry: points to line to read from + * cptr entry: points to line to read from * exit: points to next non-int token or end of line * * count_ints exit: number of LDBLEs read @@ -2669,7 +2684,7 @@ read_list_t_f(char **ptr, int *count_ints) malloc_error(); *count_ints = 0; - while (copy_token(token, ptr, &l) != EMPTY) + while (copy_token(token, cptr, &l) != EMPTY) { str_tolower(token); if (token[0] == 't') @@ -2700,15 +2715,17 @@ read_list_t_f(char **ptr, int *count_ints) /* ---------------------------------------------------------------------- */ int Phreeqc:: -read_log_k_only(char *ptr, LDBLE * log_k) +read_log_k_only(const char* cptr_in, LDBLE * log_k) /* ---------------------------------------------------------------------- */ { /* * Read log k */ *log_k = 0.0; - replace("=", " ", ptr); - if (sscanf(ptr, SCANFORMAT, log_k) < 1) + std::string stds(cptr_in); + replace(stds, "=", " "); + //replace("=", " ", cptr); + if (sscanf(stds.c_str(), SCANFORMAT, log_k) < 1) { input_error++; error_msg("Expecting log k.", CONTINUE); @@ -2718,12 +2735,14 @@ read_log_k_only(char *ptr, LDBLE * log_k) } /* ---------------------------------------------------------------------- */ int Phreeqc:: -read_t_c_only(char *ptr, LDBLE *t_c) +read_t_c_only(const char* cptr_in, LDBLE *t_c) /* ---------------------------------------------------------------------- */ { *t_c = 0.0; - replace("=", " ", ptr); - if (sscanf(ptr, SCANFORMAT, t_c) < 1) + std::string stds(cptr_in); + replace(stds, "=", " "); + //replace("=", " ", cptr); + if (sscanf(stds.c_str(), SCANFORMAT, t_c) < 1) { input_error++; error_msg("Expecting numeric value for critical temperature T_c (K)", CONTINUE); @@ -2733,12 +2752,13 @@ read_t_c_only(char *ptr, LDBLE *t_c) } /* ---------------------------------------------------------------------- */ int Phreeqc:: -read_p_c_only(char *ptr, LDBLE * p_c) +read_p_c_only(const char* cptr, LDBLE * p_c) /* ---------------------------------------------------------------------- */ { *p_c = 0.0; - replace("=", " ", ptr); - if (sscanf(ptr, SCANFORMAT, p_c) < 1) + std::string stds(cptr); + replace(stds, "=", " "); + if (sscanf(stds.c_str(), SCANFORMAT, p_c) < 1) { input_error++; error_msg("Expecting numeric value for critical pressure P_c (atm)", CONTINUE); @@ -2748,12 +2768,13 @@ read_p_c_only(char *ptr, LDBLE * p_c) } /* ---------------------------------------------------------------------- */ int Phreeqc:: -read_omega_only(char *ptr, LDBLE *omega) +read_omega_only(const char* cptr, LDBLE *omega) /* ---------------------------------------------------------------------- */ { *omega = 0.0; - replace("=", " ", ptr); - if (sscanf(ptr, SCANFORMAT, omega) < 1) + std::string stds(cptr); + replace(stds, "=", " "); + if (sscanf(stds.c_str(), SCANFORMAT, omega) < 1) { input_error++; error_msg("Expecting numeric value for acentric factor Omega", CONTINUE); @@ -2763,7 +2784,7 @@ read_omega_only(char *ptr, LDBLE *omega) } /* ---------------------------------------------------------------------- */ int Phreeqc:: -read_aq_species_vm_parms(char *ptr, LDBLE * delta_v) +read_aq_species_vm_parms(const char* cptr, LDBLE * delta_v) /* ---------------------------------------------------------------------- */ { int j; @@ -2778,7 +2799,7 @@ read_aq_species_vm_parms(char *ptr, LDBLE * delta_v) /* Vmax, dmax... delta_v[10] = 999.0; delta_v[11] = 1.0; */ - j = sscanf(ptr, SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT /*SCANFORMAT SCANFORMAT */, + j = sscanf(cptr, SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT /*SCANFORMAT SCANFORMAT */, /* a1..a4 */ &(delta_v[0]), &(delta_v[1]), &(delta_v[2]), &(delta_v[3]), /* wref */ @@ -2809,7 +2830,7 @@ read_aq_species_vm_parms(char *ptr, LDBLE * delta_v) } /* ---------------------------------------------------------------------- */ int Phreeqc:: -read_vm_only(char *ptr, LDBLE * delta_v, DELTA_V_UNIT * units) +read_vm_only(const char* cptr, LDBLE * delta_v, DELTA_V_UNIT * units) /* ---------------------------------------------------------------------- */ { int j, l; @@ -2821,7 +2842,7 @@ read_vm_only(char *ptr, LDBLE * delta_v, DELTA_V_UNIT * units) { delta_v[j] = 0.0; } - j = sscanf(ptr, SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT, + j = sscanf(cptr, SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT, &(delta_v[0]), &(delta_v[1]), &(delta_v[2]), &(delta_v[3]), &(delta_v[4]), &(delta_v[5]), &(delta_v[6]), &(delta_v[7])); if (j < 1) @@ -2837,7 +2858,7 @@ read_vm_only(char *ptr, LDBLE * delta_v, DELTA_V_UNIT * units) *units = cm3_per_mol; do { - j = copy_token(token, &ptr, &l); + j = copy_token(token, &cptr, &l); } while (j == DIGIT); if (j == EMPTY) @@ -2875,7 +2896,7 @@ read_vm_only(char *ptr, LDBLE * delta_v, DELTA_V_UNIT * units) /* ---------------------------------------------------------------------- */ int Phreeqc:: -read_phase_vm(char *ptr, LDBLE * delta_v, DELTA_V_UNIT * units) +read_phase_vm(const char* cptr, LDBLE * delta_v, DELTA_V_UNIT * units) /* ---------------------------------------------------------------------- */ { int j, l; @@ -2887,7 +2908,7 @@ read_phase_vm(char *ptr, LDBLE * delta_v, DELTA_V_UNIT * units) { delta_v[j] = 0.0; } - j = sscanf(ptr, SCANFORMAT /*SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT*/, + j = sscanf(cptr, SCANFORMAT /*SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT*/, &(delta_v[0])/*, &(delta_v[1]), &(delta_v[2]), &(delta_v[3]), &(delta_v[4]), &(delta_v[5]), &(delta_v[6]), &(delta_v[7])*/); if (j < 1) @@ -2903,7 +2924,7 @@ read_phase_vm(char *ptr, LDBLE * delta_v, DELTA_V_UNIT * units) *units = cm3_per_mol; do { - j = copy_token(token, &ptr, &l); + j = copy_token(token, &cptr, &l); } while (j == DIGIT); if (j == EMPTY) @@ -2943,7 +2964,7 @@ read_phase_vm(char *ptr, LDBLE * delta_v, DELTA_V_UNIT * units) /* ---------------------------------------------------------------------- */ int Phreeqc:: -read_delta_h_only(char *ptr, LDBLE * delta_h, DELTA_H_UNIT * units) +read_delta_h_only(const char* cptr_in, LDBLE * delta_h, DELTA_H_UNIT * units) /* ---------------------------------------------------------------------- */ { int j, l, kilo, joul; @@ -2952,8 +2973,10 @@ read_delta_h_only(char *ptr, LDBLE * delta_h, DELTA_H_UNIT * units) * Read delta H */ *delta_h = 0.0; - replace("=", " ", ptr); - j = copy_token(token, &ptr, &l); + std::string stds(cptr_in); + replace(stds, "=", " "); + const char* cptr = stds.c_str(); + j = copy_token(token, &cptr, &l); if (j == EMPTY) { input_error++; @@ -2969,7 +2992,7 @@ read_delta_h_only(char *ptr, LDBLE * delta_h, DELTA_H_UNIT * units) /* * Read delta H units */ - j = copy_token(token, &ptr, &l); + j = copy_token(token, &cptr, &l); *units = kjoules; kilo = TRUE; joul = TRUE; @@ -3013,7 +3036,7 @@ read_delta_h_only(char *ptr, LDBLE * delta_h, DELTA_H_UNIT * units) } /* ---------------------------------------------------------------------- */ int Phreeqc:: -read_analytical_expression_only(char *ptr, LDBLE * log_k) +read_analytical_expression_only(const char* cptr, LDBLE * log_k) /* ---------------------------------------------------------------------- */ { int j; @@ -3025,7 +3048,7 @@ read_analytical_expression_only(char *ptr, LDBLE * log_k) { log_k[j] = 0.0; } - j = sscanf(ptr, SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT, + j = sscanf(cptr, SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT, &(log_k[0]), &(log_k[1]), &(log_k[2]), &(log_k[3]), &(log_k[4]), &(log_k[5])); if (j < 1) @@ -3041,7 +3064,7 @@ read_analytical_expression_only(char *ptr, LDBLE * log_k) /* VP: Density Start */ /* ---------------------------------------------------------------------- */ int Phreeqc:: -read_millero_abcdef (char *ptr, LDBLE * abcdef) +read_millero_abcdef (const char* cptr, LDBLE * abcdef) /* ---------------------------------------------------------------------- */ { int j; @@ -3052,7 +3075,7 @@ read_millero_abcdef (char *ptr, LDBLE * abcdef) { abcdef[j] = 0.0; } - j = sscanf (ptr, SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT, + j = sscanf (cptr, SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT, &(abcdef[0]), &(abcdef[1]), &(abcdef[2]), &(abcdef[3]), &(abcdef[4]), &(abcdef[5]), &(abcdef[6])); if (j < 1) { @@ -3067,7 +3090,7 @@ read_millero_abcdef (char *ptr, LDBLE * abcdef) /* ---------------------------------------------------------------------- */ int Phreeqc:: -read_viscosity_parms(char *ptr, LDBLE * Jones_Dole) +read_viscosity_parms(const char* cptr, LDBLE * Jones_Dole) /* ---------------------------------------------------------------------- */ { int j; @@ -3078,7 +3101,7 @@ read_viscosity_parms(char *ptr, LDBLE * Jones_Dole) { Jones_Dole[j] = 0.0; } - j = sscanf (ptr, SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT, + j = sscanf (cptr, SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT SCANFORMAT, &(Jones_Dole[0]), &(Jones_Dole[1]), &(Jones_Dole[2]), &(Jones_Dole[3]), &(Jones_Dole[4]), &(Jones_Dole[5]), &(Jones_Dole[6]), &(Jones_Dole[7]), &(Jones_Dole[8]), &(Jones_Dole[9])); if (j < 1) { @@ -3109,15 +3132,15 @@ read_incremental_reactions(void) * */ int j, l; - char *ptr; + const char* cptr; char token[MAX_LENGTH]; - ptr = line; + cptr = line; /* read keyword */ - copy_token(token, &ptr, &l); + copy_token(token, &cptr, &l); /* read true or false */ - incremental_reactions = get_true_false(ptr, TRUE); + incremental_reactions = get_true_false(cptr, TRUE); /* * find next keyword */ @@ -3144,7 +3167,7 @@ read_master_species(void) * Reads master species data from data file or input file */ int j, i, l; - char *ptr, *ptr1; + const char* cptr, *cptr1; LDBLE l_z; struct element *elts_ptr; struct species *s_ptr; @@ -3161,11 +3184,11 @@ read_master_species(void) /* * Get element name with valence, allocate space, store */ - ptr = line; + cptr = line; /* * Get element name and save pointer to character string */ - if (copy_token(token, &ptr, &l) != UPPER && token[0] != '[') + if (copy_token(token, &cptr, &l) != UPPER && token[0] != '[') { parse_error++; error_msg("Reading element for master species.", CONTINUE); @@ -3174,8 +3197,8 @@ read_master_species(void) } /* if (token[0] == '[') { - ptr1 = token; - get_elt(&ptr, element, &l); + cptr1 = token; + get_elt(&cptr, element, &l); strcpy(token, element); } */ @@ -3202,7 +3225,7 @@ read_master_species(void) /* * Save pointer to species data for master species */ - if ((copy_token(token, &ptr, &l) != UPPER) && + if ((copy_token(token, &cptr, &l) != UPPER) && token[0] != '[' && (strcmp_nocase_arg1(token, "e-") != 0)) { parse_error++; @@ -3218,8 +3241,8 @@ read_master_species(void) } else { - ptr1 = token; - get_token(&ptr1, token1, &l_z, &l); + cptr1 = token; + get_token(&cptr1, token1, &l_z, &l); master[count_master]->s = s_store(token1, l_z, FALSE); } @@ -3239,7 +3262,7 @@ read_master_species(void) /* * Read alkalinity for species */ - copy_token(token, &ptr, &l); + copy_token(token, &cptr, &l); i = sscanf(token, SCANFORMAT, &master[count_master]->alk); if (i != 1) { @@ -3261,7 +3284,7 @@ read_master_species(void) /* * Read default gfw for species */ - i = copy_token(token, &ptr, &l); + i = copy_token(token, &cptr, &l); if (i == DIGIT) { (void)sscanf(token, SCANFORMAT, &master[count_master]->gfw); @@ -3297,7 +3320,7 @@ read_master_species(void) if (strcmp(master[count_master]->elt->name, "E") != 0) { elts_ptr = master[count_master]->elt; - i = copy_token(token, &ptr, &l); + i = copy_token(token, &cptr, &l); if (i == DIGIT) { (void)sscanf(token, SCANFORMAT, &elts_ptr->gfw); @@ -3343,7 +3366,7 @@ read_mix(void) int n_solution; LDBLE fraction; int j, i, l; - char *ptr; + const char* cptr; char token[MAX_LENGTH]; char *description; cxxMix temp_mix; @@ -3351,8 +3374,8 @@ read_mix(void) /* * Read mix number */ - ptr = line; - read_number_description(ptr, &n_user, &n_user_end, &description); + cptr = line; + read_number_description(cptr, &n_user, &n_user_end, &description); temp_mix.Set_n_user(n_user); temp_mix.Set_n_user_end(n_user); @@ -3378,11 +3401,11 @@ read_mix(void) { break; } - ptr = line; + cptr = line; /* * Read n_user */ - i = copy_token(token, &ptr, &l); + i = copy_token(token, &cptr, &l); if (i == DIGIT) { (void)sscanf(token, "%d ", &n_solution); @@ -3397,7 +3420,7 @@ read_mix(void) /* * Read fraction for solution */ - copy_token(token, &ptr, &l); + copy_token(token, &cptr, &l); j = sscanf(token, SCANFORMAT, &fraction); if (j != 1) { @@ -3445,14 +3468,14 @@ read_entity_mix(std::map &mix_map) int n_solution; LDBLE fraction; int j, i, l; - char *ptr; + const char* cptr; char token[MAX_LENGTH]; cxxMix temp_mix; /* * Read mix number */ - ptr = line; + cptr = line; temp_mix.read_number_description(line); /* * Read mixture data @@ -3465,11 +3488,11 @@ read_entity_mix(std::map &mix_map) { break; } - ptr = line; + cptr = line; /* * Read n_user */ - i = copy_token(token, &ptr, &l); + i = copy_token(token, &cptr, &l); if (i == DIGIT) { (void)sscanf(token, "%d ", &n_solution); @@ -3484,7 +3507,7 @@ read_entity_mix(std::map &mix_map) /* * Read fraction for entity */ - copy_token(token, &ptr, &l); + copy_token(token, &cptr, &l); j = sscanf(token, SCANFORMAT, &fraction); if (j != 1) { @@ -3510,19 +3533,19 @@ read_entity_mix(std::map &mix_map) } /* ---------------------------------------------------------------------- */ int Phreeqc:: -read_number_description(char *ptr, int *n_user, +read_number_description(const char* cptr, int *n_user, int *n_user_end, char **description, int allow_negative) /* ---------------------------------------------------------------------- */ { int l, n; char token[MAX_LENGTH]; - char *ptr1; + const char* cptr1; /* * Read user number, allow negative numbers Oct 3, 2011 */ - copy_token(token, &ptr, &l); // keyword - ptr1 = ptr; - copy_token(token, &ptr, &l); + copy_token(token, &cptr, &l); // keyword + cptr1 = cptr; + copy_token(token, &cptr, &l); if (!isdigit(token[0]) && token[0] != '-') { @@ -3555,7 +3578,7 @@ read_number_description(char *ptr, int *n_user, error_msg(error_string, CONTINUE); input_error++; } - ptr1 = ptr; + cptr1 = cptr; } else { @@ -3574,7 +3597,7 @@ read_number_description(char *ptr, int *n_user, input_error++; } *n_user_end = *n_user; - ptr1 = ptr; + cptr1 = cptr; }; } if (*n_user < 0 && allow_negative == FALSE) @@ -3586,8 +3609,8 @@ read_number_description(char *ptr, int *n_user, /* * Read description */ - for (; isspace((int) ptr1[0]); ptr1++); - *description = string_duplicate(ptr1); + for (; isspace((int) cptr1[0]); cptr1++); + *description = string_duplicate(cptr1); return (OK); } @@ -3601,7 +3624,7 @@ read_phases(void) */ int j, i, l; int association; - char *ptr; + const char* cptr; char token[MAX_LENGTH]; char token1[MAX_LENGTH]; struct phase *phase_ptr; @@ -3609,7 +3632,7 @@ read_phases(void) struct rxn_token *token_ptr; int return_value, opt, opt_save; - char *next_char; + const char* next_char; const char *opt_list[] = { "no_check", /* 0 */ "check", /* 1 */ @@ -3771,8 +3794,8 @@ read_phases(void) * Get element name and save pointer to character string */ phase_ptr = NULL; - ptr = line; - copy_token(token, &ptr, &l); + cptr = line; + copy_token(token, &cptr, &l); /* * Get and parse equation */ @@ -3893,21 +3916,21 @@ read_pp_assemblage(void) int j; int return_value; int n_user, n_user_end; - char *ptr; + const char* cptr; char *description; std::string token; int opt, opt_save; - char *next_char; + const char* next_char; const char *opt_list[] = { "force_equality" /* 0 */ }; int count_opt_list = 1; - ptr = line; + cptr = line; /* * Read pp_assemblage number */ - read_number_description(ptr, &n_user, &n_user_end, &description); + read_number_description(cptr, &n_user, &n_user_end, &description); /* * Find pp_assemblage or realloc space for pp_assemblage */ @@ -3980,11 +4003,11 @@ read_pp_assemblage(void) /* * Read name */ - ptr = line; - copy_token(token, &ptr); + cptr = line; + copy_token(token, &cptr); comp->Set_name(token.c_str()); - if ((j = copy_token(token, &ptr)) == EMPTY) + if ((j = copy_token(token, &cptr)) == EMPTY) continue; /* * Read saturation index @@ -4002,12 +4025,12 @@ read_pp_assemblage(void) /* * Adding a reaction to the phase boundary */ - if ((j = copy_token(token, &ptr)) == EMPTY) + if ((j = copy_token(token, &cptr)) == EMPTY) continue; if (j == UPPER || j == LOWER) { comp->Set_add_formula(token.c_str()); - j = copy_token(token, &ptr); + j = copy_token(token, &cptr); } /* * Read amount @@ -4029,7 +4052,7 @@ read_pp_assemblage(void) input_error++; continue; } - if ((j = copy_token(token, &ptr)) == EMPTY) + if ((j = copy_token(token, &cptr)) == EMPTY) continue; Utilities::str_tolower(token); if (strstr(token.c_str(), "d") == token.c_str()) @@ -4087,7 +4110,7 @@ read_reaction(void) * Read reaction */ int l; - char *ptr; + const char* cptr; char *description; char token[MAX_LENGTH]; int return_value; @@ -4096,8 +4119,8 @@ read_reaction(void) /* * Read reaction number */ - ptr = line; - read_number_description(ptr, &n_user, &n_user_end, &description); + cptr = line; + read_number_description(cptr, &n_user, &n_user_end, &description); /* * Set use data to first read @@ -4129,8 +4152,8 @@ read_reaction(void) { break; } - ptr = line; - copy_token(token, &ptr, &l); + cptr = line; + copy_token(token, &cptr, &l); if (isalpha((int) token[0]) || (token[0] == '(') || (token[0] == '[')) { /* @@ -4181,12 +4204,12 @@ read_reaction_reactants(cxxReaction *reaction_ptr) */ std::string token, last_token; LDBLE coef; - char *ptr; + const char* cptr; /* * Read one or more reactants */ - ptr = line; - while (copy_token(token, &ptr) != EMPTY) + cptr = line; + while (copy_token(token, &cptr) != EMPTY) { /* * Store reactant name, default coefficient @@ -4235,16 +4258,16 @@ read_reaction_steps(cxxReaction *reaction_ptr) * INCREMENTAL_REACTIONS */ - char *ptr; + const char* cptr; std::string token, token1; - ptr = line; + cptr = line; /* * Read one or more reaction increments */ for (;;) { - if (copy_token(token, &ptr) == EMPTY) + if (copy_token(token, &cptr) == EMPTY) { return (OK); } @@ -4306,7 +4329,7 @@ read_reaction_steps(cxxReaction *reaction_ptr) { reaction_ptr->Set_units(t1.c_str()); } - if (copy_token(token, &ptr) == EMPTY) + if (copy_token(token, &cptr) == EMPTY) { return (OK); } @@ -4337,7 +4360,7 @@ read_reaction_steps(cxxReaction *reaction_ptr) break; } } - while (copy_token(token, &ptr) != EMPTY); + while (copy_token(token, &cptr) != EMPTY); error_msg("Expecting positive number for number of equal " "increments to add.", CONTINUE); @@ -4355,24 +4378,24 @@ read_save(void) * in reaction calculation */ int i, l, n, n_user, n_user_end; - char *ptr; + const char* cptr; char token[MAX_LENGTH]; /* * Read "save" */ - ptr = line; - copy_token(token, &ptr, &l); + cptr = line; + copy_token(token, &cptr, &l); /* * Read keyword */ - copy_token(token, &ptr, &l); + copy_token(token, &cptr, &l); check_key(token); /* * Read number */ for (;;) { - i = copy_token(token, &ptr, &l); + i = copy_token(token, &cptr, &l); if (i == DIGIT) { replace("-", " ", token); @@ -4456,7 +4479,7 @@ read_selected_output(void) */ int value; int return_value, opt, opt_save; - char *next_char; + const char* next_char; const char *opt_list[] = { "file", /* 0 */ "totals", /* 1 */ @@ -4513,13 +4536,14 @@ read_selected_output(void) int count_opt_list = 51; int i, l; - char file_name[MAX_LENGTH], token[MAX_LENGTH]; + char token[MAX_LENGTH]; + std::string file_name; - char *ptr; - ptr = line; + const char* cptr; + cptr = line; int n_user, n_user_end; char *description; - read_number_description(ptr, &n_user, &n_user_end, &description); + read_number_description(cptr, &n_user, &n_user_end, &description); SelectedOutput temp_selected_output; temp_selected_output.Set_new_def(false); @@ -4606,15 +4630,19 @@ read_selected_output(void) error_msg(line_save, CONTINUE); break; case 0: /* file name */ + { temp_selected_output.Set_new_def(true); - if (string_trim(next_char) != EMPTY) + std::string temp_name(next_char); + string_trim(temp_name); + if (temp_name.size() > 0) { - strcpy(file_name, next_char); + file_name = temp_name; temp_selected_output.Set_file_name(file_name); temp_selected_output.Set_have_punch_name(true); } opt_save = OPTION_ERROR; - break; + } + break; case 1: /* totals */ temp_selected_output.Set_new_def(true); while ((i = copy_token(token, &next_char, &l)) != EMPTY) @@ -4962,7 +4990,7 @@ read_solution(void) char *description; int return_value, opt; - char *next_char; + const char* next_char; const char *opt_list[] = { "temp", /* 0 */ "temperature", /* 1 */ @@ -4983,9 +5011,9 @@ read_solution(void) /* * Read solution number and description */ - char *ptr; - ptr = line; - read_number_description(ptr, &n_user, &n_user_end, &description); + const char* cptr; + cptr = line; + read_number_description(cptr, &n_user, &n_user_end, &description); cxxSolution temp_solution; temp_solution.Set_new_def(true); @@ -5014,8 +5042,8 @@ read_solution(void) opt = get_option(opt_list, count_opt_list, &next_char); if (opt == OPTION_DEFAULT) { - ptr = next_char; - if (copy_token(token, &ptr) == CParser::TT_DIGIT) + cptr = next_char; + if (copy_token(token, &cptr) == CParser::TT_DIGIT) { opt = 9; } @@ -5161,10 +5189,10 @@ read_solution(void) /* read and save element name */ { char *temp_iso_name = string_duplicate(token.c_str()); - char *ptr1 = temp_iso_name; - get_num(&ptr1, &dummy); + const char* cptr1 = temp_iso_name; + get_num(&cptr1, &dummy); temp_isotope.Set_isotope_number(dummy); - if (ptr1[0] == '\0' || isupper((int) ptr1[0]) == FALSE) + if (cptr1[0] == '\0' || isupper((int) cptr1[0]) == FALSE) { error_msg("Expecting element name.", PHRQ_io::OT_CONTINUE); error_msg(line_save, PHRQ_io::OT_CONTINUE); @@ -5172,7 +5200,7 @@ read_solution(void) temp_iso_name = (char*)free_check_null(temp_iso_name); return (CParser::PARSER_ERROR); } - temp_isotope.Set_elt_name(ptr1); + temp_isotope.Set_elt_name(cptr1); temp_iso_name = (char*)free_check_null(temp_iso_name); } /* read and store isotope ratio */ @@ -5324,10 +5352,11 @@ read_species(void) int association; struct species *s_ptr; struct elt_list *next_elt; - char *ptr, token[MAX_LENGTH]; + const char* cptr; + char token[MAX_LENGTH]; //bool vm_read = false; int return_value, opt, opt_save; - char *next_char; + const char* next_char; const char *opt_list[] = { "no_check", /* 0 */ "check", /* 1 */ @@ -5447,10 +5476,10 @@ read_species(void) paren_count = 0; copy_token(token, &next_char, &i); s_ptr->mole_balance = string_hsave(token); - ptr = token; + cptr = token; s_ptr->next_secondary = (struct elt_list *) free_check_null(s_ptr->next_secondary); - get_secondary_in_species(&ptr, 1.0); + get_secondary_in_species(&cptr, 1.0); s_ptr->next_secondary = elt_list_save(); /* debug for (i = 0; i < count_elts; i++) { @@ -5828,17 +5857,17 @@ read_use(void) * in reaction calculation */ int i, l, n_user, return_value; - char *ptr; + const char* cptr; char token[MAX_LENGTH], token1[MAX_LENGTH];; /* * Read "use" */ - ptr = line; - copy_token(token, &ptr, &l); + cptr = line; + copy_token(token, &cptr, &l); /* * Read keyword */ - copy_token(token, &ptr, &l); + copy_token(token, &cptr, &l); check_key(token); if (next_keyword != Keywords::KEY_SOLUTION && next_keyword != Keywords::KEY_MIX && @@ -5865,7 +5894,7 @@ read_use(void) strcpy(token1, token); for (;;) { - i = copy_token(token, &ptr, &l); + i = copy_token(token, &cptr, &l); if (i == DIGIT) { (void)sscanf(token, "%d", &n_user); @@ -6049,7 +6078,7 @@ read_surface_species(void) int i, j; int association; char token[MAX_LENGTH]; - char *ptr; + const char* cptr; LDBLE offset; struct species *s_ptr; @@ -6057,7 +6086,7 @@ read_surface_species(void) struct rxn_token *token_ptr; int return_value, opt, opt_save; - char *next_char; + const char* next_char; const char *opt_list[] = { "no_check", /* 0 */ "check", /* 1 */ @@ -6148,10 +6177,10 @@ read_surface_species(void) paren_count = 0; copy_token(token, &next_char, &i); s_ptr->mole_balance = string_hsave(token); - ptr = token; + cptr = token; s_ptr->next_secondary = (struct elt_list *) free_check_null(s_ptr->next_secondary); - get_secondary_in_species(&ptr, 1.0); + get_secondary_in_species(&cptr, 1.0); s_ptr->next_secondary = elt_list_save(); /* debug for (i = 0; i < count_elts; i++) { @@ -6419,12 +6448,12 @@ read_surface(void) */ int n_user, n_user_end; LDBLE conc; - char *ptr, *ptr1; + const char* cptr, *cptr1; char *description; std::string token, token1, name; int return_value, opt; - char *next_char; + const char* next_char; const char *opt_list[] = { "equilibrate", /* 0 */ "equil", /* 1 */ @@ -6454,8 +6483,8 @@ read_surface(void) /* * Read surface number and description */ - ptr = line; - read_number_description(ptr, &n_user, &n_user_end, &description); + cptr = line; + read_number_description(cptr, &n_user, &n_user_end, &description); cxxSurface temp_surface; cxxSurfaceComp *comp_ptr = NULL; cxxSurfaceCharge *charge_ptr = NULL; @@ -6717,8 +6746,8 @@ read_surface(void) * Read surface component */ { - ptr = line; - int i = copy_token(token, &ptr); + cptr = line; + int i = copy_token(token, &cptr); if (i != UPPER && token[0] != '[') { error_msg @@ -6735,7 +6764,7 @@ read_surface(void) comp_ptr = &(temp_surface.Get_surface_comps().back()); comp_ptr->Set_formula(token.c_str()); - i = copy_token(token1, &ptr); + i = copy_token(token1, &cptr); if (i == DIGIT) { /* @@ -6760,7 +6789,7 @@ read_surface(void) /* surface conc. is related to mineral or kinetics */ comp_ptr->Set_phase_name(token1.c_str()); - int j = copy_token(token1, &ptr); + int j = copy_token(token1, &cptr); /* read optional 'equilibrium_phases' or 'kinetics' */ if (j != DIGIT) @@ -6782,7 +6811,7 @@ read_surface(void) input_error++; break; } - j = copy_token(token1, &ptr); + j = copy_token(token1, &cptr); } /* read proportion */ @@ -6814,28 +6843,30 @@ read_surface(void) count_elts = 0; paren_count = 0; char * formula = string_duplicate(token.c_str()); - ptr1 = formula; - get_elts_in_species(&ptr1, conc); + cptr1 = formula; + get_elts_in_species(&cptr1, conc); /* * save formula for adjusting number of exchange sites */ - ptr1 = formula; + cptr1 = formula; int l; // name is work space char * name = string_duplicate(formula); name[0] = '\0'; - get_token(&ptr1, name, &dummy, &l); + get_token(&cptr1, name, &dummy, &l); comp_ptr->Set_formula_z(dummy); cxxNameDouble nd = elt_list_NameDouble(); comp_ptr->Set_totals(nd); /* * Search for charge structure */ - ptr1 = formula; - get_elt(&ptr1, name, &l); - ptr1 = strchr(name, '_'); - if (ptr1 != NULL) - ptr1[0] = '\0'; + cptr1 = formula; + get_elt(&cptr1, name, &l); + { + char* ptr = strchr(name, '_'); + if (ptr != NULL) + ptr[0] = '\0'; + } charge_ptr = temp_surface.Find_charge(name); formula = (char*)free_check_null(formula); if (charge_ptr == NULL) @@ -6861,7 +6892,7 @@ read_surface(void) /* * Read surface area (m2/g) */ - copy_token(token1, &ptr); + copy_token(token1, &cptr); if (sscanf(token1.c_str(), SCANFORMAT, &dummy) == 1) { charge_ptr->Set_specific_area(dummy); @@ -6873,17 +6904,17 @@ read_surface(void) /* * Read grams of solid (g) */ - copy_token(token1, &ptr); + copy_token(token1, &cptr); if (sscanf(token1.c_str(), SCANFORMAT, &dummy) == 1) { charge_ptr->Set_grams(dummy); } /* read Dw */ - copy_token(token1, &ptr); + copy_token(token1, &cptr); Utilities::str_tolower(token1); if (strcmp(token1.c_str(), "dw") == 0) { - int j = copy_token(token1, &ptr); + int j = copy_token(token1, &cptr); if (j != DIGIT) { error_msg @@ -7030,12 +7061,12 @@ read_surface_master_species(void) * Reads master species data from data file or input file */ int l, return_value; - char *ptr, *ptr1; + const char* cptr, *cptr1; LDBLE l_z; struct species *s_ptr; char token[MAX_LENGTH], token1[MAX_LENGTH]; int opt, opt_save; - char *next_char; + const char* next_char; const char *opt_list[] = { "capacitance", /* 0 */ "cd_music_capacitance" /* 1 */ @@ -7068,11 +7099,11 @@ read_surface_master_species(void) /* * Get "element" name with valence, allocate space, store */ - ptr = line; + cptr = line; /* * Get element name and save pointer to character string */ - if (copy_token(token, &ptr, &l) != UPPER && token[0] != '[') + if (copy_token(token, &cptr, &l) != UPPER && token[0] != '[') { parse_error++; error_msg("Reading element for master species.", CONTINUE); @@ -7092,7 +7123,7 @@ read_surface_master_species(void) master[count_master] = master_alloc(); master[count_master]->type = SURF; master[count_master]->elt = element_store(token); - if (copy_token(token, &ptr, &l) != UPPER && token[0] != '[') + if (copy_token(token, &cptr, &l) != UPPER && token[0] != '[') { parse_error++; error_msg("Reading surface master species name.", CONTINUE); @@ -7106,8 +7137,8 @@ read_surface_master_species(void) } else { - ptr1 = token; - get_token(&ptr1, token1, &l_z, &l); + cptr1 = token; + get_token(&cptr1, token1, &l_z, &l); master[count_master]->s = s_store(token1, l_z, FALSE); } master[count_master]->primary = TRUE; @@ -7118,8 +7149,8 @@ read_surface_master_species(void) */ strcpy(token1, token); replace("_", " ", token1); - ptr1 = token1; - copy_token(token, &ptr1, &l); + cptr1 = token1; + copy_token(token, &cptr1, &l); strcat(token, "_psi"); add_psi_master_species(token); opt_save = OPTION_DEFAULT; @@ -7138,7 +7169,7 @@ add_psi_master_species(char *token) { struct species *s_ptr; struct master *master_ptr; - char *ptr; + const char* cptr; char token1[MAX_LENGTH]; int i, n, plane; @@ -7176,8 +7207,8 @@ add_psi_master_species(char *token) } count_elts = 0; paren_count = 0; - ptr = token; - get_elts_in_species(&ptr, 1.0); + cptr = token; + get_elts_in_species(&cptr, 1.0); master[count_master]->s->next_elt = elt_list_save(); master[count_master]->s->type = plane; master[count_master]->primary = TRUE; @@ -7220,20 +7251,20 @@ read_title(void) * ERROR if error occurred reading data * */ - char *ptr, *ptr1; + const char* cptr, *cptr1; int l, title_x_length, line_length; int return_value; char token[MAX_LENGTH]; /* * Read anything after keyword */ - ptr = line; - copy_token(token, &ptr, &l); - ptr1 = ptr; + cptr = line; + copy_token(token, &cptr, &l); + cptr1 = cptr; title_x = (char *) free_check_null(title_x); - if (copy_token(token, &ptr, &l) != EMPTY) + if (copy_token(token, &cptr, &l) != EMPTY) { - title_x = string_duplicate(ptr1); + title_x = string_duplicate(cptr1); } else { @@ -7295,13 +7326,13 @@ read_advection(void) * number of cells; * number of shifts; */ - char *ptr; + const char* cptr; char *description; int n_user, n_user_end, i; std::vector punch_temp, print_temp; int return_value, opt, opt_save; - char *next_char; + const char* next_char; const char *opt_list[] = { "cells", /* 0 */ "shifts", /* 1 */ @@ -7326,8 +7357,8 @@ read_advection(void) /* * Read advection number (not currently used) */ - ptr = line; - read_number_description(ptr, &n_user, &n_user_end, &description); + cptr = line; + read_number_description(cptr, &n_user, &n_user_end, &description); description = (char *) free_check_null(description); /* * Set use data @@ -7541,7 +7572,7 @@ read_debug(void) * */ int return_value, opt; - char *next_char; + const char* next_char; const char *opt_list[] = { "iterations", /* 0 */ "tolerance", /* 1 */ @@ -7703,7 +7734,7 @@ read_print(void) * */ int return_value, opt, l; - char *next_char; + const char* next_char; char token[MAX_LENGTH]; LDBLE num; const char *opt_list[] = { @@ -7852,7 +7883,7 @@ read_print(void) } if (j == DIGIT) { - char * tptr = token; + const char * tptr = token; get_num(&tptr, &num); num = floor(num); if (num < 0.0) num = 0.0; @@ -7953,13 +7984,13 @@ check_key(const char *str) * TRUE, * FALSE. */ - char *ptr; + const char* cptr; std::string stdtoken; char * token1; token1 = string_duplicate(str); - ptr = token1; - int j = copy_token(stdtoken, &ptr); + cptr = token1; + int j = copy_token(stdtoken, &cptr); Utilities::str_tolower(stdtoken); std::string key(stdtoken); @@ -8185,7 +8216,7 @@ find_option(const char *item, int *n, const char **list, int count_list, int exa /* ---------------------------------------------------------------------- */ int Phreeqc:: -get_true_false(char *string, int default_value) +get_true_false(const char *string, int default_value) /* ---------------------------------------------------------------------- */ { /* @@ -8193,11 +8224,11 @@ get_true_false(char *string, int default_value) */ int l; char token[MAX_LENGTH]; - char *ptr; + const char* cptr; - ptr = string; + cptr = string; - if (copy_token(token, &ptr, &l) == EMPTY) + if (copy_token(token, &cptr, &l) == EMPTY) { return (default_value); } @@ -8213,7 +8244,7 @@ get_true_false(char *string, int default_value) /* ---------------------------------------------------------------------- */ int Phreeqc:: -get_option(const char **opt_list, int count_opt_list, char **next_char) +get_option(const char **opt_list, int count_opt_list, const char **next_char) /* ---------------------------------------------------------------------- */ { /* @@ -8221,7 +8252,7 @@ get_option(const char **opt_list, int count_opt_list, char **next_char) */ int j; int opt; - char *opt_ptr; + const char *opt_ptr; std::string stdoption; /* * Read line @@ -8305,14 +8336,14 @@ read_rates(void) * ERROR if error occurred reading data * */ - char *ptr; + const char* cptr; int l, n; int return_value, opt, opt_save; char token[MAX_LENGTH]; struct rate *rate_ptr; char *description; int n_user, n_user_end; - char *next_char; + const char* next_char; const char *opt_list[] = { "start", /* 0 */ "end" /* 1 */ @@ -8322,8 +8353,8 @@ read_rates(void) * Read advection number (not currently used) */ n = -1; - ptr = line; - read_number_description(ptr, &n_user, &n_user_end, &description); + cptr = line; + read_number_description(cptr, &n_user, &n_user_end, &description); description = (char *) free_check_null(description); opt_save = OPTION_DEFAULT; /* @@ -8359,8 +8390,8 @@ read_rates(void) opt_save = OPTION_DEFAULT; break; case OPTION_DEFAULT: /* read rate name */ - ptr = line; - copy_token(token, &ptr, &l); + cptr = line; + copy_token(token, &cptr, &l); { const char *name = string_hsave(token); rate_ptr = rate_search(name, &n); @@ -8425,7 +8456,7 @@ read_user_print(void) * */ int return_value, opt, opt_save; - char *next_char; + const char* next_char; const char *opt_list[] = { "start", /* 0 */ "end" /* 1 */ @@ -8504,7 +8535,7 @@ read_user_punch(void) */ int return_value, opt, opt_save; std::string stdtoken; - char *next_char; + const char* next_char; const char *opt_list[] = { "start", /* 0 */ "end", /* 1 */ @@ -8519,9 +8550,9 @@ read_user_punch(void) int n_user, n_user_end; char *description; - char *ptr; - ptr = line; - read_number_description(ptr, &n_user, &n_user_end, &description); + const char* cptr; + cptr = line; + read_number_description(cptr, &n_user, &n_user_end, &description); UserPunch temp_user_punch; temp_user_punch.Set_PhreeqcPtr(this); @@ -8618,12 +8649,12 @@ read_solid_solutions(void) * */ int n_user, n_user_end; - char *ptr; + const char* cptr; char *description; std::string token; int return_value, opt; - char *next_char; + const char* next_char; const char *opt_list[] = { "component", /* 0 */ "comp", /* 1 */ @@ -8648,8 +8679,8 @@ read_solid_solutions(void) /* * Read ss_assemblage number */ - ptr = line; - read_number_description(ptr, &n_user, &n_user_end, &description); + cptr = line; + read_number_description(cptr, &n_user, &n_user_end, &description); cxxSSassemblage temp_ss_assemblage; temp_ss_assemblage.Set_n_user(n_user); temp_ss_assemblage.Set_n_user_end(n_user_end); @@ -8699,14 +8730,14 @@ read_solid_solutions(void) /* * Read phase name of component */ - ptr = next_char; - copy_token(token, &ptr); + cptr = next_char; + copy_token(token, &cptr); comp.Set_name(token); /* * Read moles of component */ - if (copy_token(token, &ptr) == EMPTY) + if (copy_token(token, &cptr) == EMPTY) { comp.Set_moles(NAN); } @@ -8734,13 +8765,13 @@ read_solid_solutions(void) error_msg("Solid solution name has not been defined", CONTINUE); break; } - ptr = next_char; - if (copy_token(token, &ptr) != EMPTY) + cptr = next_char; + if (copy_token(token, &cptr) != EMPTY) { (void)sscanf(token.c_str(), SCANFORMAT, &dummy); ss_ptr->Get_p()[0] = dummy; } - if (copy_token(token, &ptr) != EMPTY) + if (copy_token(token, &cptr) != EMPTY) { (void)sscanf(token.c_str(), SCANFORMAT, &dummy); ss_ptr->Get_p()[1] = dummy; @@ -8753,13 +8784,13 @@ read_solid_solutions(void) error_msg("Solid solution name has not been defined", CONTINUE); break; } - ptr = next_char; - if (copy_token(token, &ptr) != EMPTY) + cptr = next_char; + if (copy_token(token, &cptr) != EMPTY) { (void)sscanf(token.c_str(), SCANFORMAT, &dummy); ss_ptr->Get_p()[0] = dummy; } - if (copy_token(token, &ptr) != EMPTY) + if (copy_token(token, &cptr) != EMPTY) { (void)sscanf(token.c_str(), SCANFORMAT, &dummy); ss_ptr->Get_p()[1] = dummy; @@ -8772,11 +8803,11 @@ read_solid_solutions(void) error_msg("Solid solution name has not been defined", CONTINUE); break; } - ptr = next_char; + cptr = next_char; ss_ptr->Get_p().clear(); for (int i = 0; i < 4; i++) { - if (copy_token(token, &ptr) != EMPTY) + if (copy_token(token, &cptr) != EMPTY) { (void)sscanf(token.c_str(), SCANFORMAT, &dummy); ss_ptr->Get_p().push_back(dummy); @@ -8799,11 +8830,11 @@ read_solid_solutions(void) error_msg("Solid solution name has not been defined", CONTINUE); break; } - ptr = next_char; + cptr = next_char; ss_ptr->Get_p().clear(); for (int i = 0; i < 4; i++) { - if (copy_token(token, &ptr) != EMPTY) + if (copy_token(token, &cptr) != EMPTY) { (void)sscanf(token.c_str(), SCANFORMAT, &dummy); ss_ptr->Get_p().push_back(dummy); @@ -8826,11 +8857,11 @@ read_solid_solutions(void) error_msg("Solid solution name has not been defined", CONTINUE); break; } - ptr = next_char; + cptr = next_char; ss_ptr->Get_p().clear(); for (int i = 0; i < 2; i++) { - if (copy_token(token, &ptr) != EMPTY) + if (copy_token(token, &cptr) != EMPTY) { (void)sscanf(token.c_str(), SCANFORMAT, &dummy); ss_ptr->Get_p().push_back(dummy); @@ -8853,11 +8884,11 @@ read_solid_solutions(void) error_msg("Solid solution name has not been defined", CONTINUE); break; } - ptr = next_char; + cptr = next_char; ss_ptr->Get_p().clear(); for (int i = 0; i < 2; i++) { - if (copy_token(token, &ptr) != EMPTY) + if (copy_token(token, &cptr) != EMPTY) { (void)sscanf(token.c_str(), SCANFORMAT, &dummy); ss_ptr->Get_p().push_back(dummy); @@ -8880,11 +8911,11 @@ read_solid_solutions(void) error_msg("Solid solution name has not been defined", CONTINUE); break; } - ptr = next_char; + cptr = next_char; ss_ptr->Get_p().clear(); for (int i = 0; i < 2; i++) { - if (copy_token(token, &ptr) != EMPTY) + if (copy_token(token, &cptr) != EMPTY) { (void)sscanf(token.c_str(), SCANFORMAT, &dummy); ss_ptr->Get_p().push_back(dummy); @@ -8907,11 +8938,11 @@ read_solid_solutions(void) error_msg("Solid solution name has not been defined", CONTINUE); break; } - ptr = next_char; + cptr = next_char; ss_ptr->Get_p().clear(); for (int i = 0; i < 2; i++) { - if (copy_token(token, &ptr) != EMPTY) + if (copy_token(token, &cptr) != EMPTY) { (void)sscanf(token.c_str(), SCANFORMAT, &dummy); ss_ptr->Get_p().push_back(dummy); @@ -8935,9 +8966,9 @@ read_solid_solutions(void) break; } { - ptr = next_char; + cptr = next_char; int j = 0; - if (copy_token(token, &ptr) != EMPTY) + if (copy_token(token, &cptr) != EMPTY) { j = sscanf(token.c_str(), SCANFORMAT, &dummy); ss_ptr->Set_tk(dummy); @@ -8961,9 +8992,9 @@ read_solid_solutions(void) break; } { - ptr = next_char; + cptr = next_char; int j = 0; - if (copy_token(token, &ptr) != EMPTY) + if (copy_token(token, &cptr) != EMPTY) { j = sscanf(token.c_str(), SCANFORMAT, &dummy); ss_ptr->Set_tk(dummy + 298.15); @@ -8985,11 +9016,11 @@ read_solid_solutions(void) error_msg("Solid solution name has not been defined", CONTINUE); break; } - ptr = next_char; + cptr = next_char; ss_ptr->Get_p().clear(); for (int i = 0; i < 2; i++) { - if (copy_token(token, &ptr) != EMPTY) + if (copy_token(token, &cptr) != EMPTY) { (void)sscanf(token.c_str(), SCANFORMAT, &dummy); ss_ptr->Get_p().push_back(dummy); @@ -9012,11 +9043,11 @@ read_solid_solutions(void) error_msg("Solid solution name has not been defined", CONTINUE); break; } - ptr = next_char; + cptr = next_char; ss_ptr->Get_p().clear(); for (int i = 0; i < 2; i++) { - if (copy_token(token, &ptr) != EMPTY) + if (copy_token(token, &cptr) != EMPTY) { (void)sscanf(token.c_str(), SCANFORMAT, &dummy); ss_ptr->Get_p().push_back(dummy); @@ -9040,13 +9071,13 @@ read_solid_solutions(void) */ delete comp0_ptr; comp0_ptr = new cxxSScomp; - ptr = next_char; - copy_token(token, &ptr); + cptr = next_char; + copy_token(token, &cptr); comp0_ptr->Set_name(token); /* * Read moles of component */ - if (copy_token(token, &ptr) == EMPTY) + if (copy_token(token, &cptr) == EMPTY) { comp0_ptr->Set_moles(NAN); } @@ -9068,13 +9099,13 @@ read_solid_solutions(void) /* * Read phase name of component */ - ptr = next_char; - copy_token(token, &ptr); + cptr = next_char; + copy_token(token, &cptr); comp1_ptr->Set_name(token); /* * Read moles of component */ - if (copy_token(token, &ptr) == EMPTY) + if (copy_token(token, &cptr) == EMPTY) { comp1_ptr->Set_moles(NAN); } @@ -9117,8 +9148,8 @@ read_solid_solutions(void) /* * Read solid solution name */ - ptr = line; - copy_token(token, &ptr); + cptr = line; + copy_token(token, &cptr); ss_ptr->Set_name(token); ss_ptr->Set_total_moles(0.0); break; @@ -9189,7 +9220,7 @@ read_llnl_aqueous_model_parameters(void) * */ int return_value, opt; - char* next_char; + const char* next_char; const char* opt_list[] = { "temperatures", /* 0 */ "temperature", /* 1 */ @@ -9348,7 +9379,7 @@ next_keyword_or_option(const char **opt_list, int count_opt_list) * EOF */ int opt; - char *next_char; + const char* next_char; for (;;) { @@ -9400,7 +9431,7 @@ read_named_logk(void) char token[MAX_LENGTH]; int return_value, opt, opt_save; - char *next_char; + const char* next_char; const char *opt_list[] = { "log_k", /* 0 */ "logk", /* 1 */ @@ -9612,17 +9643,17 @@ read_copy(void) * */ int i, l, n, n_user, n_user_start, n_user_end, return_value; - char *ptr; + const char* cptr; char token[MAX_LENGTH], token1[MAX_LENGTH], nonkeyword[MAX_LENGTH]; /* * Read "copy" */ - ptr = line; - copy_token(token, &ptr, &l); + cptr = line; + copy_token(token, &cptr, &l); /* * Read keyword */ - copy_token(token, &ptr, &l); + copy_token(token, &cptr, &l); check_key(token); switch (next_keyword) @@ -9656,7 +9687,7 @@ read_copy(void) * Read source index */ strcpy(token1, token); - i = copy_token(token, &ptr, &l); + i = copy_token(token, &cptr, &l); if (i == DIGIT) { (void)sscanf(token, "%d", &n_user); @@ -9689,7 +9720,7 @@ read_copy(void) /* * Read target index or range of indices */ - i = copy_token(token, &ptr, &l); + i = copy_token(token, &cptr, &l); if (i == DIGIT) { replace("-", " ", &token[1]); @@ -9795,10 +9826,10 @@ read_reaction_pressure(void) // Make instance, set n_user, n_user_end, description cxxPressure atm(this->phrq_io); - char *ptr = line; + const char* cptr = line; char *description; int n_user, n_user_end; - read_number_description(ptr, &n_user, &n_user_end, &description); + read_number_description(cptr, &n_user, &n_user_end, &description); atm.Set_n_user(n_user); atm.Set_n_user_end(n_user); atm.Set_description(description); @@ -9929,10 +9960,10 @@ read_temperature(void) // Make instance, set n_user, n_user_end, description cxxTemperature t_react(this->phrq_io); - char *ptr = line; + const char* cptr = line; char *description; int n_user, n_user_end; - read_number_description(ptr, &n_user, &n_user_end, &description); + read_number_description(cptr, &n_user, &n_user_end, &description); t_react.Set_n_user(n_user); t_react.Set_n_user_end(n_user); t_react.Set_description(description); diff --git a/readtr.cpp b/readtr.cpp index 4bfada27..de932f5f 100644 --- a/readtr.cpp +++ b/readtr.cpp @@ -35,7 +35,7 @@ read_transport(void) * ERROR if error occurred reading data * */ - char *ptr; + const char* cptr; int i, j, l; int count_length, count_disp, count_punch, count_print, count_por, count_same_model; int count_length_alloc, count_disp_alloc, count_por_alloc; @@ -45,8 +45,9 @@ read_transport(void) LDBLE *length, *disp, *pors; int *punch_temp, *print_temp, *same_model_temp; int return_value, opt, opt_save; - char *next_char, *next_char_save; - char file_name[MAX_LENGTH]; + const char* next_char; + //char file_name[MAX_LENGTH]; + std::string file_name("phreeqc.dmp"); const char *opt_list[] = { "cells", /* 0 */ @@ -100,7 +101,6 @@ read_transport(void) }; int count_opt_list = 48; - strcpy(file_name, "phreeqc.dmp"); /* * Initialize */ @@ -145,8 +145,8 @@ read_transport(void) /* * Read transport number (not currently used) */ - ptr = line; - read_number_description(ptr, &n_user, &n_user_end, &description); + cptr = line; + read_number_description(cptr, &n_user, &n_user_end, &description); description = (char *)free_check_null(description); /* * Set use data to last read @@ -442,17 +442,17 @@ read_transport(void) opt_save = OPTION_DEFAULT; break; case 26: /* dump */ + { dump_in = TRUE; - next_char_save = next_char; - if (copy_token(file_name, &next_char, &l) == EMPTY) - strcpy(file_name, "phreeqc.dmp"); - else + std::string temp_name(next_char); + string_trim(temp_name); + if (temp_name.size() > 0) { - string_trim(next_char_save); - strcpy(file_name, next_char_save); + file_name = temp_name; } opt_save = OPTION_DEFAULT; break; + } case 27: /* output */ case 28: /* output_frequency */ case 34: /* print_frequency */ @@ -1150,7 +1150,7 @@ read_transport(void) /* ---------------------------------------------------------------------- */ int Phreeqc:: -read_line_LDBLEs(char *next_char, LDBLE ** d, int *count_d, int *count_alloc) +read_line_LDBLEs(const char* next_char, LDBLE ** d, int *count_d, int *count_alloc) /* ---------------------------------------------------------------------- */ { int i, j, l, n; diff --git a/sit.cpp b/sit.cpp index 74455f0e..2e2f3745 100644 --- a/sit.cpp +++ b/sit.cpp @@ -177,7 +177,7 @@ read_sit(void) pitz_param_type pzp_type; int return_value, opt, opt_save; - char *next_char; + const char* next_char; const char *opt_list[] = { "epsilon", /* 0 */ "epsilon1" /* 1 */ diff --git a/spread.cpp b/spread.cpp index 3b3c7372..eb87f402 100644 --- a/spread.cpp +++ b/spread.cpp @@ -37,10 +37,10 @@ read_solution_spread(void) struct spread_row *heading, *row_ptr, *units; int count, strings, numbers; int spread_lines; - char *ptr; + const char* cptr; struct defaults soln_defaults; int return_value, opt; - char *next_char; + const char* next_char; const char *opt_list[] = { "temp", /* 0 */ "temperature", /* 1 */ @@ -103,10 +103,10 @@ read_solution_spread(void) if (spread_lines == 0 && opt != OPTION_DEFAULT) { row_ptr = string_to_spread_row(line); - ptr = line; + cptr = line; count = numbers = strings = 0; int j; - while (((j = copy_token(token, &ptr)) != EMPTY)) + while (((j = copy_token(token, &cptr)) != EMPTY)) { count++; if (j == UPPER || j == LOWER) @@ -117,14 +117,16 @@ read_solution_spread(void) /* * Is 2nd token all number */ - ptr = line; - copy_token(token, &ptr); - j = copy_token(token, &ptr); + cptr = line; + copy_token(token, &cptr); + j = copy_token(token, &cptr); bool num = false; if (j == DIGIT) { + char* ptr; strtod(token.c_str(), &ptr); - int j1 = copy_token(token1, &ptr); + cptr = ptr; + int j1 = copy_token(token1, &cptr); if (j1 != EMPTY) { num = FALSE; @@ -134,12 +136,11 @@ read_solution_spread(void) num = TRUE; } } - /* * Starts with hyphen */ - ptr = line; - copy_token(token, &ptr); + cptr = line; + copy_token(token, &cptr); if (token[0] == '-') { /* opt = opt; */ @@ -554,7 +555,7 @@ spread_row_to_solution(struct spread_row *heading, struct spread_row *units, CParser parser(this->phrq_io); int return_value, opt; - char *next_char; + const char* next_char; const char *opt_list[] = { "temp", /* 0 */ "temperature", /* 1 */ @@ -884,10 +885,10 @@ spread_row_to_solution(struct spread_row *heading, struct spread_row *units, /* read and save element name */ { char *temp_iso_name = string_duplicate(token.c_str()); - char *ptr1 = temp_iso_name; - get_num(&ptr1, &dummy); + const char* cptr1 = temp_iso_name; + get_num(&cptr1, &dummy); temp_isotope.Set_isotope_number(dummy); - if (ptr1[0] == '\0' || isupper((int) ptr1[0]) == FALSE) + if (cptr1[0] == '\0' || isupper((int)cptr1[0]) == FALSE) { error_msg("Expecting element name.", PHRQ_io::OT_CONTINUE); error_msg(line_save, PHRQ_io::OT_CONTINUE); @@ -896,7 +897,7 @@ spread_row_to_solution(struct spread_row *heading, struct spread_row *units, char_string = (char*)free_check_null(char_string); return (CParser::PARSER_ERROR); } - temp_isotope.Set_elt_name(ptr1); + temp_isotope.Set_elt_name(cptr1); temp_iso_name = (char*)free_check_null(temp_iso_name); } /* read and store isotope ratio */ @@ -934,8 +935,6 @@ spread_row_to_solution(struct spread_row *heading, struct spread_row *units, break; case 10: /* water */ { - //next_char = char_string; - //int j = copy_token(token, &next_char); // read identifier "water" int j = copy_token(token, &next_char); if (j == EMPTY) { @@ -1061,7 +1060,7 @@ string_to_spread_row(char *string) int j, l; /* possible memory error if length of line is smaller than previous line */ char *token; - char *ptr; + const char* cptr; struct spread_row *spread_row_ptr = NULL; /* * Allocate space @@ -1104,7 +1103,7 @@ string_to_spread_row(char *string) spread_row_ptr->empty = 0; spread_row_ptr->string = 0; spread_row_ptr->number = 0; - ptr = string; + cptr = string; /* * Split by tabs, reallocate space */ @@ -1141,7 +1140,7 @@ string_to_spread_row(char *string) return spread_row_ptr; } } - j = copy_token_tab(token, &ptr, &l); + j = copy_token_tab(token, &cptr, &l); if (j == EOL) break; spread_row_ptr->char_vector[spread_row_ptr->count] = @@ -1240,16 +1239,16 @@ spread_row_free(struct spread_row *spread_row_ptr) /* ---------------------------------------------------------------------- */ int Phreeqc:: -copy_token_tab(char *token_ptr, char **ptr, int *length) +copy_token_tab(char *token_ptr, const char **cptr, int *length) /* ---------------------------------------------------------------------- */ { /* - * Copies from **ptr to *token_ptr until first tab is encountered. + * Copies from **cptr to *token_ptr until first tab is encountered. * * Arguments: * *token_ptr output, place to store token * - * **ptr input, character string to read token from + * **cptr input, character string to read token from * output, next position after token * * length output, length of token @@ -1267,8 +1266,8 @@ copy_token_tab(char *token_ptr, char **ptr, int *length) /* * Strip leading spaces */ - while ((c = **ptr) == ' ') - (*ptr)++; + while ((c = **cptr) == ' ') + (*cptr)++; /* * Check what we have */ @@ -1303,10 +1302,10 @@ copy_token_tab(char *token_ptr, char **ptr, int *length) i = 0; for (;;) { - c = **ptr; + c = **cptr; if (c == '\t') { - (*ptr)++; + (*cptr)++; break; } else if (c == '\0') @@ -1316,7 +1315,7 @@ copy_token_tab(char *token_ptr, char **ptr, int *length) else { token_ptr[i] = c; - (*ptr)++; + (*cptr)++; i++; } } @@ -1340,7 +1339,7 @@ copy_token_tab(char *token_ptr, char **ptr, int *length) /* ---------------------------------------------------------------------- */ int Phreeqc:: -get_option_string(const char **opt_list, int count_opt_list, char **next_char) +get_option_string(const char **opt_list, int count_opt_list, const char **next_char) /* ---------------------------------------------------------------------- */ { /* @@ -1348,7 +1347,7 @@ get_option_string(const char **opt_list, int count_opt_list, char **next_char) */ int j; int opt_l, opt; - char *opt_ptr; + const char *opt_ptr; char option[MAX_LENGTH]; opt_ptr = *next_char; diff --git a/step.cpp b/step.cpp index 032468f9..f78be7d2 100644 --- a/step.cpp +++ b/step.cpp @@ -663,7 +663,7 @@ add_pp_assemblage(cxxPPassemblage *pp_assemblage_ptr) int i; LDBLE amount_to_add, total; char token[MAX_LENGTH]; - char *ptr; + const char* cptr; struct master *master_ptr; if (check_pp_assemblage(pp_assemblage_ptr) == OK) @@ -692,8 +692,8 @@ add_pp_assemblage(cxxPPassemblage *pp_assemblage_ptr) if (comp_ptr->Get_add_formula().size() > 0) { strcpy(token, comp_ptr->Get_add_formula().c_str()); - ptr = &(token[0]); - get_elts_in_species(&ptr, 1.0); + cptr = &(token[0]); + get_elts_in_species(&cptr, 1.0); } else { @@ -938,7 +938,7 @@ reaction_calc(cxxReaction *reaction_ptr) */ int return_value; LDBLE coef; - char *ptr; + const char* cptr; struct phase *phase_ptr; /* * Go through list and generate list of elements and @@ -965,8 +965,8 @@ reaction_calc(cxxReaction *reaction_ptr) else { char * token = string_duplicate(it->first.c_str()); - ptr = token; - get_elts_in_species(&ptr, coef); + cptr = token; + get_elts_in_species(&cptr, coef); free_check_null(token); } } @@ -1064,7 +1064,7 @@ add_ss_assemblage(cxxSSassemblage *ss_assemblage_ptr) int i, j, k; LDBLE amount_to_add, total; struct master *master_ptr; - char *ptr; + const char* cptr; if (ss_assemblage_ptr == NULL) return (OK); @@ -1090,9 +1090,9 @@ add_ss_assemblage(cxxSSassemblage *ss_assemblage_ptr) if (comp_ptr->Get_moles() > 0.0) { char * token = string_duplicate(phase_ptr->formula); - ptr = &(token[0]); + cptr = &(token[0]); count_elts = 0; // appt - get_elts_in_species(&ptr, 1.0); + get_elts_in_species(&cptr, 1.0); free_check_null(token); for (k = 0; k < count_elts; k++) { @@ -1270,7 +1270,7 @@ pp_assemblage_check(cxxPPassemblage *pp_assemblage_ptr) * Check for missing elements */ std::string token; - char *ptr; + const char* cptr; struct master *master_ptr; if (check_pp_assemblage(pp_assemblage_ptr) == OK) @@ -1293,8 +1293,8 @@ pp_assemblage_check(cxxPPassemblage *pp_assemblage_ptr) if (comp_ptr->Get_add_formula().size() > 0) { token = comp_ptr->Get_add_formula(); - ptr = &(token[0]); - get_elts_in_species(&ptr, 1.0); + cptr = &(token[0]); + get_elts_in_species(&cptr, 1.0); } else { diff --git a/structures.cpp b/structures.cpp index ee58ad20..501be22c 100644 --- a/structures.cpp +++ b/structures.cpp @@ -834,7 +834,7 @@ master_alloc(void) /* ---------------------------------------------------------------------- */ int Phreeqc:: -master_delete(char *ptr) +master_delete(const char* cptr) /* ---------------------------------------------------------------------- */ { /* @@ -849,7 +849,7 @@ master_delete(char *ptr) */ int n; - if (master_search(ptr, &n) == NULL) + if (master_search(cptr, &n) == NULL) return (FALSE); master_free(master[n]); master.erase(master.begin() + n); @@ -875,29 +875,29 @@ master_free(struct master *master_ptr) /* ---------------------------------------------------------------------- */ struct master * Phreeqc:: -master_bsearch(const char *ptr) +master_bsearch(const char* cptr) /* ---------------------------------------------------------------------- */ { /* * Uses binary search. Assumes master is in sort order. - * Find master species for string (*ptr) containing name of element or valence state. + * Find master species for string (*cptr) containing name of element or valence state. * - * Input: ptr pointer to string containing element name + * Input: cptr pointer to string containing element name * - * Return: pointer to master structure containing name ptr or NULL. + * Return: pointer to master structure containing name cptr or NULL. */ void *void_ptr; if (master.size() == 0) { return (NULL); } - void_ptr = bsearch((const char *) ptr, + void_ptr = bsearch((const char *) cptr, (char *) &master[0], master.size(), sizeof(struct master *), master_compare_string); if (void_ptr == NULL) { - char * dup = string_duplicate(ptr); + char * dup = string_duplicate(cptr); replace("(+","(", dup); void_ptr = bsearch((const char *) dup, (char*)&master[0], @@ -941,23 +941,23 @@ master_compare(const void *ptr1, const void *ptr2) /* ---------------------------------------------------------------------- */ struct master * Phreeqc:: -master_bsearch_primary(const char *ptr) +master_bsearch_primary(const char* cptr) /* ---------------------------------------------------------------------- */ { /* - * Find primary master species for first element in the string, ptr. + * Find primary master species for first element in the string, cptr. * Uses binary search. Assumes master is in sort order. */ int l; - char *ptr1; + const char* cptr1; char elt[MAX_LENGTH]; struct master *master_ptr_primary; /* * Find element name */ - char * temp_name = string_duplicate(ptr); - ptr1 = temp_name; - get_elt(&ptr1, elt, &l); + char * temp_name = string_duplicate(cptr); + cptr1 = temp_name; + get_elt(&cptr1, elt, &l); free_check_null(temp_name); /* * Search master species list @@ -967,14 +967,14 @@ master_bsearch_primary(const char *ptr) { input_error++; error_string = sformatf( - "Could not find primary master species for %s.", ptr); + "Could not find primary master species for %s.", cptr); error_msg(error_string, CONTINUE); } return (master_ptr_primary); } /* ---------------------------------------------------------------------- */ struct master * Phreeqc:: -master_bsearch_secondary(char *ptr) +master_bsearch_secondary(const char* cptr) /* ---------------------------------------------------------------------- */ { /* @@ -982,15 +982,15 @@ master_bsearch_secondary(char *ptr) * i.e. S(6) for S. */ int l; - char *ptr1; + const char* cptr1; char elt[MAX_LENGTH]; struct master *master_ptr_primary, *master_ptr=NULL, *master_ptr_secondary=NULL; int j; /* * Find element name */ - ptr1 = ptr; - get_elt(&ptr1, elt, &l); + cptr1 = cptr; + get_elt(&cptr1, elt, &l); /* * Search master species list */ @@ -999,7 +999,7 @@ master_bsearch_secondary(char *ptr) { input_error++; error_string = sformatf( - "Could not find primary master species for %s.", ptr); + "Could not find primary master species for %s.", cptr); error_msg(error_string, CONTINUE); } /* @@ -1035,7 +1035,7 @@ master_bsearch_secondary(char *ptr) { input_error++; error_string = sformatf( - "Could not find secondary master species for %s.", ptr); + "Could not find secondary master species for %s.", cptr); error_msg(error_string, STOP); } @@ -1044,11 +1044,11 @@ master_bsearch_secondary(char *ptr) } /* ---------------------------------------------------------------------- */ struct master * Phreeqc:: -master_search(char *ptr, int *n) +master_search(const char* cptr, int *n) /* ---------------------------------------------------------------------- */ { /* - * Linear search of master to find master species in string, ptr. + * Linear search of master to find master species in string, cptr. * Returns pointer if found. n contains position in array master. * Returns NULL if not found. */ @@ -1060,7 +1060,7 @@ master_search(char *ptr, int *n) *n = -999; for (i = 0; i < (int)master.size(); i++) { - if (strcmp(ptr, master[i]->elt->name) == 0) + if (strcmp(cptr, master[i]->elt->name) == 0) { *n = i; master_ptr = master[i]; @@ -1163,11 +1163,11 @@ phase_free(struct phase *phase_ptr) /* ---------------------------------------------------------------------- */ struct phase * Phreeqc:: -phase_bsearch(const char *ptr, int *j, int print) +phase_bsearch(const char* cptr, int *j, int print) /* ---------------------------------------------------------------------- */ { /* Binary search the structure array "phases" for a name that is equal to - * ptr. Assumes array phases is in sort order. + * cptr. Assumes array phases is in sort order. * * Arguments: * name input, a character string to be located in phases. @@ -1184,14 +1184,14 @@ phase_bsearch(const char *ptr, int *j, int print) if ((int)phases.size() > 0) { void_ptr = (void *) - bsearch((char *) ptr, + bsearch((char *) cptr, (char *) &phases[0], phases.size(), sizeof(struct phase *), phase_compare_string); } if (void_ptr == NULL && print == TRUE) { - error_string = sformatf( "Could not find phase in list, %s.", ptr); + error_string = sformatf( "Could not find phase in list, %s.", cptr); error_msg(error_string, CONTINUE); } @@ -1320,11 +1320,11 @@ phase_store(const char *name_in) * ********************************************************************** */ /* ---------------------------------------------------------------------- */ struct rate * Phreeqc:: -rate_bsearch(char *ptr, int *j) +rate_bsearch(const char* cptr, int *j) /* ---------------------------------------------------------------------- */ { /* Binary search the structure array "rates" for a name that is equal to - * ptr. Assumes array rates is in sort order. + * cptr. Assumes array rates is in sort order. * * Arguments: * name input, a character string to be located in rates. @@ -1343,7 +1343,7 @@ rate_bsearch(char *ptr, int *j) return (NULL); } void_ptr = (void *) - bsearch((char *) ptr, + bsearch((char *) cptr, (char *) &rates[0], rates.size(), sizeof(struct rate *), rate_compare_string); @@ -3256,13 +3256,13 @@ get_entity_enum(char *name) * */ int i; - char *ptr; + const char* cptr; char token[MAX_LENGTH]; /* * Read keyword */ - ptr = name; - copy_token(token, &ptr, &i); + cptr = name; + copy_token(token, &cptr, &i); check_key(token); switch (next_keyword) diff --git a/tally.cpp b/tally.cpp index c998abb1..fa186793 100644 --- a/tally.cpp +++ b/tally.cpp @@ -416,7 +416,7 @@ fill_tally_table(int *n_user, int index_conservative, int n_buffer) */ int found; LDBLE moles; - //char *ptr; + //const char* cptr; /* * Cycle through tally table columns */ @@ -792,7 +792,7 @@ build_tally_table(void) int count_tt_pure_phase, count_tt_ss_phase, count_tt_kinetics; struct phase *phase_ptr; char token[MAX_LENGTH]; - char *ptr; + const char* cptr; /* * make list of all elements in all entitites * defines the number of rows in the table @@ -906,8 +906,8 @@ build_tally_table(void) if (comp_ptr->Get_add_formula().size() > 0) { strcpy(token, comp_ptr->Get_add_formula().c_str()); - ptr = &(token[0]); - get_elts_in_species(&ptr, 1.0); + cptr = &(token[0]); + get_elts_in_species(&cptr, 1.0); } else { @@ -1025,8 +1025,8 @@ build_tally_table(void) std::string name = it->first; LDBLE coef = it->second; char * temp_name = string_duplicate(name.c_str()); - ptr = temp_name; - get_elts_in_species(&ptr, 1.0 * coef); + cptr = temp_name; + get_elts_in_species(&cptr, 1.0 * coef); free_check_null(temp_name); } } @@ -1157,7 +1157,7 @@ calc_dummy_kinetic_reaction_tally(cxxKinetics *kinetics_ptr) * Go through kinetic components and add positive amount of each reactant */ LDBLE coef; - char *ptr; + const char* cptr; struct phase *phase_ptr; /* * Go through list and generate list of elements and @@ -1191,8 +1191,8 @@ calc_dummy_kinetic_reaction_tally(cxxKinetics *kinetics_ptr) { std::string name = it->first; char * temp_name = string_duplicate(name.c_str()); - ptr = temp_name; - get_elts_in_species(&ptr, coef); + cptr = temp_name; + get_elts_in_species(&cptr, coef); free_check_null(temp_name); } } diff --git a/tidy.cpp b/tidy.cpp index 0d2f14d4..36c3ed97 100644 --- a/tidy.cpp +++ b/tidy.cpp @@ -663,14 +663,14 @@ coef_in_master(struct master * master_ptr) { int l; LDBLE coef; - char *ptr; + const char* cptr; char elt_name[MAX_LENGTH]; struct elt_list *next_elt; coef = 0.0; char * temp_name = string_duplicate(master_ptr->elt->name); - ptr = temp_name; - get_elt(&ptr, elt_name, &l); + cptr = temp_name; + get_elt(&cptr, elt_name, &l); free_check_null(temp_name); for (next_elt = master_ptr->s->next_elt; next_elt->elt != NULL; next_elt++) @@ -1563,7 +1563,7 @@ tidy_pp_assemblage(void) /* ---------------------------------------------------------------------- */ { LDBLE coef; - char *ptr; + const char* cptr; /* * Find pointers for pure phases */ @@ -1616,8 +1616,8 @@ tidy_pp_assemblage(void) } { char * temp_add = string_duplicate(it->second.Get_add_formula().c_str()); - ptr = temp_add; - get_elts_in_species(&ptr, coef); + cptr = temp_add; + get_elts_in_species(&cptr, coef); free_check_null(temp_add); } /* check that all elements are in the database */ @@ -2299,7 +2299,8 @@ tidy_species(void) { int i, j; struct master *master_ptr; - char c, *ptr; + char c; + const char* cptr; /* * Make sure species pointers are ok */ @@ -2331,10 +2332,10 @@ tidy_species(void) for (i = 0; i < (int)master.size(); i++) { char * temp_name = string_duplicate(master[i]->elt->name); - ptr = temp_name; - if (ptr[0] != '[') + cptr = temp_name; + if (cptr[0] != '[') { - while ((c = (int) *(++ptr)) != '\0') + while ((c = (int) *(++cptr)) != '\0') { if (isupper((int) c)) { @@ -2630,7 +2631,7 @@ tidy_surface(void) * After all of data are read, fill in master species for surface comps * Sort surface */ - char *ptr1; + const char* cptr1; cxxSurface *surface_ptr; //std::map::iterator kit; //for (kit = Rxn_surface_map.begin(); kit != Rxn_surface_map.end(); kit++) @@ -2715,8 +2716,8 @@ tidy_surface(void) paren_count = 0; { char * temp_formula = string_duplicate(comp_ptr->Get_formula().c_str()); - ptr1 = temp_formula; - get_elts_in_species(&ptr1, comp_ptr->Get_moles()); + cptr1 = temp_formula; + get_elts_in_species(&cptr1, comp_ptr->Get_moles()); free_check_null(temp_formula); } { @@ -2900,15 +2901,15 @@ phase_rxn_to_trxn(struct phase *phase_ptr, struct reaction *rxn_ptr) * temp reaction structure. */ int i, l; - char *ptr; + const char* cptr; char token[MAX_LENGTH]; LDBLE l_z; trxn.token[0].name = phase_ptr->formula; /* charge */ char * temp_formula = string_duplicate(phase_ptr->formula); - ptr = temp_formula; - get_token(&ptr, token, &l_z, &l); + cptr = temp_formula; + get_token(&cptr, token, &l_z, &l); free_check_null(temp_formula); trxn.token[0].z = l_z; trxn.token[0].s = NULL; @@ -3113,7 +3114,7 @@ tidy_kin_exchange(void) */ { cxxKinetics *kinetics_ptr; - char *ptr; + const char* cptr; LDBLE conc; //std::map::iterator it = Rxn_exchange_map.begin(); @@ -3209,8 +3210,8 @@ tidy_kin_exchange(void) paren_count = 0; { char * temp_formula = string_duplicate(comp_ref.Get_formula().c_str()); - ptr = temp_formula; - get_elts_in_species(&ptr, conc); + cptr = temp_formula; + get_elts_in_species(&cptr, conc); free_check_null(temp_formula); } comp_ref.Set_totals(elt_list_NameDouble()); @@ -3233,7 +3234,7 @@ update_kin_exchange(void) */ { cxxKinetics* kinetics_ptr; - char* ptr; + const char* cptr; LDBLE conc; std::map::iterator it = Rxn_exchange_map.begin(); @@ -3322,8 +3323,8 @@ update_kin_exchange(void) paren_count = 0; { char* temp_formula = string_duplicate(comp_ref.Get_formula().c_str()); - ptr = temp_formula; - get_elts_in_species(&ptr, 1.0); + cptr = temp_formula; + get_elts_in_species(&cptr, 1.0); free_check_null(temp_formula); } cxxNameDouble nd_formula = elt_list_NameDouble(); @@ -3345,8 +3346,8 @@ update_kin_exchange(void) paren_count = 0; { char* temp_formula = string_duplicate(comp_ref.Get_formula().c_str()); - ptr = temp_formula; - get_elts_in_species(&ptr, conc); + cptr = temp_formula; + get_elts_in_species(&cptr, conc); free_check_null(temp_formula); } comp_ref.Set_totals(elt_list_NameDouble()); @@ -3365,7 +3366,7 @@ tidy_min_exchange(void) */ { int n, jj; - char *ptr; + const char* cptr; LDBLE conc; //std::map::iterator it = Rxn_exchange_map.begin(); @@ -3461,8 +3462,8 @@ tidy_min_exchange(void) paren_count = 0; { char * temp_formula = string_duplicate(comp_ref.Get_formula().c_str()); - ptr = temp_formula; - get_elts_in_species(&ptr, conc); + cptr = temp_formula; + get_elts_in_species(&cptr, conc); free_check_null(temp_formula); } comp_ref.Set_totals(elt_list_NameDouble()); @@ -3473,8 +3474,8 @@ tidy_min_exchange(void) paren_count = 0; { char * temp_formula = string_duplicate(comp_ref.Get_formula().c_str()); - ptr = temp_formula; - get_elts_in_species(&ptr, -comp_ref.Get_phase_proportion()); + cptr = temp_formula; + get_elts_in_species(&cptr, -comp_ref.Get_phase_proportion()); free_check_null(temp_formula); } int l; @@ -3482,8 +3483,8 @@ tidy_min_exchange(void) if (phase_ptr != NULL) { char * temp_formula = string_duplicate(phase_ptr->formula); - ptr = temp_formula; - get_elts_in_species(&ptr, 1.0); + cptr = temp_formula; + get_elts_in_species(&cptr, 1.0); free_check_null(temp_formula); } else @@ -3527,7 +3528,7 @@ update_min_exchange(void) */ { int n, jj; - char* ptr; + const char* cptr; LDBLE conc; std::map::iterator it = Rxn_exchange_map.begin(); @@ -3616,8 +3617,8 @@ update_min_exchange(void) paren_count = 0; { char* temp_formula = string_duplicate(comp_ref.Get_formula().c_str()); - ptr = temp_formula; - get_elts_in_species(&ptr, 1.0); + cptr = temp_formula; + get_elts_in_species(&cptr, 1.0); free_check_null(temp_formula); } cxxNameDouble nd_formula = elt_list_NameDouble(); @@ -3639,8 +3640,8 @@ update_min_exchange(void) paren_count = 0; { char* temp_formula = string_duplicate(comp_ref.Get_formula().c_str()); - ptr = temp_formula; - get_elts_in_species(&ptr, conc); + cptr = temp_formula; + get_elts_in_species(&cptr, conc); free_check_null(temp_formula); } comp_ref.Set_totals(elt_list_NameDouble()); @@ -3651,8 +3652,8 @@ update_min_exchange(void) paren_count = 0; { char* temp_formula = string_duplicate(comp_ref.Get_formula().c_str()); - ptr = temp_formula; - get_elts_in_species(&ptr, -comp_ref.Get_phase_proportion()); + cptr = temp_formula; + get_elts_in_species(&cptr, -comp_ref.Get_phase_proportion()); free_check_null(temp_formula); } int l; @@ -3660,8 +3661,8 @@ update_min_exchange(void) if (phase_ptr != NULL) { char* temp_formula = string_duplicate(phase_ptr->formula); - ptr = temp_formula; - get_elts_in_species(&ptr, 1.0); + cptr = temp_formula; + get_elts_in_species(&cptr, 1.0); free_check_null(temp_formula); } else @@ -3810,10 +3811,10 @@ tidy_min_surface(void) /* if (conc < MIN_RELATED_SURFACE) conc = 0.0; */ { char * temp_formula = string_duplicate(surface_comp_ptr->Get_formula().c_str()); - char *ptr = temp_formula; + const char* cptr = temp_formula; count_elts = 0; paren_count = 0; - get_elts_in_species(&ptr, conc); + get_elts_in_species(&cptr, conc); free_check_null(temp_formula); } { @@ -3841,8 +3842,8 @@ tidy_min_surface(void) paren_count = 0; { char * temp_formula = string_duplicate(phase_ptr->formula); - char * ptr = temp_formula; - get_elts_in_species(&ptr, 1.0); + const char* cptr = temp_formula; + get_elts_in_species(&cptr, 1.0); free_check_null(temp_formula); } // Revise logic for surface related to mineral @@ -3852,8 +3853,8 @@ tidy_min_surface(void) // Use formula for all types of surfaces { char * temp_formula = string_duplicate(comp_jj_ptr->Get_formula().c_str()); - char *ptr = temp_formula; - get_elts_in_species(&ptr, + const char* cptr = temp_formula; + get_elts_in_species(&cptr, -comp_jj_ptr->Get_phase_proportion()); if (surface_ptr->Get_type() != cxxSurface::CD_MUSIC) @@ -4064,10 +4065,10 @@ update_min_surface(void) else /* need to generate from scratch */ { char* temp_formula = string_duplicate(surface_comp_ptr->Get_formula().c_str()); - char* ptr = temp_formula; + const char* cptr = temp_formula; count_elts = 0; paren_count = 0; - get_elts_in_species(&ptr, conc); + get_elts_in_species(&cptr, conc); free_check_null(temp_formula); cxxNameDouble nd = elt_list_NameDouble(); @@ -4197,10 +4198,10 @@ tidy_kin_surface(void) /* if (conc < MIN_RELATED_SURFACE) conc = 0.0; */ { char * temp_formula = string_duplicate(comp_ptr->Get_formula().c_str()); - char *ptr = temp_formula; + const char* cptr = temp_formula; count_elts = 0; paren_count = 0; - get_elts_in_species(&ptr, conc); + get_elts_in_species(&cptr, conc); free_check_null(temp_formula); } { @@ -4259,8 +4260,8 @@ tidy_kin_surface(void) else { char * temp_name = string_duplicate(name.c_str()); - char * ptr = temp_name; - get_elts_in_species(&ptr, coef); + const char* cptr = temp_name; + get_elts_in_species(&cptr, coef); free_check_null(temp_name); } } @@ -4287,8 +4288,8 @@ tidy_kin_surface(void) kin_comp_ptr->Get_rate_name().c_str()) == 0) { char * temp_formula = string_duplicate( comp_ptr->Get_formula().c_str()); - char *ptr = temp_formula; - get_elts_in_species(&ptr, -1 * comp_ptr->Get_phase_proportion()); + const char* cptr = temp_formula; + get_elts_in_species(&cptr, -1 * comp_ptr->Get_phase_proportion()); free_check_null(temp_formula); } } @@ -4477,10 +4478,10 @@ update_kin_surface(void) else /* need to generate from scratch */ { char* temp_formula = string_duplicate(comp_ptr->Get_formula().c_str()); - char* ptr = temp_formula; + const char* cptr = temp_formula; count_elts = 0; paren_count = 0; - get_elts_in_species(&ptr, conc); + get_elts_in_species(&cptr, conc); free_check_null(temp_formula); cxxNameDouble nd = elt_list_NameDouble(); diff --git a/transport.cpp b/transport.cpp index 5f060834..709d09ce 100644 --- a/transport.cpp +++ b/transport.cpp @@ -1678,7 +1678,8 @@ set_initial_moles(int i) /* ---------------------------------------------------------------------- */ { cxxKinetics *kinetics_ptr; - char token[MAX_LENGTH], token1[MAX_LENGTH], *ptr; + char token[MAX_LENGTH], token1[MAX_LENGTH]; + const char* cptr; int j, k, l; /* * Pure phase assemblage @@ -1763,11 +1764,11 @@ set_initial_moles(int i) count_elts = 0; paren_count = 0; strcpy(token, "X"); - ptr = token; - get_elts_in_species(&ptr, 2e-10); - ptr = token; + cptr = token; + get_elts_in_species(&cptr, 2e-10); + cptr = token; LDBLE z; - get_token(&ptr, token1, &z, &l); + get_token(&cptr, token1, &z, &l); comp.Set_formula(token1); comp.Set_formula_z(z); comp.Set_totals(elt_list_NameDouble()); @@ -2747,9 +2748,9 @@ diffuse_implicit(LDBLE DDt, int stagnant) break; } char * temp_name = string_duplicate(ct[1].J_ij[cp].name); - char * ptr = temp_name; + const char* cptr = temp_name; count_elts = 0; - get_elts_in_species(&ptr, 1); + get_elts_in_species(&cptr, 1); free_check_null(temp_name); for (int k = 0; k < count_elts; k++) { @@ -3589,15 +3590,15 @@ fill_m_s(struct J_ij *l_J_ij, int l_J_ij_count_spec, int icell, int stagnant) */ int j, k, l; LDBLE fraction; - char *ptr; + const char* cptr; for (j = 0; j < l_J_ij_count_spec; j++) { { char * temp_name = string_duplicate(l_J_ij[j].name); - ptr = temp_name; + cptr = temp_name; count_elts = 0; - get_elts_in_species(&ptr, 1); + get_elts_in_species(&cptr, 1); free_check_null(temp_name); } if (implicit && stagnant < 2) diff --git a/utilities.cpp b/utilities.cpp index 574b69dc..6010b0c1 100644 --- a/utilities.cpp +++ b/utilities.cpp @@ -312,13 +312,13 @@ compute_gfw(const char *string, LDBLE * gfw) int i; char token[MAX_LENGTH]; - char *ptr; + const char* cptr; count_elts = 0; paren_count = 0; strcpy(token, string); - ptr = token; - if (get_elts_in_species(&ptr, 1.0) == ERROR) + cptr = token; + if (get_elts_in_species(&cptr, 1.0) == ERROR) { return (ERROR); } @@ -337,16 +337,16 @@ compute_gfw(const char *string, LDBLE * gfw) /* ---------------------------------------------------------------------- */ int Phreeqc:: -copy_token(char *token_ptr, const char **ptr, int *length) +copy_token(char *token_ptr, const char **cptr, int *length) /* ---------------------------------------------------------------------- */ { /* - * Copies from **ptr to *token_ptr until first space is encountered. + * Copies from **cptr to *token_ptr until first space is encountered. * * Arguments: * *token_ptr output, place to store token * - * **ptr input, character string to read token from + * **cptr input, character string to read token from * output, next position after token * * length output, length of token @@ -364,8 +364,8 @@ copy_token(char *token_ptr, const char **ptr, int *length) /* * Read to end of whitespace */ - while (isspace((int) (c = **ptr))) - (*ptr)++; + while (isspace((int) (c = **cptr))) + (*cptr)++; /* * Check what we have */ @@ -393,12 +393,12 @@ copy_token(char *token_ptr, const char **ptr, int *length) * Begin copying to token */ i = 0; - while ((!isspace((int) (c = **ptr))) && + while ((!isspace((int) (c = **cptr))) && /* c != ',' && */ c != ';' && c != '\0') { token_ptr[i] = c; - (*ptr)++; + (*cptr)++; i++; } token_ptr[i] = '\0'; @@ -407,16 +407,16 @@ copy_token(char *token_ptr, const char **ptr, int *length) } /* ---------------------------------------------------------------------- */ int Phreeqc:: -copy_token(std::string &token, const char **ptr) +copy_token(std::string &token, const char **cptr) /* ---------------------------------------------------------------------- */ { /* - * Copies from **ptr to *token until first space is encountered. + * Copies from **cptr to *token until first space is encountered. * * Arguments: * &token_ptr output, place to store token * - * **ptr input, character string to read token from + * **cptr input, character string to read token from * output, next position after token * * Returns: @@ -433,8 +433,8 @@ copy_token(std::string &token, const char **ptr) * Read to end of whitespace */ token.clear(); - while (isspace((int) (c = **ptr))) - (*ptr)++; + while (isspace((int) (c = **cptr))) + (*cptr)++; /* * Check what we have */ @@ -463,107 +463,19 @@ copy_token(std::string &token, const char **ptr) */ char c_char[2]; c_char[1] = '\0'; - while ((!isspace((int) (c = **ptr))) && + while ((!isspace((int) (c = **cptr))) && /* c != ',' && */ c != ';' && c != '\0') { c_char[0] = c; token.append(c_char); - (*ptr)++; + (*cptr)++; } return (return_value); } -#if defined PHREEQ98 /* ---------------------------------------------------------------------- */ int Phreeqc:: -copy_title(char *token_ptr, char **ptr, int *length) -/* ---------------------------------------------------------------------- */ -{ -/* - * Copies from **ptr to *token_ptr until first space or comma is encountered. - * - * Arguments: - * *token_ptr output, place to store token - * - * **ptr input, character string to read token from - * output, next position after token - * - * length output, length of token - * - * Returns: - * UPPER, - * LOWER, - * DIGIT, - * EMPTY, - * UNKNOWN. - */ - int i, return_value; - char c; - int Quote = FALSE; - -/* - * Read to end of whitespace - */ - while (isspace((int) (c = **ptr)) || (c == ',') || (c == '"')) - { - if (c == '"') - Quote = TRUE; - (*ptr)++; - } -/* - * Check what we have - */ - if (isupper((int) c) || c == '[') - { - return_value = UPPER; - } - else if (islower((int) c)) - { - return_value = LOWER; - } - else if (isdigit((int) c) || c == '.' || c == '-') - { - return_value = DIGIT; - } - else if (c == '\0') - { - return_value = EMPTY; - } - else - { - return_value = UNKNOWN; - } -/* - * Begin copying to token - */ - i = 0; - if (Quote == TRUE) - { - while (((int) (c = **ptr) != '"') && c != '\0') - { - token_ptr[i] = c; - (*ptr)++; - i++; - } - } - else - { - while ((!isspace((int) (c = **ptr))) && - c != ',' && c != ';' && c != '\0') - { - token_ptr[i] = c; - (*ptr)++; - i++; - } - } - token_ptr[i] = '\0'; - *length = i; - return (return_value); -} -#endif -/* ---------------------------------------------------------------------- */ -int Phreeqc:: -dup_print(const char *ptr, int emphasis) +dup_print(const char* cptr, int emphasis) /* ---------------------------------------------------------------------- */ { /* @@ -576,14 +488,14 @@ dup_print(const char *ptr, int emphasis) if (pr.headings == FALSE) return (OK); - std::string save_in(ptr); - l = (int) strlen(ptr); + std::string save_in(cptr); + l = (int) strlen(cptr); if (emphasis == TRUE) { std::string dash; dash.resize(l, '-'); - output_msg(sformatf("%s\n%s\n%s\n\n", dash.c_str(), save_in.c_str(), dash)); - log_msg(sformatf("%s\n%s\n%s\n\n", dash.c_str(), save_in.c_str(), dash)); + output_msg(sformatf("%s\n%s\n%s\n\n", dash.c_str(), save_in.c_str(), dash.c_str())); + log_msg(sformatf("%s\n%s\n%s\n\n", dash.c_str(), save_in.c_str(), dash.c_str())); } else { @@ -642,22 +554,22 @@ get_token(const char **eqnaddr, char *string, LDBLE * l_z, int *l) int i, j; int ltoken, lcharge; char c; - char *ptr, *ptr1, *rest; + const char* cptr, *ptr1, *rest; char charge[MAX_LENGTH]; rest = *eqnaddr; - ptr = *eqnaddr; + cptr = *eqnaddr; i = 0; /* * Find end of token or begining of charge */ - while (((c = *ptr) != '+') && (c != '-') && (c != '=') && (c != '\0')) + while (((c = *cptr) != '+') && (c != '-') && (c != '=') && (c != '\0')) { string[i++] = c; if (c == '[') { - ptr++; - while ((c = *ptr) != ']') + cptr++; + while ((c = *cptr) != ']') { if (c == '\0') { @@ -675,7 +587,7 @@ get_token(const char **eqnaddr, char *string, LDBLE * l_z, int *l) MAX_LENGTH, string)); return (ERROR); } - ptr++; + cptr++; } string[i++] = c; } @@ -688,7 +600,7 @@ get_token(const char **eqnaddr, char *string, LDBLE * l_z, int *l) MAX_LENGTH, string)); return (ERROR); } - ptr++; + cptr++; } string[i] = '\0'; ltoken = i; @@ -706,7 +618,7 @@ get_token(const char **eqnaddr, char *string, LDBLE * l_z, int *l) */ if (c == '=' || c == '\0') { - *eqnaddr = ptr; + *eqnaddr = cptr; lcharge = 0; *l_z = 0.0; } @@ -716,7 +628,7 @@ get_token(const char **eqnaddr, char *string, LDBLE * l_z, int *l) * Copy characters into charge until next species or end is detected */ j = 0; - ptr1 = ptr; + ptr1 = cptr; while ((isalpha((int) (c = *ptr1)) == FALSE) && (c != '(') && (c != ')') && @@ -834,7 +746,7 @@ parse_couple(char *token) * order. */ int e1, e2, p1, p2; - char *ptr; + const char* cptr; char elt1[MAX_LENGTH], elt2[MAX_LENGTH], paren1[MAX_LENGTH], paren2[MAX_LENGTH]; @@ -844,9 +756,9 @@ parse_couple(char *token) return (OK); } while (replace("+", "", token) == TRUE); - ptr = token; - get_elt(&ptr, elt1, &e1); - if (*ptr != '(') + cptr = token; + get_elt(&cptr, elt1, &e1); + if (*cptr != '(') { error_string = sformatf( "Element name must be followed by " "parentheses in redox couple, %s.", token); @@ -857,10 +769,10 @@ parse_couple(char *token) paren_count = 1; paren1[0] = '('; p1 = 1; - while (*ptr != '\0') + while (*cptr != '\0') { - ptr++; - if (*ptr == '/' || *ptr == '\0') + cptr++; + if (*cptr == '/' || *cptr == '\0') { error_string = sformatf( "End of line or " "/" @@ -868,17 +780,17 @@ parse_couple(char *token) error_msg(error_string, CONTINUE); return (ERROR); } - paren1[p1++] = *ptr; - if (*ptr == '(') + paren1[p1++] = *cptr; + if (*cptr == '(') paren_count++; - if (*ptr == ')') + if (*cptr == ')') paren_count--; if (paren_count == 0) break; } paren1[p1] = '\0'; - ptr++; - if (*ptr != '/') + cptr++; + if (*cptr != '/') { error_string = sformatf( " " "/" " must follow parentheses " "ending first half of redox couple, %s.", token); @@ -886,8 +798,8 @@ parse_couple(char *token) parse_error++; return (ERROR); } - ptr++; - get_elt(&ptr, elt2, &e2); + cptr++; + get_elt(&cptr, elt2, &e2); if (strcmp(elt1, elt2) != 0) { error_string = sformatf( "Redox couple must be two redox states " @@ -895,7 +807,7 @@ parse_couple(char *token) error_msg(error_string, CONTINUE); return (ERROR); } - if (*ptr != '(') + if (*cptr != '(') { error_string = sformatf( "Element name must be followed by " "parentheses in redox couple, %s.", token); @@ -906,10 +818,10 @@ parse_couple(char *token) paren2[0] = '('; paren_count = 1; p2 = 1; - while (*ptr != '\0') + while (*cptr != '\0') { - ptr++; - if (*ptr == '/' || *ptr == '\0') + cptr++; + if (*cptr == '/' || *cptr == '\0') { error_string = sformatf( "End of line or " "/" " encountered" " before end of parentheses, %s.", token); @@ -917,10 +829,10 @@ parse_couple(char *token) return (ERROR); } - paren2[p2++] = *ptr; - if (*ptr == '(') + paren2[p2++] = *cptr; + if (*cptr == '(') paren_count++; - if (*ptr == ')') + if (*cptr == ')') paren_count--; if (paren_count == 0) break; @@ -1003,7 +915,7 @@ replace(const char *str1, const char *str2, char *str) * FALSE if string was not replaced */ int l, l1, l2; - char *ptr_start; + char* ptr_start; ptr_start = strstr(str, str1); /* @@ -1028,7 +940,14 @@ replace(const char *str1, const char *str2, char *str) memcpy(ptr_start, str2, l2); return (TRUE); } - +void Phreeqc:: +replace(std::string &stds, const char* str1, const char* str2) +{ + size_t pos; + while ((pos = stds.find(str1)) != std::string::npos) { + stds.replace(pos, 1, str2); + } +} /* ---------------------------------------------------------------------- */ void Phreeqc:: space(void **ptr, int i, int *max, int struct_size) @@ -1135,7 +1054,7 @@ str_tolower(char *str) /* * Replaces string, str, with same string, lower case */ - char *ptr; + char* ptr; ptr = str; while (*ptr != '\0') { @@ -1152,7 +1071,7 @@ str_toupper(char *str) /* * Replaces string, str, with same string, lower case */ - char *ptr; + char* ptr; ptr = str; while (*ptr != '\0') { @@ -1460,7 +1379,7 @@ string_trim(char *str) * EMPTY if string is all whitespace */ int i, l, start, end, length; - char *ptr_start; + char* ptr_start; l = (int) strlen(str); /* @@ -1494,6 +1413,22 @@ string_trim(char *str) return (TRUE); } +void Phreeqc::string_trim_left(std::string& str) +{ + const std::string& chars = "\t\n "; + str.erase(0, str.find_first_not_of(chars)); +} +void Phreeqc::string_trim_right(std::string& str) +{ + const std::string& chars = "\t\n "; + str.erase(str.find_last_not_of(chars) + 1); +} +void Phreeqc::string_trim(std::string& str) +{ + const std::string& chars = "\t\n "; + str.erase(0, str.find_first_not_of(chars)); + str.erase(str.find_last_not_of(chars) + 1); +} /* ---------------------------------------------------------------------- */ int Phreeqc:: @@ -1547,7 +1482,7 @@ string_trim_left(char *str) * EMPTY if string is all whitespace */ int i, l, start, end, length; - char *ptr_start; + char* ptr_start; l = (int) strlen(str); /*