| 1420 | } |
| 1421 | |
| 1422 | int trap_put_string(TrapContext *ctx, const void *haddrp, uaecptr addr, int maxlen) |
| 1423 | { |
| 1424 | int len = 0; |
| 1425 | const uae_u8 *haddr = (const uae_u8*)haddrp; |
| 1426 | if (maxlen < 0) { |
| 1427 | while (haddr[len]) |
| 1428 | len++; |
| 1429 | trap_put_bytes(ctx, haddr, addr, len + 1); |
| 1430 | return len; |
| 1431 | } |
| 1432 | |
| 1433 | if (maxlen == 0) |
| 1434 | return 0; |
| 1435 | |
| 1436 | while (len < maxlen - 1 && haddr[len]) |
| 1437 | len++; |
| 1438 | |
| 1439 | if (!haddr[len]) { |
| 1440 | trap_put_bytes(ctx, haddr, addr, len + 1); |
| 1441 | return len; |
| 1442 | } |
| 1443 | |
| 1444 | trap_put_bytes(ctx, haddr, addr, maxlen - 1); |
| 1445 | trap_put_byte(ctx, addr + maxlen - 1, 0); |
| 1446 | return maxlen; |
| 1447 | } |
| 1448 | int trap_get_string(TrapContext *ctx, void *haddrp, uaecptr addr, int maxlen) |
| 1449 | { |
| 1450 | int len = 0; |
no test coverage detected