void HandleMouseLeftUpWhenCaptured (PCONINFO con, int x, int y, WPARAM wParam) { x /= GetCharWidth (); y /= GetCharHeight (); TextCopy (con, con->m_origx, con->m_origy, x, y); con->m_oldx = x; con->m_oldy = y; }
void * test_thread(void *data) { int argi; char **base; struct main_args *arg = data; if ((base = calloc(arg->argc+1, sizeof (*base))) == NULL) { (void) fprintf(stderr, "%s:%d memory\n", __FILE__, __LINE__); return (void *) EXIT_FAILURE; } /* Force a leak. */ (void) fprintf(stderr, "create test leak 1\n"); (void) TextCopy(malloc(101), 101, "leak 1 abcdefghijklmnopqrstuvwxyz"); for (argi = 0; argi < arg->argc; argi++) { base[argi] = strdup(arg->argv[argi]); // (void) pthread_yield(); if (base[argi] == NULL) { (void) fprintf(stderr, "%s:%d memory\n", __FILE__, __LINE__); return (void *) EXIT_FAILURE; } } base[argi] = NULL; for (argi = 0; argi < arg->argc; argi++) { (void) printf("%d: %s\n", argi, base[argi]); free(base[argi]); // (void) pthread_yield(); } free(base); /* Force a leak. */ (void) fprintf(stderr, "create test leak 2\n"); (void) TextCopy(malloc(102), 102, "leak 2 abcdefghijklmnopqrstuvwxyz"); return NULL; }
/* * @note * Signal safe. */ static size_t T(tostring)(track_data *track, size_t dump_len, char *buffer, size_t size) { int i; size_t n; char *buf; buf = buffer; n = TextCopy(buf, size, " ptr=0x"); buf += n; if (buf-buffer < size) size -= n; else size = 0; n = ulong_format((unsigned long)(track+1), 16, 0, 0, 0, 0, buf, size); buf += n; if (buf-buffer < size) size -= n; else size = 0; n = TextCopy(buf, size, " id="); buf += n; if (buf-buffer < size) size -= n; else size = 0; n = ulong_format(track->id, 10, 0, 0, 0, 0, buf, size); buf += n; if (buf-buffer < size) size -= n; else size = 0; n = TextCopy(buf, size, " size="); buf += n; if (buf-buffer < size) size -= n; else size = 0; n = ulong_format(track->size, 10, 0, 0, 0, 0, buf, size); buf += n; if (buf-buffer < size) size -= n; else size = 0; n = TextCopy(buf, size, " from "); buf += n; if (buf-buffer < size) size -= n; else size = 0; n = TextCopy(buf, size, track->here); buf += n; if (buf-buffer < size) size -= n; else size = 0; if (0 < size) { *buf++ = ':'; size--; } n = ulong_format(track->lineno, 10, 0, 0, 0, 0, buf, size); buf += n; if (buf-buffer < size) size -= n; else size = 0; n = TextCopy(buf, size, "\r\n"); buf += n; if (buf-buffer < size) size -= n; else size = 0; /* Round up to multiple of 16. */ dump_len = ((dump_len + 15) / 16) * 16; for (i = 0; i < dump_len; i += 16) { n = T(dump_mem)((unsigned char *)(track+1)+i, 16, buf, size); buf += n; if (buf-buffer < size) size -= n; else size = 0; } return buf - buffer; }