13
0
Commit Graph

777 Commits

Author SHA1 Message Date
3d0e36f579 Add unit tests for PBD::clear_directory and PBD::remove_directory 2014-06-25 12:40:11 -04:00
2ef5cefa6b Rename internal class to stop the wrong destructor from being called 2014-06-25 12:40:11 -04:00
7262e16216 Add a PBD::TextReceiver in pbd testrunner 2014-06-25 12:40:11 -04:00
24c40c0e88 Add simple test for PBD::find_files_matching_pattern
This helped fix a silly cut and paste error in pbd/file_utils.cc so
might as well included it.
2014-06-25 12:40:11 -04:00
31bceb7570 Use PBD::FdFileDescriptor in PBD::copy_file 2014-06-25 12:40:11 -04:00
8da304be09 Fix PBD::copy_file so it works with non-ASCII filenames on windows 2014-06-25 12:40:11 -04:00
4ced10bfe5 Add test utility function to PBD tests to return some utf-8 strings
This is currently unused
2014-06-25 12:40:11 -04:00
53c959ad8f Add a test for PBD::copy_file using test files with utf-8 encoded filenames 2014-06-25 12:40:11 -04:00
de4fc4843b Fix PBD::copy_files so that it uses O_BINARY on windows and doesn't add line endings to copied files 2014-06-25 12:40:11 -04:00
3000399ce1 Use PLATFORM_WINDOWS define instead of WIN32 in PBD::FileManager 2014-06-25 12:40:11 -04:00
7bf392060e Call PBD::init and PBD::cleanup in pbd test executable 2014-06-25 12:40:11 -04:00
7338c4e242 Add test for PBD::copy_file
From this I can see that PBD::copy_file is not working correctly on windows
as it is adding windows style line endings. Adding O_BINARY to ::open flags
would fix it, but perhaps there is a better way...
2014-06-25 12:40:11 -04:00
94d8dfa256 Add utility function to test lib to create a test directory
There is an identical function in libardour test support lib so we
should probably find a better place to put this at some point
2014-06-25 12:40:11 -04:00
3b1a98f0ec Change PBD::get_files and PBD::get_paths to take a Searchpath instead of directory path
Both these functions use the internal function run_functor_for_paths
which takes a Searchpath so this avoids a temporary variable in cases
where a Searchpath is passed directly.

The usage is the same as the compiler will generate a temporary Searchpath
from a string(directory path) if necessary.
2014-06-25 12:40:11 -04:00
6d0cce528e Add/Update docs in pbd/file_utils.h 2014-06-25 12:40:11 -04:00
851db83fc4 Use run_functor_for_paths in PBD::get_paths 2014-06-25 12:40:10 -04:00
04434f2b88 Rename PBD::get_files_in_directory to just PBD::get_files, change parameter order and fix docs 2014-06-25 12:40:10 -04:00
84d190b7cc Rename PBD::get_directory_contents to PBD::get_paths
shorter name and change order of parameters to match other functions
2014-06-25 12:40:10 -04:00
26ec4038af Use run_functor_for_paths in PBD::find_files_matching_pattern 2014-06-25 12:40:10 -04:00
24599c552d Add function PBD::find_paths_matching_filter 2014-06-25 12:40:10 -04:00
54c0a0144c Use run_functor_for_paths in PBD::find_files_matching_filter 2014-06-25 12:40:10 -04:00
e7141d2b80 Add function to file_utils intended to be used internally 2014-06-25 12:40:10 -04:00
ab6837665f Add some debug output in file_utils.cc 2014-06-25 12:40:10 -04:00
e6c4b0e9e4 Remove reference to strtok_r now that it isn't used 2014-06-25 12:40:10 -04:00
a226068959 Change formatting of DEBUG_TRACE calls to match style guide 2014-06-25 12:40:10 -04:00
cb3a604936 Move functions in pbd/clear_dir.h/cc into pbd/file_utils.h/cc 2014-06-25 12:40:10 -04:00
257897392a Add remove_directory_internal function and use it in PBD::clear_directory and PBD::remove_directory 2014-06-25 12:40:10 -04:00
64856a5862 Reimplement PBD::clear_dir using PBD::get_directory_contents 2014-06-25 12:40:10 -04:00
cd12698b9c Rename PBD::find_file_in_search_path to just PBD::find_file
saves a bit of typing and not necessary if you look at how it is used.
2014-06-25 12:40:10 -04:00
8d0cba3384 Use PBD::find_files_matching_pattern instead of other variations 2014-06-25 12:40:10 -04:00
36fd67ab72 Add a variation of PBD::find_files_matching_pattern for convenience 2014-06-25 12:40:10 -04:00
077c09b105 Add new function PBD::find_files_matching_pattern
This new function is intended to replace the three existing
PBD::find_matching_files_* functions.

The order of parameters matches find_files_matching_regex and
find_files_matching_filter
2014-06-25 12:40:10 -04:00
d9a7d419b2 Change PBD::find_files_matching_regex and PBD::find_files_matching_filter to take a Searchpath 2014-06-25 12:40:10 -04:00
613162df6b Reimplement PBD::find_files_matching_filter using SearchPath and get_directory_contents 2014-06-25 12:40:10 -04:00
56337eade4 Remove limit parameter from PBD::find_files_matching_regex
This limit was not used or documented. The same functionality can be
performed when iterating through the results.
2014-06-25 12:40:10 -04:00
0189ad7e29 Remove parameters from PBD::find_files_matching_regex
The only users of this API always used the same options so just remove
them.
2014-06-25 12:40:09 -04:00
769ee5c1f2 Change PBD::get_files_in_directory to return full paths in result
get_files_in_directory uses get_directory_contents internally now
2014-06-25 12:40:09 -04:00
d1dd5d3ee7 Add PBD::get_directory_contents to pbd/file_utils.h 2014-06-25 12:40:09 -04:00
592654936e Remove (no longer needed) sources from an MSVC project 2014-06-19 11:49:51 +01:00
126ef72d05 Move the definition for 'strtok_r' (to avoid clashing with a different definition in pthread_win32) 2014-06-19 11:47:49 +01:00
3aa2a4ac8c Remove PathScanner class from libpbd 2014-06-17 21:43:30 +10:00
547689a055 Replace all use of PathScanner with equivalent functions from pbd/file_utils.h 2014-06-17 21:41:29 +10:00
26285a3bc0 Add default arguments to match those in PathScanner::operator() 2014-06-17 21:29:41 +10:00
dc81ab8640 Move member functions from PathScanner to functions in pbd/file_utils.h
This allows us to remove PathScanner source file and keep PathScanner class
as header only until it is removed
2014-06-17 21:19:02 +10:00
ea5f9a8ea6 Move PathScanner::operator() into header 2014-06-17 21:14:13 +10:00
b457c938cd Remove unused methods in PathScanner
Now that these methods are only a few lines it doesn't make much sense
to keep them seeing as they are unused. There are also functions with
near identical functionality in pbd/file_utils.h
2014-06-17 21:14:03 +10:00
cde8776e80 Rename PathScanner::run_scan_internal to PathScanner::find_files_matching_filter 2014-06-17 21:13:50 +10:00
3066bd48da Remove PathScanner::run_scan and use PathScanner::run_scan_internal directly 2014-06-17 21:13:41 +10:00
f54092dada Add PathScanner::find_files_matching_regex and move regexp usage to one place 2014-06-17 21:13:32 +10:00
f220d01132 Remove member filter argument from PathScanner methods and use normal filter for regex
Also use regfree to free memory of compiled patterns
2014-06-17 21:13:16 +10:00
0e96d84079 Change PBD::PathScanner API to return results by value to avoid inadvertent memory leaks 2014-06-17 21:13:05 +10:00
36be1a3a9b plug some leaks 2014-06-15 13:24:41 +02:00
12cf9d5be8 fix pathscanner / stl_vector related memory leaks 2014-06-15 13:24:39 +02:00
62ba8d23e3 tracking down concurrency issus is fun. 2014-06-14 16:38:47 +02:00
f0dbd6c085 Export dialog: tidy code, & remove some superfluous debug output
Remove some debug output, tidy up a few whitespace inconsistencies, use
DEBUG::Soundcloud in one more place, and zap a couple of unused variables.
2014-06-12 23:20:05 +01:00
724a69a8d5 Search $PATH for command when creating SystemExec from command line
When creating a SystemExec from a command-line, search $PATH for the
command to execute, so that post-export hooks don't need to specify a full
path.
2014-06-12 23:20:05 +01:00
915bb2f641 close dir opened with opendir() - fixes accumulated fd for plugin state saves 2014-06-10 02:21:22 +02:00
3813c7afae increase system-exec timeouts for kill. 2014-06-05 02:22:13 +02:00
7f18913e6d fix errors in manual conflict resolution 2014-06-02 11:42:35 -04:00
8c9749e42f merge with master and fix 4 conflicts by hand 2014-06-02 11:32:13 -04:00
bc8ccea212 remove debug output from system_exec
remove the debug output from pbd/system_exec: it's of no further use, and
also breaks optimised builds.
2014-05-19 22:49:22 +01:00
0de7c8920b Merge branch 'mingw-updates' of https://github.com/mojofunk/ardour into cairocanvas 2014-05-19 17:19:43 -04:00
5399425f53 Merge branch 'export-dialog' into cairocanvas
Fix merge conflicts in:
	gtk2_ardour/export_range_markers_dialog.cc
	gtk2_ardour/wscript
	libs/ardour/ardour/export_handler.h
	libs/ardour/system_exec.cc
	libs/pbd/pbd/system_exec.h
	libs/pbd/system_exec.cc
2014-05-19 20:54:36 +01:00
7c4259133d SystemExec: copy last argument from command line to argv[]
Make sure to copy any part of the command line after the last delimiter
to argv[] when creating a SystemExec with an escaped command line.
2014-05-18 20:49:58 +01:00
e4442b45cf Use COMPILER_MINGW define rather than __MINGW64__
This is necessary to build with win32 target using mingw-w64 version
on Fedora 19
2014-05-14 09:47:40 +10:00
86a0f10ac7 Reinstate code removed that allows building with mingw and the pthreads-win32 library
Newer versions of mingw-w64 can be built with an included pthread implementation
called winpthreads which uses an integer type for pthread_t but pthreads-win32 does
not.
2014-05-14 09:47:40 +10:00
b895a8f631 Always link to ole32 when building with mingw for get_win_special_folder
needed for CoTaskMemFree in get_win_special_folder
2014-05-14 09:47:40 +10:00
8d0ec2403f Add a couple of pthread helper macros
(to accommodate the fact that in ptw-win32, 'pthread_t' is subtlely different from its non-Windows counterparts)
2014-05-06 09:31:11 +01:00
058986f77b finish unfinished work at basing all install paths on the program name 2014-04-28 21:11:08 -04:00
f31c84a742 close stdin as first attempt to terminate process cleanly. 2014-04-20 23:02:32 +02:00
3552c17b91 fix SystemExec for windows 2014-04-20 02:51:27 +02:00
396fae31a9 Make sure that the input string doesn't go out of scope when using boost::tokenizer 2014-04-14 20:26:48 +01:00
99bf5d9eed backport 1d85ab27a7 and ba128eea from cairocanvas branch to remove GIO (possible hotfix release) 2014-04-14 12:53:30 -04:00
5d9c2104d2 Oops - correct some typos in my previous commit
(accidentally used G_DIR_SEPARATOR instead of G_SEARCHPATH_SEPARATOR)
2014-04-11 15:36:04 +01:00
d95de39339 Make sure we use the correct style of filepath separator on Windows
('libs/ardour/file_source.cc' still to be investigated)
2014-04-11 13:03:48 +01:00
c046b7c9d3 Remove 'pipex' from my pbd.vcproj as it's not needed for Ardour3 2014-04-11 12:59:03 +01:00
077a194430 Add the main VC project files for building Ardour3 with Microsoft Visual Studio
Note that there's no 'VS Solution' file at present and some targets haven't been built yet (e.g. 'fst')
2014-04-08 09:49:35 +01:00
3e7fad52f5 fix conceptual error/thinko in EnvironmentalProtectionAgency when using unsetenv() while iterating over char** environ 2014-04-04 15:25:56 -04:00
6f3ebba3b6 comment tweak 2014-03-24 19:46:07 -04:00
87184ab80d fix a race condition between the death of a thread that communicates with an UI event loop and the event loop itself.
The comment tries to explain it all. There may be a better solution, but I believe that this one is
(a) safe (b) better than the old approach.
2014-03-24 17:47:56 -04:00
ba128eea50 replace use of Gio:: for plugin state 2014-03-22 17:42:26 +01:00
1d85ab27a7 replace use of Gio:: with primitives (fix for #5889 part 1) 2014-03-22 17:42:26 +01:00
543099afba rework SystemExec - use vfork wrapper (and lots of related stuff) 2014-03-13 16:58:07 +01:00
f15932a5c2 fix #ifdef in localtime_r header (from Valeriy) 2014-03-12 09:39:16 -04:00
d52eb5bf23 A few days ago a #define got changed because the relevant section of code was no longer needed when building with mingw. However, it's not needed for msvc either (in fact, msvc won't compile it) so hopefully, the code fragment can be safely removed 2014-03-12 13:22:25 +00:00
f6129ed0f4 prototype vfork exec-wrapper. 2014-03-11 15:48:41 +01:00
495c0de4ac fix up waf build in wake of search path changes earlier today 2014-03-10 17:30:12 -04:00
b6a9bf5d04 add PBD::downcase() functions to libpbd 2014-03-10 17:30:12 -04:00
07d5a389fa add missing include to define LIBPBD_API (mingw build) 2014-03-09 21:05:17 +01:00
944c32346b Add a couple of visibility specifiers that were missing 2014-03-08 11:29:52 +00:00
c7bc009b30 Use LIBPBD_TEMPLATE_API and LIBPBD_TEMPLATE_MEMBER_API where appropriate 2014-03-08 11:28:54 +00:00
912f07b919 mingw build fixes (tested with i686-w64-mingw32 on linux-x86_64) 2014-03-04 15:25:58 +01:00
43421f0b46 minor fix for libpbd wscript on windows 2014-03-03 10:31:53 -05:00
8040df1897 move export_search_path(), previously in gtk2_ardour/main.cc, into libs/pbd 2014-03-02 11:25:54 -05:00
b8419ae7cd use "new" VST search path code and adjust build system to reflect new source files 2014-03-02 10:53:25 -05:00
8ba449bc4e remove fallback_folders code, add simpler more focused get_vst_search_path() and breakout get_win_special_folder() into its own file 2014-03-02 10:52:52 -05:00
c10e11eca5 for windows build, add fallback_folders.cc to libpbd source list 2014-03-01 22:47:19 -05:00
fc88eaf392 add likely stub code for adding linkage to libole when building libpbd on windows.
I may have gotten the precise linkflags string incorrect, but this my best guess.
2014-03-01 22:44:56 -05:00
fd64bba1de add -DPROGRAM_NAME to libpbd compile flags 2014-03-01 22:43:46 -05:00
08c89809ee REALLY REALLY CORRECT template export macros for libpbd 2014-03-01 22:31:47 -05:00