bool CodeEditor::GetStringRange(int cursor, int& b, int &e) const { int cl = GetLine(cursor); cursor -= GetPos(cl); bool is_begin, is_end; //@@@@@@ Vector<Point> list = GetLineString(GetWLine(cl), is_begin, is_end); int i = list.GetCount(); while(--i >= 0 && (list[i].x > cursor || list[i].y < cursor)) ; if(i < 0) return false; int bl = cl, bp = list[i].x; int el = cl, ep = list[i].y; while(is_begin && bl > 0) { list = GetLineString(GetWLine(bl - 1), is_begin, is_end); if(list.IsEmpty() || !is_end) break; bl--; bp = list.Top().x; } while(el + 1 < GetLineCount() && ep >= GetLineLength(el)) { list = GetLineString(GetWLine(el + 1), is_begin, is_end); if(list.IsEmpty() || !is_begin) break; el++; ep = list[0].y; } b = GetPos(bl, bp); e = GetPos(el, ep); return b < e; }
void CUITextBox::StringEllipsis( int nCnt ) { if (nCnt <= 0 || m_vecBoxString.size() <= nCnt) { m_bEllipsis = false; return; } CTString strTemp; strTemp = GetLineString(nCnt - 1) + GetLineString(nCnt); strTemp = UtilHelp::getSingleton()->GetCalcStringEllipsis(strTemp, GetWidth(), CTString("..")); m_Str = CTString(""); for (int i = 0; i < nCnt - 1; ++i) { m_Str += GetLineString(i); } m_Str += strTemp; _StringSplit(); _UpdateBoxSize(); m_bEllipsis = true; }
GSM_Error ATOBEX_ReplyGetFileSystemStatus(GSM_Protocol_Message *msg, GSM_StateMachine *s) { GSM_Error error; switch (s->Phone.Data.Priv.ATGEN.ReplyState) { case AT_Reply_OK: error = ATGEN_ParseReply(s, GetLineString(msg->Buffer, &s->Phone.Data.Priv.ATGEN.Lines, 2), "*EMEM: @i, @i, @i, @i, @i", &s->Phone.Data.FileSystemStatus->Free, &s->Phone.Data.FileSystemStatus->Used, &s->Phone.Data.FileSystemStatus->UsedImages, &s->Phone.Data.FileSystemStatus->UsedSounds, &s->Phone.Data.FileSystemStatus->UsedThemes ); if (error == ERR_NONE) { /* This is actually total */ s->Phone.Data.FileSystemStatus->Used -= s->Phone.Data.FileSystemStatus->Free; return ERR_NONE; } return error; default: return ERR_NOTSUPPORTED; } }
bool CodeEditor::FindString(bool back) { int l, h; if(!GetSelection(l, h)) h = GetCursor(); else h = (back ? l : h); h -= GetPos(l = GetLine(h)); while(l >= 0 && l < GetLineCount()) { bool is_begin, is_end; Vector<Point> list = GetLineString(GetWLine(l), is_begin, is_end); if(back) { int i = list.GetCount(); while(--i >= 0 && list[i].x >= h) ; if(i >= 0) { h = list[i].x; break; } h = 1000000; --l; } else { int i = 0; while(i < list.GetCount() && list[i].y <= h) i++; if(i < list.GetCount()) { h = list[i].x; break; } h = 0; ++l; } } int b, e; if(l < 0 || l >= GetLineCount() || !GetStringRange(GetPos(l, h), b, e)) return false; SetSelection(b, e); return true; }
int main(int argc, char **argv) { GSM_Debug_Info *debug_info; GSM_Phone_ATGENData *Priv; GSM_Phone_Data *Data; unsigned char buffer[BUFFER_SIZE]; FILE *f; size_t len; GSM_StateMachine *s; GSM_Protocol_Message msg; GSM_Error error; GSM_NetworkInfo NetworkInfo; /* Check parameters */ if (argc != 2) { printf("Not enough parameters!\nUsage: at-creg-reply comm.dump\n"); return 1; } /* Open file */ f = fopen(argv[1], "r"); if (f == NULL) { printf("Could not open %s\n", argv[1]); return 1; } /* Read data */ len = fread(buffer, 1, sizeof(buffer) - 1, f); if (!feof(f)) { printf("Could not read whole file %s\n", argv[1]); fclose(f); return 1; } /* Zero terminate data */ buffer[len] = 0; /* Close file */ fclose(f); /* Configure state machine */ debug_info = GSM_GetGlobalDebug(); GSM_SetDebugFileDescriptor(stderr, FALSE, debug_info); GSM_SetDebugLevel("textall", debug_info); /* Allocates state machine */ s = GSM_AllocStateMachine(); test_result(s != NULL); debug_info = GSM_GetDebug(s); GSM_SetDebugGlobal(TRUE, debug_info); /* Initialize AT engine */ Data = &s->Phone.Data; Data->ModelInfo = GetModelData(NULL, NULL, "unknown", NULL); Data->NetworkInfo = &NetworkInfo; Data->RequestID = ID_GetNetworkInfo; Priv = &s->Phone.Data.Priv.ATGEN; Priv->ReplyState = AT_Reply_OK; Priv->SMSMode = SMS_AT_PDU; Priv->Charset = AT_CHARSET_UCS2; /* Init message */ msg.Type = 0; msg.Length = len; msg.Buffer = buffer; SplitLines(msg.Buffer, msg.Length, &Priv->Lines, "\x0D\x0A", 2, "\"", 1, TRUE); /* Parse it */ error = ATGEN_ReplyGetNetworkLAC_CID(msg, s); /* This is normally done by ATGEN_Terminate */ FreeLines(&Priv->Lines); GetLineString(NULL, NULL, 0); /* Free state machine */ GSM_FreeStateMachine(s); gammu_test_result(error, "ATGEN_ReplyGetCNMIMode"); printf("Network: %d\nLAC: %s\nCID: %s\n", NetworkInfo.State, NetworkInfo.LAC, NetworkInfo.CID); return 0; }
int main(int argc, char **argv) { GSM_Debug_Info *debug_info; GSM_Phone_ATGENData *Priv; GSM_Phone_Data *Data; unsigned char buffer[BUFFER_SIZE]; FILE *f; size_t len; GSM_StateMachine *s; GSM_Protocol_Message msg; GSM_Error error; GSM_MultiSMSMessage sms; GSM_SMSDConfig *smsd; #if 0 GSM_SMS_Backup bkp; #endif /* Check parameters */ if (argc != 2 && argc != 3) { printf("Not enough parameters!\nUsage: sms-at-parse comm.dump [PDU|TXT|TXTDETAIL]\n"); return 1; } /* Open file */ f = fopen(argv[1], "r"); if (f == NULL) { printf("Could not open %s\n", argv[1]); return 1; } /* Read data */ len = fread(buffer, 1, sizeof(buffer) - 1, f); if (!feof(f)) { printf("Could not read whole file %s\n", argv[1]); fclose(f); return 1; } smsd = SMSD_NewConfig("test"); /* Zero terminate data */ buffer[len] = 0; /* Close file */ fclose(f); /* Configure state machine */ debug_info = GSM_GetGlobalDebug(); GSM_SetDebugFileDescriptor(stderr, FALSE, debug_info); GSM_SetDebugLevel("textall", debug_info); /* Allocates state machine */ s = GSM_AllocStateMachine(); test_result(s != NULL); debug_info = GSM_GetDebug(s); GSM_SetDebugGlobal(TRUE, debug_info); /* Initialize AT engine */ Data = &s->Phone.Data; Data->ModelInfo = GetModelData(NULL, NULL, "unknown", NULL); Priv = &s->Phone.Data.Priv.ATGEN; Priv->ReplyState = AT_Reply_OK; Priv->Charset = AT_CHARSET_GSM; if (argc == 3 && strcmp(argv[2], "TXT") == 0) { Priv->SMSMode = SMS_AT_TXT; Priv->SMSTextDetails = FALSE; } else if (argc == 3 && strcmp(argv[2], "TXTDETAIL") == 0) { Priv->SMSMode = SMS_AT_TXT; Priv->SMSTextDetails = TRUE; } else { Priv->SMSMode = SMS_AT_PDU; } /* Init message */ msg.Type = 0; msg.Length = len; msg.Buffer = buffer; SplitLines(msg.Buffer, msg.Length, &Priv->Lines, "\x0D\x0A", 2, "\"", 1, TRUE); /* Pointer to store message */ s->Phone.Data.GetSMSMessage = &sms; /* Parse it */ error = ATGEN_ReplyGetSMSMessage(&msg, s); sms.SMS[0].Memory = MEM_SM; #if 0 bkp.SMS[0] = &sms.SMS[0]; bkp.SMS[1] = NULL; GSM_AddSMSBackupFile("/tmp/back", &bkp); #endif /* Display message */ if (error == ERR_NONE) { DisplayMultiSMSInfo(&sms, FALSE, TRUE, NULL, NULL); DisplayMultiSMSInfo(&sms, TRUE, TRUE, NULL, NULL); printf("Parts: %d, count: %d, ID16: %d, ID8: %d\n", sms.SMS[0].UDH.AllParts, sms.Number, sms.SMS[0].UDH.ID16bit, sms.SMS[0].UDH.ID8bit); SMSD_RunOnReceiveEnvironment(&sms, smsd, "1"); } /* This is normally done by ATGEN_Terminate */ FreeLines(&Priv->Lines); GetLineString(NULL, NULL, 0); /* Free state machine */ GSM_FreeStateMachine(s); gammu_test_result(error, "ATGEN_ReplyGetSMSMessage"); return 0; }
/////////////////////////////////////////////////////////////////////////// // Gets the geometry at the specified position // MgGeometry* MgMultiLineString::GetGeometryAt(INT32 index) { return GetLineString(index); }
int main(int argc, char **argv) { GSM_Debug_Info *debug_info; GSM_Phone_ATGENData *Priv; GSM_Phone_Data *Data; unsigned char buffer[BUFFER_SIZE]; FILE *f; size_t len; GSM_StateMachine *s; GSM_Protocol_Message msg; GSM_Error error; GSM_SMSC SMSC; /* Check parameters */ if (argc != 2) { printf("Not enough parameters!\nUsage: get-smsc-at comm.dump\n"); return 1; } /* Open file */ f = fopen(argv[1], "r"); test_result(f != NULL); /* Read data */ len = fread(buffer, 1, sizeof(buffer) - 1, f); test_result(feof(f)); /* Zero terminate data */ buffer[len] = 0; /* Close file */ fclose(f); /* Configure state machine */ debug_info = GSM_GetGlobalDebug(); GSM_SetDebugFileDescriptor(stderr, FALSE, debug_info); GSM_SetDebugLevel("textall", debug_info); /* Allocates state machine */ s = GSM_AllocStateMachine(); test_result(s != NULL); debug_info = GSM_GetDebug(s); GSM_SetDebugGlobal(TRUE, debug_info); GSM_SetDebugFileDescriptor(stderr, FALSE, debug_info); GSM_SetDebugLevel("textall", debug_info); /* Initialize AT engine */ Data = &s->Phone.Data; Data->ModelInfo = GetModelData(NULL, NULL, "unknown", NULL); Priv = &s->Phone.Data.Priv.ATGEN; Priv->ReplyState = AT_Reply_OK; Priv->SMSMode = SMS_AT_PDU; Priv->Charset = AT_CHARSET_UCS2; /* Init message */ msg.Type = 0; msg.Length = len; msg.Buffer = buffer; SplitLines(msg.Buffer, msg.Length, &Priv->Lines, "\x0D\x0A", 2, "\"", 1, TRUE); /* Pointer to store message */ s->Phone.Data.SMSC = &SMSC; /* Parse it */ error = ATGEN_ReplyGetSMSC(msg, s); /* This is normally done by ATGEN_Terminate */ FreeLines(&Priv->Lines); GetLineString(NULL, NULL, 0); /* Free state machine */ GSM_FreeStateMachine(s); printf("%s\n", GSM_ErrorString(error)); return (error == ERR_NONE) ? 0 : 1; }