| Home | Libraries | People | FAQ | More

##### static_url_base::set_path_absolute

(Inherited from `url_base`)

Set if the path is absolute.

###### Synopsis

    bool
    set_path_absolute(
        bool absolute);

###### Description

This function adjusts the path to make it absolute or not, depending on the parameter.

###### Remarks

If an authority is present, the path is always absolute. In this case, the function has no effect.

###### Example

    url u( "path/to/file.txt" );
    assert( u.set_path_absolute( true ) );
    assert( u.buffer() == "/path/to/file.txt" );

###### Postconditions

    this->is_path_absolute() == true && this->encoded_path().front() == '/'

###### Return Value

true on success.

###### Complexity

Linear in `this->size()`.

###### BNF

    path          = path-abempty    ; begins with "/" or is empty
                  / path-absolute   ; begins with "/" but not "//"
                  / path-noscheme   ; begins with a non-colon segment
                  / path-rootless   ; begins with a segment
                  / path-empty      ; zero characters

    path-abempty  = *( "/" segment )
    path-absolute = "/" [ segment-nz *( "/" segment ) ]
    path-noscheme = segment-nz-nc *( "/" segment )
    path-rootless = segment-nz *( "/" segment )
    path-empty    = 0<pchar>

###### Specification

- 3.3. Path (rfc3986)

###### See Also

`encoded_segments`, `segments`, `set_encoded_path`, `set_path`.