char * get_random_hint (int force) { char *data, *result = NULL, *eol; int len; int start; static int last_sec; static struct timeval tv; GIConv conv; GString *buffer; /* Do not change hints more often than one minute */ gettimeofday (&tv, NULL); if (!force && !(tv.tv_sec > last_sec + 60)) return g_strdup (""); last_sec = tv.tv_sec; data = load_mc_home_file (mc_global.share_data_dir, MC_HINT, NULL); if (data == NULL) return NULL; /* get a random entry */ srand (tv.tv_sec); len = strlen (data); start = rand () % len; for (; start != 0; start--) if (data[start] == '\n') { start++; break; } eol = strchr (data + start, '\n'); if (eol != NULL) *eol = '\0'; /* hint files are stored in utf-8 */ /* try convert hint file from utf-8 to terminal encoding */ conv = str_crt_conv_from ("UTF-8"); if (conv != INVALID_CONV) { buffer = g_string_new (""); if (str_convert (conv, &data[start], buffer) != ESTR_FAILURE) result = g_strdup (buffer->str); g_string_free (buffer, TRUE); str_close_conv (conv); } g_free (data); return result; }
struct data *str_find_op(struct data *src,struct data *in,int nbytes){ struct data *ptr = (struct data *) NULL; char src_buf[BUFFER]; char dst_buf[BUFFER]; char *sptr = src_buf; char *dptr = dst_buf; char *s ; if (str_convert(src,sptr) ) sptr = src->STR_VALUE; if(str_convert(in,dptr) ) dptr = in->STR_VALUE; s = sptr + nbytes; if (s < sptr + strlen(sptr) ) { s = strstr(s,dptr); //try finding dptr in s if (s) { ptr = MALLOC_DATA; ptr->ele_type = _STR; ptr->STR_PTR = INSTALL_STRING(s); } } return ptr; }
void out_list ( char *str /* process ranges in this string */ ) { int start, stop; /* end points */ /* * * Called to get the processing ranges that were specified by using the -o option. * The range syntax should be identical to the one used in nroff and troff. * */ while ( *str && nolist < sizeof(olist) - 2 ) { start = stop = str_convert(&str, 0); if ( *str == '-' && *str++ ) stop = str_convert(&str, 9999); if ( start > stop ) error(FATAL, "illegal range %d-%d", start, stop); olist[nolist++] = start; olist[nolist++] = stop; if ( *str != '\0' ) str++; } /* End while */ olist[nolist] = 0; } /* End of out_list */
//================================================================================================== void TestDialog_2::SendSerialData() { UpdateData(true); //CString str_value; //GetDlgItemText(IDC_EDIT1, str_value); CStringA str_convert(m_Edit_1); LPCSTR s = str_convert; //LPCSTR s = (LPCSTR)(LPCTSTR)str_value; serial.Write(s); //serial.Write("Hello From C++ Socket"); }
gchar * mc_config_get_string (mc_config_t * mc_config, const gchar * group, const gchar * param, const gchar * def) { GIConv conv; GString *buffer; gchar *ret; estr_t conv_res; if (!mc_config || !group || !param) return g_strdup (def); if (!mc_config_has_param (mc_config, group, param)) { if (def != NULL) mc_config_set_string (mc_config, group, param, def); return g_strdup (def); } ret = g_key_file_get_string (mc_config->handle, group, param, NULL); if (ret == NULL) ret = g_strdup (def); if (mc_global.utf8_display) return ret; conv = str_crt_conv_from ("UTF-8"); if (conv == INVALID_CONV) return ret; buffer = g_string_new (""); conv_res = str_convert (conv, ret, buffer); str_close_conv (conv); if (conv_res == ESTR_FAILURE) { g_string_free (buffer, TRUE); return ret; } g_free (ret); return g_string_free (buffer, FALSE); }
static gchar * mc_args__convert_help_to_syscharset (const gchar * charset, const gchar * error_message_str, const gchar * help_str) { GString *buffer; GIConv conv; gchar *full_help_str; buffer = g_string_new (""); conv = g_iconv_open (charset, "UTF-8"); full_help_str = g_strdup_printf ("%s\n\n%s\n", error_message_str, help_str); str_convert (conv, full_help_str, buffer); g_free (full_help_str); g_iconv_close (conv); return g_string_free (buffer, FALSE); }
struct data* str_operate(struct data *a,struct data *b,int op){ struct data *ptr = (struct data *) NULL; char src_buf[BUFFER]; char dst_buf[BUFFER]; char *src_ptr =src_buf; char *dst_ptr =dst_buf; char *res; char *temp; int i,n=0; if( str_convert(a,src_ptr) ) src_ptr = a->STR_VALUE; if(str_convert(b,dst_ptr) ) dst_ptr = b->STR_VALUE; ptr = MALLOC_DATA; if(! ptr) { SET_ERROR(MEM_ERROR); } ptr->ele_type = _STR; switch(op) { case PLUS: //add 2 strings res = (char *)malloc(sizeof(char) * (strlen(src_ptr) + strlen(dst_ptr) + 1) ); if (!res) { SET_ERROR(MEM_ERROR); } strcpy(res,src_ptr); strcat(res,dst_ptr); ptr->STR_PTR = INSTALL_STRING(res); free((void*)res); break; case MULTIPLY: //multiply 2 strings if((a->ele_type == _INT) || (b->ele_type == _INT) ){ if(a->ele_type == _INT) { n=atoi(src_ptr); temp=dst_ptr; } else { n=atoi(dst_ptr); temp=src_ptr; } res = (char*)malloc(sizeof(char) * (strlen(temp) * n + 1) ); if(! res) { SET_ERROR(MEM_ERROR); } *res = 0; for(i=0;i < n; i++) strcat(res,temp); ptr->STR_PTR = INSTALL_STRING(res); free((void*)res); } else { SET_ERROR(BAD_OPERAND); } break; default: ptr->STR_PTR = (struct str_type *) NULL; deinstall_data(ptr); SET_ERROR(BAD_OPERATOR); } //end switch return ptr; } //end routine
char * get_random_hint (int force) { char *data, *result = NULL, *eop; int len; int start; static int last_sec; static struct timeval tv; GIConv conv; /* Do not change hints more often than one minute */ gettimeofday (&tv, NULL); if (!force && !(tv.tv_sec > last_sec + 60)) return g_strdup (""); last_sec = tv.tv_sec; data = load_mc_home_file (mc_global.share_data_dir, MC_HINT, NULL); if (data == NULL) return NULL; /* get a random entry */ srand (tv.tv_sec); len = strlen (data); start = rand () % (len - 1); /* Search the start of paragraph */ for (; start != 0; start--) if (data[start] == '\n' && data[start + 1] == '\n') { start += 2; break; } /* Search the end of paragraph */ for (eop = data + start; *eop != '\0'; eop++) { if (*eop == '\n' && *(eop + 1) == '\n') { *eop = '\0'; break; } if (*eop == '\n') *eop = ' '; } /* hint files are stored in utf-8 */ /* try convert hint file from utf-8 to terminal encoding */ conv = str_crt_conv_from ("UTF-8"); if (conv != INVALID_CONV) { GString *buffer; buffer = g_string_new (""); if (str_convert (conv, &data[start], buffer) != ESTR_FAILURE) result = g_string_free (buffer, FALSE); else g_string_free (buffer, TRUE); str_close_conv (conv); } else result = g_strdup (&data[start]); g_free (data); return result; }