Lines Matching refs:ctx
50 WIN32_FIND_DATA ctx;
55 const char *LP_find_file(LP_DIR_CTX **ctx, const char *directory)
57 if (ctx == NULL || directory == NULL)
64 if (*ctx == NULL)
66 *ctx = (LP_DIR_CTX *)malloc(sizeof(LP_DIR_CTX));
67 if (*ctx == NULL)
72 memset(*ctx, '\0', sizeof(LP_DIR_CTX));
83 free(*ctx);
84 *ctx = NULL;
95 (*ctx)->handle = FindFirstFile(wdir, &(*ctx)->ctx);
100 (*ctx)->handle = FindFirstFile((TCHAR *)directory, &(*ctx)->ctx);
102 if ((*ctx)->handle == INVALID_HANDLE_VALUE)
104 free(*ctx);
105 *ctx = NULL;
112 if (FindNextFile((*ctx)->handle, &(*ctx)->ctx) == FALSE)
120 TCHAR *wdir = (*ctx)->ctx.cFileName;
123 while (wdir[len_0] && len_0 < (sizeof((*ctx)->entry_name) - 1)) len_0++;
127 if (!WideCharToMultiByte(CP_ACP, 0, (WCHAR *)wdir, len_0, (*ctx)->entry_name,
128 sizeof((*ctx)->entry_name), NULL, 0))
131 (*ctx)->entry_name[index] = (char)wdir[index];
134 strncpy((*ctx)->entry_name, (const char *)(*ctx)->ctx.cFileName,
135 sizeof((*ctx)->entry_name)-1);
137 (*ctx)->entry_name[sizeof((*ctx)->entry_name)-1] = '\0';
139 return (*ctx)->entry_name;
142 int LP_find_file_end(LP_DIR_CTX **ctx)
144 if (ctx != NULL && *ctx != NULL)
146 FindClose((*ctx)->handle);
147 free(*ctx);
148 *ctx = NULL;