equal
deleted
inserted
replaced
53 |
53 |
54 // overall length |
54 // overall length |
55 len = token_len + (flags & TOK_NOSPACE ? 0 : 1) + (flags & TOK_TRAILING ? 1 : 0); |
55 len = token_len + (flags & TOK_NOSPACE ? 0 : 1) + (flags & TOK_TRAILING ? 1 : 0); |
56 |
56 |
57 // check overflow |
57 // check overflow |
58 if (*offset + len > IRC_LINE_MAX) |
58 if (*offset + len + 1 > IRC_LINE_MAX) |
59 return ERR_LINE_TOO_LONG; |
59 return ERR_LINE_TOO_LONG; |
60 |
60 |
61 // check invalid tokens |
61 // check invalid tokens |
62 if (strpbrk(token, (flags & TOK_TRAILING) ? IRC_TOKEN_TRAILING_INVALID : IRC_TOKEN_INVALID)) |
62 if (strpbrk(token, (flags & TOK_TRAILING) ? IRC_TOKEN_TRAILING_INVALID : IRC_TOKEN_INVALID)) |
63 return ERR_LINE_INVALID_TOKEN; |
63 return ERR_LINE_INVALID_TOKEN; |
110 if ((err = output_token(buf, &off, line->args[i], 0))) |
110 if ((err = output_token(buf, &off, line->args[i], 0))) |
111 return err; |
111 return err; |
112 } |
112 } |
113 } |
113 } |
114 |
114 |
|
115 // terminate, output_token reserved the space for this |
|
116 buf[off] = '\0'; |
|
117 |
115 // done |
118 // done |
116 return SUCCESS; |
119 return SUCCESS; |
117 } |
120 } |
118 |
121 |