Commit Graph

126 Commits

Author SHA1 Message Date
Armin Novak 3847035b8e [winpr,clipboard] fix clipboard file listing 2023-07-26 10:57:42 +02:00
Armin Novak 14d5cbeacb [winpr,file] fix issues with FindFirstFile 2023-07-26 10:57:42 +02:00
Armin Novak 62b6c98393 [winpr,file] do not assume order for directory listings 2023-07-24 11:05:13 +02:00
Armin Novak 970f0c54e8 [stream] use const correct Stream_Pointer access 2023-06-08 08:09:33 +02:00
akallabeth 4a006322af [winpr,clipboard] fix url unescape for file uri 2023-05-12 13:57:56 +02:00
akallabeth 69b4898b73 [winpr,clipboard] fix wrong return check 2023-03-15 08:22:23 +01:00
Armin Novak e129ab749b fixed parsing of FILEDESCRIPTORW in WinPR 2023-03-05 17:55:28 +01:00
Armin Novak 9fb4465722 [winpr,clipboard] fix text/uri-list parsing
abort if an empty string remains
2023-03-05 17:55:28 +01:00
akallabeth 61175a96ea [winpr,clipboard] fixed mate-copied-files
wrong lineending and size fixed
2023-02-28 09:47:54 +01:00
Armin Novak e1307b90db [winpr,clipboard] fix length of uri list
we overallocate the size, so ensure the result size only contains the
data actually used.
2023-02-28 09:47:54 +01:00
Armin Novak f4acc88c58 [winpr,clipboard] add getter for clipboard id string 2023-02-23 20:28:15 +01:00
Armin Novak d8d4d044ff [clipboard] cleanup definitions
* remove definitions for clipboard formats that are dynamically registered
* fix length of converted clipboard string
2023-02-23 20:28:15 +01:00
Armin Novak 9cb28f47ef xxx 2023-02-21 16:42:54 +01:00
Armin Novak 1522b5aa91 xx 2023-02-21 16:42:54 +01:00
Armin Novak 3d3e577190 [winpr,clipboard] fix file list conversion 2023-02-21 16:42:54 +01:00
Armin Novak 53afedf9de [winpr,clipboard] close file after read 2023-02-21 16:42:54 +01:00
Armin Novak 10404121c4 [winpr,clipboard] fix error message format string 2023-02-21 16:42:54 +01:00
akallabeth 7ab917dca8 Fixed Wsign-compare warnings 2022-12-09 15:58:26 +01:00
akallabeth 0186a9b303 Fixed some warnings 2022-12-09 15:58:26 +01:00
akallabeth aaae70ff05 Fixed missing const casts 2022-12-09 15:58:26 +01:00
akallabeth 5799fb2018 Replace ConvertFromUnicode and ConvertToUnicode
* Use new ConvertUtf8ToWChar, ConvertUtf8NToWChar,
  ConvertUtf8ToWCharAlloc and ConvertUtf8NToWCharAlloc
* Use new ConvertWCharToUtf8, ConvertWCharNToUtf8,
  ConvertWCharToUtf8Alloc and ConvertWCharNToUtf8Alloc
* Use new Stream UTF16 to/from UTF8 read/write functions
* Use new settings UTF16 to/from UTF8 read/write functions
2022-11-28 10:42:36 +01:00
Armin Novak 843680e543 Clipboard syntesizer replaces path separators
The clipboard expects windows style paths, so replace all / with \
2022-10-28 08:22:43 +02:00
Armin Novak f9faf3d3d5 Unified synthetic file cleanup 2022-10-28 08:22:43 +02:00
Armin Novak a7a8e7ee8d Fixed read/write of filedescriptorw times 2022-10-28 08:22:43 +02:00
Armin Novak 096e98d8b5 Moved verbose log message
Do not log expected abort conditions
2022-10-28 08:22:43 +02:00
akallabeth 1849632c43
Fixed format strings to match arguments (#8254)
* Fixed format strings to match arguments

Reviewed and replaced all %d specifiers to match proper type

* Added proxy dynamic channel command type to log messages.
2022-09-29 14:55:27 +02:00
Kang Lin 71b48f61c1 WinPR::Clipboard::SyntheticFile: FIX match *.* directory bug. The FilePatternMatchA don't support *.* pattern 2022-09-27 09:27:27 +02:00
Armin Novak ba2e5477d1 Added additional checks and fixed WCHAR usage. 2022-09-26 14:01:20 +02:00
Kang Lin 195b98a9a9 WinPR::Clipboard: Refactor synthetic file
rename posix.c to synthetic_file.c
2022-09-26 14:01:20 +02:00
akallabeth d2ab631c40
Test uri fix (#8232)
* Fixed TestUri unit test

* Make proper unit test out of the test function
* Add proper test cases

* Replace FindFirstFileA with FindFirstFileW for addins

This allows addin paths to contain unicode symbols.

* Fixed parse_uri_to_local_file definition

* Move to common clipboard.c file
* Move to header file so it can be included in test case

* Added WINPR_LOCAL for test builds

This macro exports internal functions in case of a unit test build
This way unit tests can access these without other workarounds.

* Fixed typo in function name is_dos_driver

* Cleaned up FindFirstFileW call

Use a wrapper function to convert to unicode and call the function

* Cleaned up BUILD_TESTING and EXPORT_ALL_SYMBOLS

* EXPORT_ALL_SYMBOLS now does as the name implies and exports all
  non static functions/variables from the library.
* BUILD_TESTING now only sets the defines for test code and
  activates EXPORT_ALL_SYMBOLS to allow tests to access internal
  code

* Fixed windows client warnings

* disable CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS
2022-09-26 11:22:02 +02:00
Armin Novak e7973d15ff Fix out of bounds reads in parse_uri_to_local_file 2022-09-19 11:06:40 +02:00
Kang Lin 6a6e3340c7 WinPR::Clipboard: Add to convert uri to local file
URI is specified by RFC 8089: https://datatracker.ietf.org/doc/html/rfc8089

Local files:

   o  A traditional file URI for a local file with an empty authority.
      For example:

      *  "file:///path/to/file"

   o  The minimal representation of a local file with no authority field
      and an absolute path that begins with a slash "/".  For example:

      *  "file:/path/to/file"

   o  The minimal representation of a local file in a DOS- or Windows-
      based environment with no authority field and an absolute path
      that begins with a drive letter.  For example:

      *  "file:c:/path/to/file"

   o  Regular DOS or Windows file URIs with vertical line characters in
      the drive letter construct.  For example:

      *  "file:///c|/path/to/file"

      *  "file:/c|/path/to/file"

      *  "file:c|/path/to/file"
2022-09-16 11:41:43 +02:00
Armin Novak 8561b08592 Fixed gnome and mate clipboard format synthesizers 2022-09-13 14:42:33 +02:00
Kang Lin 0faa2c91fe WinPR::Clipboard: FIX text/uri-list format bug(#7904)
See:
  GTK: https://docs.gtk.org/glib/struct.Uri.html
  uri syntax: https://www.rfc-editor.org/rfc/rfc3986#section-3
  uri-lists format: https://www.rfc-editor.org/rfc/rfc2483#section-5
2022-09-12 08:58:34 +02:00
Pascal Nowack 43b609cd6c winpr/clipboard: Allow overriding ValidFileNameComponent call
When using the wClipboard API, the connected peer might not be on the
Windows platform, where further filename restriction exists.
As a result, it is currently not possible to use the wClipboard API,
when intending to allow filenames, containing characters like ':'.

So, add a callback to the wClipboardDelegate, which is set to the
ValidFileNameComponent call by default.
This callback can be overridden by the API user, when it is known, that
there is no need to impose very strict filename restrictions.
2022-07-07 07:45:26 +00:00
akallabeth f25261e271 Unifiy string append functions 2022-06-17 08:41:46 +02:00
akallabeth 962c5c3ef0 Fixed dead store warnings 2022-04-28 12:37:19 +02:00
akallabeth 667b471686 Fixed cast-quality warnings 2022-04-28 09:17:20 +02:00
Armin Novak 037084abd5 Fix #7754 remove last newline in convert_filedescriptors_to_file_list 2022-03-28 16:21:27 +02:00
Armin Novak 453d3b4c8b Fixed #7754: nautilus does not like \r\n 2022-03-28 14:59:30 +02:00
akallabeth 3d38d2636c Decreased logging verbosity for INFO level 2022-03-04 09:34:02 +01:00
Armin Novak 6ed50b4b1d Refactored WinPR includes 2022-03-03 11:26:48 +01:00
akallabeth 8cc6582044
Unify struct definitions (#7633)
* Unified enum/struct definitions, fixed include issues

* Fixed mac compilation issues

* Added missing include

* Fixed windows server build warnings

* Fixed VS2010 build issue

* Removed unnecessary library linking

* Fixed ThreadPool WinXP compatibility

* Fixed pr review remarks
2022-02-14 14:59:22 +01:00
Armin Novak 0fe1e2359e Fixed all reserved-id-macro warnings 2021-09-10 08:16:25 +02:00
Armin Novak 68f24477f6 Fixed compilation warnings on mac 2021-08-26 15:08:28 +02:00
Armin Novak 5afa592244 Fixed cast-qual warnings 2021-08-24 11:10:51 +02:00
Armin Novak 5eea7fc12d WINPR_UNUSED argc, argv for unit tests 2021-08-24 10:45:57 +02:00
Pascal Nowack 8fe794b312 winpr/clipboard: Omit last line ending for gnome-copied-files
Every uri in the x-special/gnome-copied-files mime type is separated by
a '\n' char.
However, not every line ends with '\n'. The last line MUST not include
the new line character.
2021-08-19 09:08:11 +02:00
Armin Novak 1af7ef2f1b Fixed compilation warnings and typos 2021-06-16 15:21:56 +02:00
Armin Novak 64280aa13c Added WINPR_ASSERT to collections 2021-06-16 11:46:42 +02:00