| | 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 | |