diff options
author | Denis Kenzior <denkenz@gmail.com> | 2012-03-23 08:28:37 -0500 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2012-03-23 08:28:37 -0500 |
commit | 31e1b2e6ce0c5c3d0152661e37150490700c34f8 (patch) | |
tree | 5c12123fb4ff13f6aff7cdf5559bd41df4a624f3 | |
parent | 95e79829380788d03f1d39d8c21efbc56c2aafaf (diff) | |
download | ofono-31e1b2e6ce0c5c3d0152661e37150490700c34f8.tar.bz2 |
sim: Don't use sprintf unnecessarily
Using sprintf for a single quote is quite wasteful
-rw-r--r-- | drivers/atmodem/sim.c | 13 |
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); |