util_os2.c revision 7435fdc14c086d03d8f75bb3c38e4725c719532d
#define INCL_DOS
#define INCL_DOSERRORS
#include <os2.h>
#include "ap_config.h"
#include "httpd.h"
#include "http_log.h"
#include "os.h"
#include <ctype.h>
#include <string.h>
{
char buf[HUGE_STRING_LEN];
char buf2[HUGE_STRING_LEN];
char *pos;
/* Remove trailing slash unless it's a root directory */
if (rc) {
if ( rc != ERROR_INVALID_NAME ) {
ap_log_error(APLOG_MARK, APLOG_ERR|APLOG_NOERRNO, 0, NULL, "OS/2 error %d for file %s", rc, szFile);
} else {
}
}
/* Switch backslashes to forward */
if (*pos == '\\')
*pos = '/';
}
{
ULONG rc = DosFindFirst( (UCHAR *)path, &hDir, FILE_NORMAL|FILE_DIRECTORY, &fb3, sizeof(fb3), &numNames, FIL_STANDARD );
if (rc == 0)
}
{
startslash = 5;
if (*pos == '/') {
slashnum++;
if (slashnum >= startslash) {
*pos = 0;
*pos = '/';
}
}
}
if (slashnum >= startslash) {
}
return szCanonicalFile;
}
{
return szCanonicalFile;
}
{
/* SIGTERM's don't work too well in OS/2 (only affects other EMX programs).
CGIs may not be, esp. REXX scripts, so use a native call instead */
int rc;
if ( rc ) {
rc = -1;
}
} else {
}
return rc;
}
char *ap_os_error_message(int err)
{
static char result[200];
unsigned char message[HUGE_STRING_LEN];
char *pos;
int c;
len--;
for (c=0; c<len; c++) {
c++;
}
*pos = 0;
} else {
}
return result;
}
static int (*os2_select)( int *, int, int, int, long ) = NULL;
int ap_select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout)
{
long ms_timeout = -1;
if (os2_select == NULL) {
DosEnterCritSec(); /* Stop two threads doing this at the same time */
if (os2_select == NULL) {
if (hSO32DLL) {
}
}
}
if (readfds) {
for (s=0; s<nfds; s++)
}
if (writefds) {
for (s=0; s<nfds; s++)
}
if (exceptfds) {
for (s=0; s<nfds; s++)
}
if (timeout)
if (rc > 0) {
fd_count = 0;
if (readfds) {
for (s=0; s<nfds; s++) {
}
}
}
if (writefds) {
for (s=0; s<nfds; s++) {
}
}
}
if (exceptfds) {
for (s=0; s<nfds; s++) {
}
}
}
}
return rc;
}