| 771 | =item C<STRING* Parrot_lib_search_paths_as_string> |
| 772 | |
| 773 | Returns a STRING that contains the specified search path, separated by colons (:). |
| 774 | |
| 775 | The C<enum_runtime_ft type> is one or more of the types defined in |
| 776 | F<include/parrot/library.h>. |
| 777 | |
| 778 | =cut |
| 779 | |
| 780 | */ |
| 781 | |
| 782 | PARROT_EXPORT |
| 783 | PARROT_WARN_UNUSED_RESULT |
| 784 | PARROT_CAN_RETURN_NULL |
| 785 | STRING* |
| 786 | Parrot_lib_search_paths_as_string(PARROT_INTERP, enum_runtime_ft type) |
| 787 | { |
| 788 | ASSERT_ARGS(Parrot_lib_search_paths_as_string) |
| 789 | STRING *prefix; |
| 790 | STRING *full_search_path; |
| 791 | PMC *paths; |
| 792 | INTVAL i, n; |
| 793 | |
| 794 | /* TODO: Get the real separator, not this hacked-together stuff */ |
| 795 | #ifdef WIN32 |
| 796 | STRING * const env_search_path_sep = CONST_STRING(interp, ";"); |
| 797 | #else |
| 798 | STRING * const env_search_path_sep = CONST_STRING(interp, ":"); |
| 799 | #endif |
| 800 | |
| 801 | if (type & PARROT_RUNTIME_FT_DYNEXT) |
| 802 | paths = get_search_paths(interp, PARROT_LIB_PATH_DYNEXT); |
| 803 | else if (type & (PARROT_RUNTIME_FT_PBC | PARROT_RUNTIME_FT_SOURCE)) |
| 804 | paths = get_search_paths(interp, PARROT_LIB_PATH_LIBRARY); |
| 805 | else |
| 806 | paths = get_search_paths(interp, PARROT_LIB_PATH_INCLUDE); |
| 807 | |
| 808 | full_search_path = Parrot_str_join(interp, env_search_path_sep, paths); |
| 809 | |
| 810 | return full_search_path; |
| 811 | } |
| 812 | |
| 813 | /* |
| 814 | |