# Module Netcgi.Argument

    module Argument: sig .. end

Operations on arguments and lists of thereof.

    exception Oversized

    val simple : string -> string -> Netcgi.cgi_argument

`simple_arg name value` creates an unstructured CGI argument called `name` with contents `value`.

    val mime : ?work_around_backslash_bug:bool ->
           ?name:string -> Netmime.mime_message -> Netcgi.cgi_argument

`mime_arg ?name msg` creates a MIME-structured CGI argument called `name` with contents `msg`. You can create `msg` by either `Netmime.memory_mime_message` or `Netmime.file_mime_message`.

`work_around_backslash_bug` : Whether to work around a bug found in almost all browsers regarding the treatment of backslashes. The browsers do not quote backslashes in file names. This breaks RFC standards, however. This argument is `true` by default.
`name` : set the name of the argument. If it is not given, the name is extracted from the "Content-Disposition" field of the `msg` header or it `""` if this field is not found.

It is easy to manipulate lists of arguments with the `List` module. For example, `List.filter (fun a -> a#name <> n) args` will remove from `args` all occurrences of the argument with name `n`. The following functions are helpers for operations specific to arguments.

    val clone : ?name:string ->
           ?value:string ->
           ?msg:Netmime.mime_message -> Netcgi.cgi_argument -> Netcgi.cgi_argument

    val set : Netcgi.cgi_argument list ->
           Netcgi.cgi_argument list -> Netcgi.cgi_argument list

`set new_args args` creates a list of argument from `args` deleting the arguments whose name appears in `new_args` and adding the `new_args` arguments.