LINUX.ORG.RU

История изменений

Исправление jpegqs, (текущая версия) :

Короче:

	const char *fmt;
	int mode = phonebookEntry->telNo ? 2 : 0;
	int index = phonebookEntry->index >= 0 ? mode |= 1, phonebookEntry->index : ',';

	static const char * const table[] = {
		NULL, // ничего
		"AT+CPBW=%i\r", // только индекс
		"AT+CPBW=%c\"%s\"\r", // только телефон
		"AT+CPBW=%i,\"%s\"\r", // индекс и телефон
		NULL, // только имя
		NULL, // индекс и имя
		"AT+CPBW=%c\"%s\",%i,\"%s\"\r", // телефон и имя
		"AT+CPBW=%i,\"%s\",%i,\"%s\"\r", // индекс, телефон и имя
	};

	if( !(fmt = table[mode]) ) return -1;

	if( phonebookEntry->name ) {
		type = phonebookEntry->telNo[0] == '+' ? 145 : 129;

		res = packUtf82Ucs2( phonebookEntry->name, gsmService->codecBuffer, CODEC_BUFFER_SIZE );
		if( res < 0 ) return -1;

		mode |= 4;
	}

	res = snprintf(
			gsmService->atCmdBuffer, AT_CMD_BUFFER_SIZE,
			fmt, index, phonebookEntry->telNo,
			type, gsmService->codecBuffer);

	if( res < 0 ) return -1;

Исправление jpegqs, :

Короче:

	const char *fmt;
	int mode = phonebookEntry->telNo ? 2 : 0;
	int index = phonebookEntry->index >= 0 ? mode |= 1, phonebookEntry->index : ',';

	static const char * const table[] = {
		NULL, // ничего
		"AT+CPBW=%i\r", // только индекс
		"AT+CPBW=%c\"%s\"\r", // только телефон
		"AT+CPBW=%i,\"%s\"\r", // индекс и телефон
		NULL, // только имя
		NULL, // индекс и имя
		"AT+CPBW=%c\"%s\",%i,\"%s\"\r", // телефон и имя
		"AT+CPBW=%i,\"%s\",%i,\"%s\"\r", // индекс, телефон и имя
	};

	if( !(fmt = table[mode]) ) return -1;

	if( phonebookEntry->name ) {
		type = phonebookEntry->telNo[0] == '+' ? 145 : 129;

		res = packUtf82Ucs2( phonebookEntry->name, gsmService->codecBuffer, CODEC_BUFFER_SIZE );
		if( res < 0 ) return -1;

		mode |= 4;
	}

	res = snprintf(
			gsmService->atCmdBuffer, AT_CMD_BUFFER_SIZE,
			fmt, index, phonebookEntry->telNo,
			type, gsmService->codecBuffer);

	if( res < 0 ) return -1;
```c

Исправление jpegqs, :

const char *fmt;
int mode = phonebookEntry->telNo ? 2 : 0;
int index = phonebookEntry->index >= 0 ? mode |= 1, phonebookEntry->index : ',';

static const char * const table[] = {
	NULL, // ничего
	"AT+CPBW=%i\r", // только индекс
	"AT+CPBW=%c\"%s\"\r", // только телефон
	"AT+CPBW=%i,\"%s\"\r", // индекс и телефон
	NULL, // только имя
	NULL, // индекс и имя
	"AT+CPBW=%c\"%s\",%i,\"%s\"\r", // телефон и имя
	"AT+CPBW=%i,\"%s\",%i,\"%s\"\r", // индекс, телефон и имя
};

if( !(fmt = table[mode]) ) return -1;

if( phonebookEntry->name ) {
	type = phonebookEntry->telNo[0] == '+' ? 145 : 129;

	res = packUtf82Ucs2( phonebookEntry->name, gsmService->codecBuffer, CODEC_BUFFER_SIZE );
	if( res < 0 ) return -1;

	mode |= 4;
}

res = snprintf(
		gsmService->atCmdBuffer, AT_CMD_BUFFER_SIZE,
		fmt, index, phonebookEntry->telNo,
		type, gsmService->codecBuffer);

if( res < 0 ) return -1;

Исправление jpegqs, :

Короче:

	const char *fmt;
	int mode = phonebookEntry->telNo ? 2 : 0;
	int index = phonebookEntry->index >= 0 ? mode |= 1, phonebookEntry->index : ',';

	static const char * const table[] = {
		NULL, // ничего
		"AT+CPBW=%i\r", // только индекс
		"AT+CPBW=%c\"%s\"\r", // только телефон
		"AT+CPBW=%i,\"%s\"\r", // индекс и телефон
		NULL, // только имя
		NULL, // индекс и имя
		"AT+CPBW=%c\"%s\",%i,\"%s\"\r", // телефон и имя
		"AT+CPBW=%i,\"%s\",%i,\"%s\"\r", // индекс, телефон и имя
	};


	if( phonebookEntry->name ) {
		type = phonebookEntry->telNo[0] == '+' ? 145 : 129;

		res = packUtf82Ucs2( phonebookEntry->name, gsmService->codecBuffer, CODEC_BUFFER_SIZE );
		if( res < 0 ) return -1;

		mode |= 4;
	}

	res = snprintf( gsmService->atCmdBuffer, AT_CMD_BUFFER_SIZE,
			fmt, index, phonebookEntry->telNo,
			type, gsmService->codecBuffer );

	if( res < 0 ) return -1;

Исходная версия jpegqs, :

Короче:

	const char *fmt;
	int mode = phonebookEntry->telNo ? 2 : 0;
	int index = phonebookEntry->index >= 0 ? mode |= 1, phonebookEntry->index : ',';

	static const char * const table[] = {
		NULL, // ничего
		"AT+CPBW=%i\r", // только индекс
		"AT+CPBW=%c\"%s\"\r", // только телефон
		"AT+CPBW=%i,\"%s\"\r", // индекс и телефон
		NULL, // только имя
		NULL, // индекс и имя
		"AT+CPBW=%c\"%s\",%i,\"%s\"\r", // телефон и имя
		"AT+CPBW=%i,\"%s\",%i,\"%s\"\r", // индекс, телефон и имя
	};

	if( phonebookEntry->name ) {
		type = phonebookEntry->telNo[0] == '+' ? 145 : 129;

		res = packUtf82Ucs2( phonebookEntry->name, gsmService->codecBuffer, CODEC_BUFFER_SIZE );
		if( res < 0 ) return -1;

		mode |= 4;
	}

	if( !(fmt = table[mode]) ) return -1;

	res = snprintf( gsmService->atCmdBuffer, AT_CMD_BUFFER_SIZE,
			fmt, index, phonebookEntry->telNo,
			type, gsmService->codecBuffer );

	if( res < 0 ) return -1;