| .\" Copyright (c) 2010 Joerg Sonnenberger |
| .\" All rights reserved. |
| .\" |
| .\" Redistribution and use in source and binary forms, with or without |
| .\" modification, are permitted provided that the following conditions |
| .\" are met: |
| .\" 1. Redistributions of source code must retain the above copyright |
| .\" notice, this list of conditions and the following disclaimer. |
| .\" 2. Redistributions in binary form must reproduce the above copyright |
| .\" notice, this list of conditions and the following disclaimer in the |
| .\" documentation and/or other materials provided with the distribution. |
| .\" |
| .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND |
| .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
| .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE |
| .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
| .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
| .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
| .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
| .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
| .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
| .\" SUCH DAMAGE. |
| .\" |
| .Dd February 2, 2012 |
| .Dt ARCHIVE_ENTRY_PATHS 3 |
| .Os |
| .Sh NAME |
| .Nm archive_entry_hardlink , |
| .Nm archive_entry_hardlink_w , |
| .Nm archive_entry_set_hardlink , |
| .Nm archive_entry_copy_hardlink , |
| .Nm archive_entry_copy_hardlink_w , |
| .Nm archve_entry_update_hardlink_utf8 , |
| .Nm archive_entry_set_link , |
| .Nm archive_entry_copy_link , |
| .Nm archive_entry_copy_link_w , |
| .Nm archve_entry_update_link_utf8 , |
| .Nm archive_entry_pathname , |
| .Nm archive_entry_pathname_w , |
| .Nm archive_entry_set_pathname , |
| .Nm archive_entry_copy_pathname , |
| .Nm archive_entry_copy_pathname_w , |
| .Nm archve_entry_update_pathname_utf8 , |
| .Nm archive_entry_sourcepath , |
| .Nm archive_entry_copy_sourcepath , |
| .Nm archive_entry_symlink, |
| .Nm archive_entry_symlink_w, |
| .Nm archive_entry_set_symlink , |
| .Nm archive_entry_copy_symlink , |
| .Nm archive_entry_copy_symlink_w , |
| .Nm archve_entry_update_symlink_utf8 |
| .Nd functions for manipulating path names in archive entry descriptions |
| .Sh LIBRARY |
| Streaming Archive Library (libarchive, -larchive) |
| .Sh SYNOPSIS |
| .In archive_entry.h |
| .Ft const char * |
| .Fn archive_entry_hardlink "struct archive_entry *a" |
| .Ft const wchar_t * |
| .Fn archive_entry_hardlink_w "struct archive_entry *a" |
| .Ft void |
| .Fn archive_entry_set_hardlink "struct archive_entry *a" "const char *path" |
| .Ft void |
| .Fn archive_entry_copy_hardlink "struct archive_entry *a" "const char *path" |
| .Ft void |
| .Fn archive_entry_copy_hardlink_w "struct archive_entry *a "const wchar_t *path" |
| .Ft int |
| .Fn archive_entry_update_hardlink_utf8 "struct archive_entry *a" "const char *path" |
| .Ft void |
| .Fn archive_entry_set_link "struct archive_entry *a" "const char *path" |
| .Ft void |
| .Fn archive_entry_copy_link "struct archive_entry *a" " const char *path" |
| .Ft void |
| .Fn archive_entry_copy_link_w "struct archive_entry *a" " const wchar_t *path" |
| .Ft int |
| .Fn archive_entry_update_link_utf8 "struct archive_entry *a" " const char *path" |
| .Ft const char * |
| .Fn archive_entry_pathname "struct archive_entry *a" |
| .Ft const wchar_t * |
| .Fn archive_entry_pathname_w "struct archive_entry *a" |
| .Ft void |
| .Fn archive_entry_set_pathname "struct archive_entry *a" "const char *path" |
| .Ft void |
| .Fn archive_entry_copy_pathname "struct archive_entry *a" "const char *path" |
| .Ft void |
| .Fn archive_entry_copy_pathname_w "struct archive_entry *a" "const wchar_t *path" |
| .Ft int |
| .Fn archive_entry_update_pathname_utf8 "struct archive_entry *a" "const char *path" |
| .Ft const char * |
| .Fn archive_entry_sourcepath "struct archive_entry *a" |
| .Ft void |
| .Fn archive_entry_copy_sourcepath "struct archive_entry *a" "const char *path" |
| .Ft const char * |
| .Fn archive_entry_symlink "struct archive_entry *a" |
| .Ft const wchar_t * |
| .Fn archive_entry_symlink_w "struct archive_entry *a" |
| .Ft void |
| .Fn archive_entry_set_symlink "struct archive_entry *a" "const char *path" |
| .Ft void |
| .Fn archive_entry_copy_symlink "struct archive_entry *a" "const char *path" |
| .Ft void |
| .Fn archive_entry_copy_symlink_w "struct archive_entry *a" "const wchar_t *path" |
| .Ft int |
| .Fn archive_entry_update_symlink_utf8 "struct archive_entry *a" "const char *path" |
| .Sh DESCRIPTION |
| Path names supported by |
| .Xr archive_entry 3 : |
| .Bl -tag -width "sourcepath" -compact |
| .It hardlink |
| Destination of the hardlink. |
| .It link |
| Update only. |
| For a symlink, update the destination. |
| Otherwise, make the entry a hardlink and alter |
| the destination for that. |
| .It pathname |
| Path in the archive |
| .It sourcepath |
| Path on the disk for use by |
| .Xr archive_read_disk 3 . |
| .It symlink |
| Destination of the symbolic link. |
| .El |
| .Pp |
| Path names can be provided in one of three different ways: |
| .Bl -tag -width "wchar_t *" |
| .It char * |
| Multibyte strings in the current locale. |
| .It wchar_t * |
| Wide character strings in the current locale. |
| The accessor functions are named |
| .Fn XXX_w . |
| .It UTF-8 |
| Unicode strings encoded as UTF-8. |
| This are convience functions to update both the multibyte and wide |
| character strings at the same time. |
| .El |
| .Pp |
| The sourcepath is a pure filesystem concept and never stored in an |
| archive directly. |
| .Pp |
| For that reason, it is only available as multibyte string. |
| The link path is a convience function for conditionally setting |
| hardlink or symlink destination. |
| It doesn't have a corresponding get accessor function. |
| .Pp |
| .Fn archive_entry_set_XXX |
| is an alias for |
| .Fn archive_entry_copy_XXX . |
| .Sh SEE ALSO |
| .Xr archive_entry 3 |
| .Xr libarchive 3 , |