| 246 | of the given width */ |
| 247 | |
| 248 | int |
| 249 | curses_num_lines(const char *str, int width) |
| 250 | { |
| 251 | int last_space, count; |
| 252 | int curline = 1; |
| 253 | char substr[BUFSZ]; |
| 254 | char tmpstr[BUFSZ]; |
| 255 | |
| 256 | strncpy(substr, str, BUFSZ-1); |
| 257 | substr[BUFSZ-1] = '\0'; |
| 258 | |
| 259 | while (strlen(substr) > (size_t) width) { |
| 260 | last_space = 0; |
| 261 | |
| 262 | for (count = 0; count <= width; count++) { |
| 263 | if (substr[count] == ' ') |
| 264 | last_space = count; |
| 265 | |
| 266 | } |
| 267 | if (last_space == 0) { /* No spaces found */ |
| 268 | last_space = count - 1; |
| 269 | } |
| 270 | for (count = (last_space + 1); count < (int) strlen(substr); count++) { |
| 271 | tmpstr[count - (last_space + 1)] = substr[count]; |
| 272 | } |
| 273 | tmpstr[count - (last_space + 1)] = '\0'; |
| 274 | strcpy(substr, tmpstr); |
| 275 | curline++; |
| 276 | } |
| 277 | |
| 278 | return curline; |
| 279 | } |
| 280 | |
| 281 | |
| 282 | /* Break string into smaller lines to fit into a dialog window of the |
no outgoing calls
no test coverage detected