summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2012-03-23 08:28:37 -0500
committerDenis Kenzior <denkenz@gmail.com>2012-03-23 08:28:37 -0500
commit31e1b2e6ce0c5c3d0152661e37150490700c34f8 (patch)
tree5c12123fb4ff13f6aff7cdf5559bd41df4a624f3
parent95e79829380788d03f1d39d8c21efbc56c2aafaf (diff)
downloadofono-31e1b2e6ce0c5c3d0152661e37150490700c34f8.tar.bz2
sim: Don't use sprintf unnecessarily
Using sprintf for a single quote is quite wasteful
-rw-r--r--drivers/atmodem/sim.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/atmodem/sim.c b/drivers/atmodem/sim.c
index 5513932d..c51b1d49 100644
--- a/drivers/atmodem/sim.c
+++ b/drivers/atmodem/sim.c
@@ -305,7 +305,7 @@ static void at_sim_update_file(struct ofono_sim *sim, int cmd, int fileid,
struct sim_data *sd = ofono_sim_get_data(sim);
struct cb_data *cbd = cb_data_new(cb, data);
char *buf;
- char *quote = "";
+ gboolean quote = FALSE;
int len, ret;
int size = 36 + p3 * 2;
@@ -317,7 +317,7 @@ static void at_sim_update_file(struct ofono_sim *sim, int cmd, int fileid,
case OFONO_VENDOR_ZTE:
case OFONO_VENDOR_HUAWEI:
case OFONO_VENDOR_SPEEDUP:
- quote = "\"";
+ quote = TRUE;
size += 2;
break;
}
@@ -326,13 +326,16 @@ static void at_sim_update_file(struct ofono_sim *sim, int cmd, int fileid,
if (buf == NULL)
goto error;
- len = sprintf(buf, "AT+CRSM=%i,%i,%i,%i,%i,%s", cmd, fileid,
- p1, p2, p3, quote);
+ len = sprintf(buf, "AT+CRSM=%i,%i,%i,%i,%i,", cmd, fileid,p1, p2, p3);
+
+ if (quote)
+ buf[len++] = '\"';
for (; p3; p3--)
len += sprintf(buf + len, "%02hhX", *value++);
- sprintf(buf + len, "%s", quote);
+ if (quote)
+ buf[len++] = '\"';
ret = g_at_chat_send(sd->chat, buf, crsm_prefix,
at_crsm_update_cb, cbd, g_free);