void prev_qso(void) { extern int qsonum; extern char last_rst[]; int i; char *str; str = g_strdup_printf("%3s %d ", last_rst, qsonum-1); for (i=0; i < strlen(str); i++) { str[i] = short_number(str[i]); } sendmessage(str); g_free(str); }
void ExpandMacro(void) { extern char call[20]; extern char hiscall[20]; extern char hiscall_sent[]; extern char his_rst[]; extern char qsonrstr[5]; extern char comment[]; extern char lastqsonr[]; extern int early_started; extern int noleadingzeros; extern int lan_active; extern int exchange_serial; int i; static char comstr[BUFSIZE] = ""; static char qsonroutput[5] = ""; static char rst_out[4] = ""; strcpy(comstr, call); comstr[strlen(call) - 1] = '\0'; // skip trailing \n replace_all(buffer, BUFSIZE, "%", comstr); /* mycall */ if (NULL != strstr(buffer, "@")) { char *p = hiscall + strlen(hiscall_sent); if (strlen(hiscall_sent) != 0) { hiscall_sent[0] = '\0'; early_started = 0; // sending_call = 0; } replace_1(buffer, BUFSIZE, "@", p); /* his call, 1st occurence */ replace_all(buffer, BUFSIZE, "@", hiscall); /* his call, further occurrences */ } strncpy(rst_out, his_rst, 4); rst_out[1] = short_number(rst_out[1]); rst_out[2] = short_number(rst_out[2]); rst_out[3] = '\0'; replace_all(buffer, BUFSIZE, "[", rst_out); /* his RST */ if (NULL != strstr(buffer, "#")) { int leading_zeros = 0; int lead = 1; for (i = 0; i <= 4; i++) { if (lead && qsonrstr[i] == '0') { ++leading_zeros; } else { lead = 0; } qsonroutput[i] = short_number(qsonrstr[i]); } qsonroutput[4] = '\0'; if (noleadingzeros != 1 && leading_zeros > 1) { leading_zeros = 1; } replace_all(buffer, BUFSIZE, "#", qsonroutput + leading_zeros); /* serial nr */ if ((lan_active == 1) && (exchange_serial == 1)) { strncpy(lastqsonr, qsonrstr, 5); send_lan_message(INCQSONUM, qsonrstr); } } replace_all(buffer, BUFSIZE, "!", comment); }