## camel-url-scanner camel-url-scanner |

## Synopsis

                        urlmatch_t;
    gboolean            (*CamelUrlScanFunc)                 (const gchar *in,
                                                             const gchar *pos,
                                                             const gchar *inend,
                                                             urlmatch_t *match);
    gboolean            camel_url_file_start                (const gchar *in,
                                                             const gchar *pos,
                                                             const gchar *inend,
                                                             urlmatch_t *match);
    gboolean            camel_url_file_end                  (const gchar *in,
                                                             const gchar *pos,
                                                             const gchar *inend,
                                                             urlmatch_t *match);
    gboolean            camel_url_web_start                 (const gchar *in,
                                                             const gchar *pos,
                                                             const gchar *inend,
                                                             urlmatch_t *match);
    gboolean            camel_url_web_end                   (const gchar *in,
                                                             const gchar *pos,
                                                             const gchar *inend,
                                                             urlmatch_t *match);
    gboolean            camel_url_addrspec_start            (const gchar *in,
                                                             const gchar *pos,
                                                             const gchar *inend,
                                                             urlmatch_t *match);
    gboolean            camel_url_addrspec_end              (const gchar *in,
                                                             const gchar *pos,
                                                             const gchar *inend,
                                                             urlmatch_t *match);
                        urlpattern_t;
                        CamelUrlScanner;
    CamelUrlScanner *   camel_url_scanner_new               (void);
    void                camel_url_scanner_free              (CamelUrlScanner *scanner);
    void                camel_url_scanner_add               (CamelUrlScanner *scanner,
                                                             urlpattern_t *pattern);
    gboolean            camel_url_scanner_scan              (CamelUrlScanner *scanner,
                                                             const gchar *in,
                                                             gsize inlen,
                                                             urlmatch_t *match);

## Description

## Details

### urlmatch_t

    typedef struct {
    	const gchar *pattern;
    	const gchar *prefix;
    	goffset um_so;
    	goffset um_eo;
    } urlmatch_t;

### CamelUrlScanFunc ()

    gboolean            (*CamelUrlScanFunc)                 (const gchar *in,
                                                             const gchar *pos,
                                                             const gchar *inend,
                                                             urlmatch_t *match);

### camel_url_file_start ()

    gboolean            camel_url_file_start                (const gchar *in,
                                                             const gchar *pos,
                                                             const gchar *inend,
                                                             urlmatch_t *match);

### camel_url_file_end ()

    gboolean            camel_url_file_end                  (const gchar *in,
                                                             const gchar *pos,
                                                             const gchar *inend,
                                                             urlmatch_t *match);

### camel_url_web_start ()

    gboolean            camel_url_web_start                 (const gchar *in,
                                                             const gchar *pos,
                                                             const gchar *inend,
                                                             urlmatch_t *match);

### camel_url_web_end ()

    gboolean            camel_url_web_end                   (const gchar *in,
                                                             const gchar *pos,
                                                             const gchar *inend,
                                                             urlmatch_t *match);

### camel_url_addrspec_start ()

    gboolean            camel_url_addrspec_start            (const gchar *in,
                                                             const gchar *pos,
                                                             const gchar *inend,
                                                             urlmatch_t *match);

### camel_url_addrspec_end ()

    gboolean            camel_url_addrspec_end              (const gchar *in,
                                                             const gchar *pos,
                                                             const gchar *inend,
                                                             urlmatch_t *match);

### urlpattern_t

    typedef struct {
    	const gchar *pattern;
    	const gchar *prefix;
    	CamelUrlScanFunc start;
    	CamelUrlScanFunc end;
    } urlpattern_t;

### CamelUrlScanner

    typedef struct _CamelUrlScanner CamelUrlScanner;

### camel_url_scanner_new ()

    CamelUrlScanner *   camel_url_scanner_new               (void);

### camel_url_scanner_free ()

    void                camel_url_scanner_free              (CamelUrlScanner *scanner);

### camel_url_scanner_add ()

    void                camel_url_scanner_add               (CamelUrlScanner *scanner,
                                                             urlpattern_t *pattern);

### camel_url_scanner_scan ()

    gboolean            camel_url_scanner_scan              (CamelUrlScanner *scanner,
                                                             const gchar *in,
                                                             gsize inlen,
                                                             urlmatch_t *match);