#ifndef _PARSEURL_H_
#define _PARSEURL_H_

#include "common/extern.h"
#include "common/asyncio.h"
#include <exec/types.h>

#define CR '\x0d'
#define LF '\x0a'
#define CRLF "\x0d\x0a"

#define UNSAFE     " <>\"#%{}|\\^~[]`"
#define DOS_UNSAFE "`~\"=#?/:;\\*%()[]<>'"
#define RESERVED1  ";/?:@=&"
#define RESERVED2  "$-_.+!*'(),"

#define FILEBUF     1024*8

struct parseurl
{
  STRPTR pu_scheme;
  STRPTR pu_netloc;
  STRPTR pu_path;
  STRPTR pu_query;
  STRPTR pu_fragment;
  STRPTR pu_name;
  STRPTR pu_passwd;
  int pu_port;
};

void decode_html_string (unsigned char *s);
char *encode_url (unsigned char *url, unsigned char mask);

void free_parseurl (struct parseurl *pu);
struct parseurl *parse_url (char *url);
void parse_path (char *path);
char *parse_relurl2absurl (struct parseurl *abs_url, struct parseurl *rel_url);


/* DOS Functions */

char *UrlpToDos (unsigned char *url);
BPTR cd (STRPTR dirname);
char *parseurl2file (struct parseurl *pu, struct proj_prefs *pp);


#endif /* _PARSEURL_H_ */
