mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-04-07 13:55:33 +08:00
Compare commits
986 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 3a46d8a909 | |||
| 8539dc168b | |||
| d651d5166b | |||
| 699acd0516 | |||
| 5e9e15be57 | |||
| 77ea7fd3df | |||
| cb40323b31 | |||
| 85817c68c1 | |||
| 7a822494aa | |||
| 284d2730e2 | |||
| 7a36d76298 | |||
| c3b7447c04 | |||
| e0cc9c0409 | |||
| 075d6c849b | |||
| a0ff455786 | |||
| c4f475167d | |||
| d72d03d449 | |||
| 322c7af962 | |||
| 879ce1a66d | |||
| a01b535609 | |||
| 25a909d7a7 | |||
| 2c081fedc9 | |||
| 9fc7aa5bca | |||
| 35e10ff9cd | |||
| bce86077af | |||
| ed46c8521d | |||
| 7d18fa5753 | |||
| bdddc1ac67 | |||
| a02bd8f383 | |||
| 07e8cda08d | |||
| 53e8fa7731 | |||
| cc4056a18b | |||
| 63b425763e | |||
| bf859f9763 | |||
| 650c993fa0 | |||
| abba98d9d3 | |||
| e85923d94e | |||
| 6d548d27bc | |||
| 29167e6267 | |||
| 80e2c75a54 | |||
| 9c67404b69 | |||
| c82b5c9994 | |||
| e6205fcff9 | |||
| 1ec0142c25 | |||
| f65463c96f | |||
| 133ad365f4 | |||
| 4c077a28b8 | |||
| 1bd7c77ead | |||
| 26e5245cf6 | |||
| 672b9fd118 | |||
| c96b59cbbf | |||
| 81ec34b6f9 | |||
| f29d83a80b | |||
| b5c44805fb | |||
| 01bfa49aba | |||
| 7c0bef3c04 | |||
| 7aeaec211a | |||
| a3de9703bf | |||
| af743b7e25 | |||
| d4b6a05717 | |||
| de51600d34 | |||
| c64379636e | |||
| d2f9c59b5f | |||
| 30675ab8b9 | |||
| fbadc56797 | |||
| a568aa02c4 | |||
| 099d49b3a7 | |||
| 55a200e71d | |||
| c6586a9a17 | |||
| fbcf56be9e | |||
| 83fdc52baf | |||
| 966eac2367 | |||
| 32c185c089 | |||
| cb66e15faf | |||
| f6a102353d | |||
| 2247d47e4b | |||
| cb77b0989c | |||
| 5832049ebc | |||
| 43bc3c92b3 | |||
| 50007b47ee | |||
| b98c51b020 | |||
| 0c5e670ad1 | |||
| e41b892b58 | |||
| 527af6f669 | |||
| 5e6f84ec74 | |||
| 3c7d05a33e | |||
| c2d48fdd32 | |||
| ebf6e9e995 | |||
| f87f2a47d5 | |||
| 5728bcda76 | |||
| ceadb68bc6 | |||
| 3aa94ae6ae | |||
| b8095b3f82 | |||
| 7448a331e9 | |||
| 940bb840be | |||
| 967b0aec72 | |||
| 852989d0c9 | |||
| c733399b88 | |||
| 8c92a944ad | |||
| 0456f9b362 | |||
| 4ec7942649 | |||
| 13410416a5 | |||
| b4d00a7a47 | |||
| 9d497e48c9 | |||
| 759a159005 | |||
| 92e6fa06b5 | |||
| 7b93de3e8a | |||
| ca3e65468b | |||
| 5d378ddb41 | |||
| ba05993073 | |||
| 6438c1cd4b | |||
| 07ad714d3a | |||
| 1c87c34db9 | |||
| 8f4956102a | |||
| 0d8fcd1bef | |||
| 4db5c55544 | |||
| 709ac0b868 | |||
| dd73d3347f | |||
| e98f981a46 | |||
| d6b7aefe51 | |||
| f612ca64e0 | |||
| e3a582ee67 | |||
| fa68ba2f0d | |||
| 3387f67f7e | |||
| 383e9bc971 | |||
| c67aea9543 | |||
| 0e64e3467b | |||
| cc2027edab | |||
| da3739942f | |||
| 80d5783b3b | |||
| dbd5aeadd2 | |||
| d57b69731b | |||
| 248f9a5362 | |||
| 204ef06b1a | |||
| f9171cb342 | |||
| 6d80b8537f | |||
| c5a09b75d6 | |||
| 1c8687e07f | |||
| 28745ae49f | |||
| d6b5523406 | |||
| fc1d61799b | |||
| 358903d331 | |||
| 46e8d03eeb | |||
| 554ad261cf | |||
| 78c662ea55 | |||
| 98a02441de | |||
| efb3075e0e | |||
| da703d88ca | |||
| dc73c8b2b6 | |||
| 1404829b68 | |||
| be9f8ba8e6 | |||
| f858b76fd4 | |||
| 3914b9a9d5 | |||
| e19d1c6735 | |||
| 041d8a3dc4 | |||
| 31ee203b92 | |||
| 3d7eefcd3d | |||
| 82db1cd0d1 | |||
| 14ea99e880 | |||
| 7363c995dd | |||
| 66a2edf5d2 | |||
| 36e5cada88 | |||
| 01e9bb8cef | |||
| 9887883626 | |||
| 3d828f9683 | |||
| 2d890247ab | |||
| 5acc2513c8 | |||
| d3dc902f23 | |||
| 11ae76f9f0 | |||
| 7340469a8c | |||
| 92e03fd7b6 | |||
| 7a12a4d43e | |||
| c59f679043 | |||
| 3cb1503632 | |||
| b2b0c74cd4 | |||
| a1376d647f | |||
| dc17f5fe2e | |||
| 6d45b90ac0 | |||
| 7130c2d1bb | |||
| e19db2847f | |||
| 2e8bb7177c | |||
| c8ca57ea40 | |||
| e7931e73d1 | |||
| b096ce8098 | |||
| ffc3149d4b | |||
| f4cc9ec38a | |||
| 5c3760a907 | |||
| 6320c543c0 | |||
| 324dd2de49 | |||
| e07fd5ed24 | |||
| 19295c1037 | |||
| 7ad0e7e9fe | |||
| ce9ede6820 | |||
| 379f474739 | |||
| a2662a6f2b | |||
| c52893306d | |||
| 3a9a2b5ee7 | |||
| 8df04c48ad | |||
| f7b0565233 | |||
| ef7fb15efe | |||
| e32b53d662 | |||
| 0b683226e9 | |||
| 73924f3ae0 | |||
| e8ecef51dd | |||
| 5bf730e1d6 | |||
| 091f3a3a8e | |||
| ffa8467c9e | |||
| 398c69c01e | |||
| a48ed74102 | |||
| 45628154d9 | |||
| 2921e476c3 | |||
| e97fd44489 | |||
| 1dba0723c7 | |||
| 217ec901ed | |||
| 68723a5e81 | |||
| 53810c07ac | |||
| 14fcc4dfac | |||
| b4b1cae18e | |||
| ab74e3fce7 | |||
| 4f48287d28 | |||
| 3b20ac3825 | |||
| 3f782ab389 | |||
| c22d4c60c0 | |||
| 9349ddf604 | |||
| 70c4f045ea | |||
| d955de5bdb | |||
| 0bd9cead65 | |||
| c282e86832 | |||
| cd91baaabe | |||
| 727a7722bb | |||
| 0d47bdc47d | |||
| cd458b81ec | |||
| 4beb4c8d70 | |||
| aa56efb495 | |||
| 44016b4ccc | |||
| d2158ded6f | |||
| 34790c680a | |||
| 4dfa989980 | |||
| 99ba013151 | |||
| 857957e824 | |||
| c0972a5b4a | |||
| c0f231fa92 | |||
| 6ec0609de3 | |||
| 43aacc8dd9 | |||
| f75d977661 | |||
| 48d19d9aa0 | |||
| 16448245b8 | |||
| c8a03fec41 | |||
| db05f4d373 | |||
| b6e741c4a5 | |||
| ff75d14e29 | |||
| ed0bcfc642 | |||
| 33e6c14a04 | |||
| f7b3ab2411 | |||
| ea49ffe242 | |||
| 471f739a66 | |||
| a710a7b77c | |||
| 13ff65c6e9 | |||
| 5050726d47 | |||
| 3296d32168 | |||
| 11b59048cd | |||
| 6b0513cd81 | |||
| e335a237a5 | |||
| af6802e035 | |||
| 01f01ec85f | |||
| a3f7e83ccf | |||
| 09d87538e7 | |||
| 2f9726e455 | |||
| 5178cf0cb7 | |||
| 0a517af106 | |||
| 76fea998ea | |||
| 721805535e | |||
| 1f5025b136 | |||
| a61c267941 | |||
| 6f4041b476 | |||
| 97aad68726 | |||
| e83a86ee56 | |||
| a6882895a5 | |||
| 85ab308f80 | |||
| c4bda0b403 | |||
| 0f492bce2b | |||
| 92f114a30f | |||
| 98f33c04be | |||
| 34c36cae01 | |||
| a6a4d74304 | |||
| 58112c000c | |||
| 76c00154af | |||
| 4fec85c60b | |||
| 19c56e1b4d | |||
| 71e3768ed9 | |||
| fb0e7f8d3f | |||
| f59e5745af | |||
| 6b9ae7e71e | |||
| 2601448513 | |||
| 263e50601a | |||
| 5d302dde81 | |||
| e7e2e6b448 | |||
| eb45d8dadc | |||
| 3621bea6e1 | |||
| c60d06733b | |||
| 9d9edd2cfc | |||
| 7bc69064f7 | |||
| a43a03d84d | |||
| 647dd62537 | |||
| 942a9c6a79 | |||
| b652c5754c | |||
| d9ed8f4780 | |||
| 44928cf416 | |||
| 1adfa0ea7e | |||
| 2dd276c427 | |||
| 775d06de9d | |||
| 9e62296b29 | |||
| 6c76366705 | |||
| e9aa3b4e81 | |||
| df3ccf1837 | |||
| b3ea4afe3f | |||
| d001298fcd | |||
| 50c65fe0fd | |||
| 8851731c74 | |||
| 0e456d167b | |||
| a246923dce | |||
| c7c2ab02a7 | |||
| 0f59c2254d | |||
| 9d9f6165b5 | |||
| 9ffb756c4f | |||
| 4910d69a40 | |||
| 78d1f6f1e4 | |||
| f8717b5af0 | |||
| b921bebc79 | |||
| fa85b389f2 | |||
| 8807404baf | |||
| ae92f47e54 | |||
| 9688ed3d4c | |||
| 673b733a8d | |||
| 1a89252004 | |||
| a1fd606050 | |||
| 6d7a1421b2 | |||
| 5b8510353d | |||
| 6df5bf924a | |||
| 8ca40a44ce | |||
| 3fa6152e69 | |||
| 8bd4dcece3 | |||
| 7afe09ce09 | |||
| 3df0892752 | |||
| deffa006b5 | |||
| 12326b3a4f | |||
| ad72c997f2 | |||
| 4552ab2d6f | |||
| 741213b126 | |||
| 73524ccc22 | |||
| 4ca669b9cd | |||
| 55578a0026 | |||
| 30733dfc71 | |||
| 530d1d1763 | |||
| c252512786 | |||
| b2a8407617 | |||
| 0a0a7baaf7 | |||
| f41c850c0e | |||
| 03a276fd88 | |||
| d20b9321d4 | |||
| 42a4f8c909 | |||
| 22842c069a | |||
| 8206a74694 | |||
| 0aaff62cba | |||
| 0d66a203d6 | |||
| 0d9052d25c | |||
| 3c28cf6022 | |||
| fd865782a8 | |||
| a977fe30f0 | |||
| 2c799de36a | |||
| 49a339ad56 | |||
| f2533bc6a0 | |||
| a736c35880 | |||
| ce64eca658 | |||
| 8a0c070990 | |||
| 00e54401da | |||
| 486ff2087c | |||
| b3cef38315 | |||
| 8646fd4271 | |||
| b0cbf8520a | |||
| 1d0bb53607 | |||
| e83e025748 | |||
| ea181c8110 | |||
| 2f4756138c | |||
| 3ef0ed1d36 | |||
| 32a046f4d2 | |||
| 9f18768e5d | |||
| 163ab8da25 | |||
| fd1e49ec2d | |||
| 66ac071c58 | |||
| 03d88de461 | |||
| cd8ce24a70 | |||
| a7c70687c9 | |||
| e412983314 | |||
| de278ff550 | |||
| 5d0f0875be | |||
| fad145455e | |||
| 365d8bf95a | |||
| 7e5332eba5 | |||
| a32ce7650f | |||
| f7f5bb89c1 | |||
| 5102820231 | |||
| 313af0b405 | |||
| 4aa56f8aa0 | |||
| ffe2806bc8 | |||
| 7dcbd57aa7 | |||
| 57ccbc0fb6 | |||
| ff427c547d | |||
| 4d5a2967e3 | |||
| cdb72bab80 | |||
| 9ea4cd8ba5 | |||
| b15aff55d1 | |||
| d3423f93eb | |||
| 0f9cc64520 | |||
| 2309f915b4 | |||
| a61543bff9 | |||
| 299e91c747 | |||
| 6633335912 | |||
| 60bae43495 | |||
| 77297aedc8 | |||
| 7ba98fe047 | |||
| c47e0369a1 | |||
| 416b120842 | |||
| 1e34dc736e | |||
| 4c20531b30 | |||
| ecd2a5eba1 | |||
| 2ee8dead85 | |||
| 88ae812a90 | |||
| 835f88edf5 | |||
| 698def3934 | |||
| 6228c41af4 | |||
| bb0d2eea84 | |||
| a704a74fed | |||
| 00e9550927 | |||
| 8e36d60e4b | |||
| daa392556a | |||
| eea5608399 | |||
| a4fd9eba94 | |||
| 1f3a104356 | |||
| a03b876269 | |||
| eecf268ac9 | |||
| 907734a202 | |||
| 3a4792e858 | |||
| 223c16f90e | |||
| 2eeaaa7197 | |||
| 9b419ce470 | |||
| 7f17ec7b29 | |||
| 1fbbabeff0 | |||
| bd895669f5 | |||
| ce6aeb48b7 | |||
| 7e767f0f3f | |||
| cf37e1edef | |||
| 1427de8435 | |||
| 7550c08748 | |||
| eedcaa9768 | |||
| c615afa80e | |||
| 93435fce9f | |||
| c6d767d8d9 | |||
| 8a9861a583 | |||
| e71e4068e4 | |||
| 29804158f9 | |||
| 9683d6e78c | |||
| 4cfe02a387 | |||
| 57145240be | |||
| 7d6a29d063 | |||
| f5c4dab90b | |||
| fc0f496c5f | |||
| f79ad969a4 | |||
| 916635782d | |||
| 96ff2246fa | |||
| 1b10918258 | |||
| 4c9e904d10 | |||
| 24acad0cd2 | |||
| edeebcc438 | |||
| 6fb6021ad3 | |||
| c14083795f | |||
| 11099d2575 | |||
| 62d05c02fb | |||
| 117edc9c96 | |||
| a1195e038e | |||
| ff1e280d7d | |||
| 000f64267f | |||
| 1e5e533d68 | |||
| ac0cdd8fa2 | |||
| bc33a5b2e3 | |||
| 43514de87e | |||
| 52071831de | |||
| a133ce4714 | |||
| 608b04ca26 | |||
| 2b6ad83b36 | |||
| f121da9f47 | |||
| 61d26acf71 | |||
| d6dfe0623f | |||
| 0b9dc3c296 | |||
| 47e0ccbe29 | |||
| 5d720e75f5 | |||
| ad03ae0390 | |||
| 90d709972d | |||
| 6f8251fe04 | |||
| f77d3440f6 | |||
| d5ab557578 | |||
| 1b84274673 | |||
| f601d95d27 | |||
| c16d63c011 | |||
| 4e0e0265d0 | |||
| bbf661e74e | |||
| e5253bbf35 | |||
| c2591eea02 | |||
| cf0e9febe5 | |||
| a3696b07df | |||
| 32e1be7493 | |||
| 46a37c9199 | |||
| aea4996a45 | |||
| 28257fca25 | |||
| 3b779ded76 | |||
| f846881e88 | |||
| 961e955ee4 | |||
| ac7569bc51 | |||
| 1cd49c52d2 | |||
| d49b74c0e0 | |||
| 8338ff75c8 | |||
| a215476303 | |||
| 7e765011b8 | |||
| c2e4fcfebd | |||
| e649ecb7a0 | |||
| fc45ed4aaf | |||
| 5c6956b5d5 | |||
| 8a728e2ec9 | |||
| 9a515fc99e | |||
| 71ab0560f2 | |||
| 255c8cd547 | |||
| e36b2bcd93 | |||
| 79aede17c6 | |||
| 23afcb430c | |||
| 5d4d2d817c | |||
| 8a2234d2b5 | |||
| 3526b286c3 | |||
| d0b9a8e052 | |||
| 497ec9b2f1 | |||
| 7a4353bc4a | |||
| 0b2fa174d5 | |||
| 9b0cd732e3 | |||
| 062e410efc | |||
| 1faa2c3f77 | |||
| 43ebeec93c | |||
| 32a851b4e4 | |||
| 70c7635af6 | |||
| 7ae87cf15a | |||
| c73e91094f | |||
| 98df4659b5 | |||
| b2e2b06fc2 | |||
| a039a36b8f | |||
| d6c4b2b95c | |||
| eb34cb7e23 | |||
| bc26f0bda4 | |||
| 210d5ef30d | |||
| b174c2c601 | |||
| fa075d0224 | |||
| 4a6c0e340b | |||
| 65604849ac | |||
| 276de3c7b0 | |||
| 0ccd31865d | |||
| ab2f79bd19 | |||
| 33ac9e4f5e | |||
| 7f1e2370d2 | |||
| a2aec43d22 | |||
| aaae4d7728 | |||
| 2d1e08fbd1 | |||
| de4e27f5d7 | |||
| 60e79db7b0 | |||
| 00114714d1 | |||
| 62f98a8cc5 | |||
| c6d9a22d16 | |||
| fab1c09db3 | |||
| 1911f11e51 | |||
| dfec7cb0bb | |||
| 8f11112c43 | |||
| 5071a61692 | |||
| bd2736ab09 | |||
| 04196de46e | |||
| e4c334e84c | |||
| 6214f187e0 | |||
| 55857b803a | |||
| d1c68f38d7 | |||
| ab80f5e399 | |||
| 457e4dadce | |||
| f556fcf3fc | |||
| fd88dbd7df | |||
| 97f440ebab | |||
| 3dcc8e916d | |||
| a1a7b903b6 | |||
| a9a7c3fb22 | |||
| c76f50a2f8 | |||
| 830ef2ad60 | |||
| 55c2b426f4 | |||
| c5729090b3 | |||
| d3a98c0164 | |||
| 2bd9d2fdf3 | |||
| 7065c1a563 | |||
| 866a36448f | |||
| 02155b0b97 | |||
| 8e15985b83 | |||
| 96b5eae285 | |||
| 1792a24827 | |||
| 898844453d | |||
| e9e87d89c9 | |||
| 5f31790f7a | |||
| ff9884b73d | |||
| 27bf69fd98 | |||
| e71d04bd9d | |||
| 3b802bac97 | |||
| 2129ed7492 | |||
| 96a7298071 | |||
| da6c775fb8 | |||
| a445b973c2 | |||
| 8f5a7218b8 | |||
| c4ea1ee198 | |||
| 4d678fc7a7 | |||
| 0f1d473360 | |||
| 738fea25e6 | |||
| c0097de544 | |||
| c07ae1bbb4 | |||
| 349bed9dbc | |||
| b848c1b828 | |||
| 032ec1dffd | |||
| b04bd26758 | |||
| d67a10268a | |||
| 1a7be8a6e8 | |||
| 0d1877efb7 | |||
| d43ff48bc6 | |||
| e02c6e81be | |||
| d23d795160 | |||
| 2b5ffd05a2 | |||
| e297f32b31 | |||
| 06716f1607 | |||
| 0f64eadedb | |||
| 13d1d3d3e9 | |||
| 6a5f065833 | |||
| 1204a9a501 | |||
| 1b6c278b87 | |||
| 996475fca2 | |||
| 243214b060 | |||
| 7382845517 | |||
| 463befcc67 | |||
| b1148caaed | |||
| c37105e4ae | |||
| 8e7e317e4b | |||
| 05ffb10eaa | |||
| b1474a84c4 | |||
| ec547778b5 | |||
| c14b1c73bf | |||
| 454ef30d56 | |||
| 0570672f95 | |||
| cf8b06f9c2 | |||
| ba77b4632c | |||
| 40c65b46be | |||
| a4ec604b1b | |||
| 9ae3d1623c | |||
| 551d356b79 | |||
| 931e81a8a0 | |||
| 64a1fd5e7b | |||
| 25b61c9838 | |||
| d1dde6f1a0 | |||
| 57427336fa | |||
| c2ef4a871c | |||
| cd1e176b1d | |||
| de1339af79 | |||
| 2171b5530b | |||
| 1a6a9b5cb5 | |||
| 3001b0b6d2 | |||
| 2011bf6464 | |||
| f70be27826 | |||
| 27b407ba48 | |||
| ee22dd9b26 | |||
| 3941d51d1e | |||
| 24236ed509 | |||
| 11f645cb2b | |||
| dd02f82697 | |||
| fba7ca95f8 | |||
| d2a7f573c6 | |||
| b0769432d3 | |||
| bd343c88d1 | |||
| 243d8dd2e1 | |||
| 2a8e7667bd | |||
| be7a75c7c9 | |||
| a8e5a98d5f | |||
| cac8df19c1 | |||
| 4fa275fd55 | |||
| fe04849ca4 | |||
| 8182c95dfc | |||
| 36a4aaad45 | |||
| 419437b1fa | |||
| 6e78bc880d | |||
| 29ec077815 | |||
| 8a054f5cdf | |||
| 4310394fc7 | |||
| bc7aa9d328 | |||
| 1cd73fd770 | |||
| 11ddc810d7 | |||
| e3e3f8a4e6 | |||
| 69ff1ca505 | |||
| 5c46c77beb | |||
| 975a2409ab | |||
| 6e14576097 | |||
| 848a1762f9 | |||
| 492d86393e | |||
| a70e9c63bc | |||
| a90cdc2cdb | |||
| 37d77e458b | |||
| 2b1db43259 | |||
| 5f80804661 | |||
| fba86b7071 | |||
| 539d067dc4 | |||
| 54b8c99431 | |||
| c280e9c829 | |||
| 69e0524960 | |||
| 36810c9127 | |||
| e4fa81b16b | |||
| 3c2f982bb2 | |||
| c6930b4ffd | |||
| abec59d9bf | |||
| 86edbdf9a5 | |||
| b7fc8748d2 | |||
| e9a116c1c8 | |||
| cd3b39581d | |||
| 24e04314d8 | |||
| 0368fa0f36 | |||
| eb169b49ed | |||
| eaf3b7fd9f | |||
| d60d5eca86 | |||
| 6a966c9cb9 | |||
| cba1724045 | |||
| a637e40bad | |||
| cdf3918489 | |||
| 77529ecc7e | |||
| 902f7a33d1 | |||
| 48ae9df1cf | |||
| 06668af052 | |||
| a6e7d21f80 | |||
| 84d1d8a68d | |||
| 5890849e42 | |||
| 086c0e71cc | |||
| 3404bea247 | |||
| a5756e42ce | |||
| fb2e149f95 | |||
| 4d94f248e2 | |||
| e91f52ca16 | |||
| e77311983a | |||
| c0a833fac6 | |||
| 2c0c356371 | |||
| a7c9bf8f1d | |||
| 2093579b77 | |||
| 7b1715cfcf | |||
| 22b709b4d7 | |||
| f0ffe097da | |||
| 27c918d810 | |||
| de8746898a | |||
| 3bd847237b | |||
| 7f2e1ed97d | |||
| 7aea6bf451 | |||
| 4cd3b71c07 | |||
| 791c786bf7 | |||
| 41a358764f | |||
| 3d077122c6 | |||
| f3a393080c | |||
| 71553d5aa4 | |||
| e97569a4bb | |||
| cd56cb6dc8 | |||
| 162e96cebd | |||
| 6d29cda8ea | |||
| f215c343b4 | |||
| f3b8e8158a | |||
| 9d31985ae0 | |||
| 28c99c4d4f | |||
| b31ceac8c9 | |||
| e9a17f9593 | |||
| 35b301b382 | |||
| fdb49b7b69 | |||
| 7f47ac262c | |||
| db6ab0b003 | |||
| 4325e5f9d3 | |||
| 2e2258f369 | |||
| 0e604235fb | |||
| fc3f8e61fa | |||
| 4551f1eadc | |||
| 74866e2898 | |||
| 14f04509a7 | |||
| eb5180471e | |||
| 796190157a | |||
| 297f963990 | |||
| fdf39011dd | |||
| 044c8b59c2 | |||
| f69aab7562 | |||
| 6a14a4daad | |||
| d79a6977dc | |||
| aa20538015 | |||
| 36b6e4b5ff | |||
| 4eae0651d6 | |||
| 2fd4e80650 | |||
| 99fee71d3a | |||
| 291dbbe0bb | |||
| 8a49166605 | |||
| 8d649c370b | |||
| baf917818c | |||
| 585d2e5a4a | |||
| 6ca66fa683 | |||
| ddc20afc2c | |||
| cd7f4e5c1f | |||
| d5dbf1b8eb | |||
| 676cdaf04a | |||
| 3cd9e6d397 | |||
| ab6424731c | |||
| 3870d16cbc | |||
| e802ed01e1 | |||
| 74bac4cec6 | |||
| 85a5dcd7ee | |||
| aeaa86c88f | |||
| 0da7b35757 | |||
| 690a75022c | |||
| 5d57702985 | |||
| 2d0baac6fe | |||
| b1c9245223 | |||
| 3685bb311c | |||
| 4673d68387 | |||
| 98175e438f | |||
| 8d01de861f | |||
| 5aa6386249 | |||
| 2341689208 | |||
| 6823e0e241 | |||
| 31b5771a19 | |||
| c1b84ee96f | |||
| 237d20eed2 | |||
| dd988ad3cf | |||
| c609c616f0 | |||
| 93cb4b1be3 | |||
| 4b1190f54b | |||
| 664c14b894 | |||
| dbb4b67491 | |||
| 1c10b51ec2 | |||
| a280d5822c | |||
| bf6747d362 | |||
| b96ab6bd1f | |||
| 1d61dba795 | |||
| cc522274b6 | |||
| 7bf7e80100 | |||
| 528e3e3e15 | |||
| d69ff8e495 | |||
| 59153b1a38 | |||
| f1499aeae4 | |||
| 657d04adb2 | |||
| c46f81630d | |||
| 55d5573e17 | |||
| 2aed22cd6b | |||
| 8796dacf93 | |||
| 24fc302a32 | |||
| 5dbfc32c3e | |||
| 90283fab8a | |||
| d809afc62a | |||
| 5a7ed95b7e | |||
| eb73c4592b | |||
| aa55140bd7 | |||
| b4f7005f7b | |||
| c085828e02 | |||
| 147fd5de04 | |||
| e38498ecba | |||
| fbea298e13 | |||
| e0eecd44cb | |||
| a214c3a7cd | |||
| ce07772680 | |||
| f38ddc22f1 | |||
| b2e5f6a039 | |||
| 86dc8b5eb0 | |||
| 83060ec8a0 | |||
| fab394f33f | |||
| 6506542e35 | |||
| d5fa2f3070 | |||
| 73116f6375 | |||
| e2d2aba8e5 | |||
| b4820e0e05 | |||
| 46ab617a67 | |||
| 3541a01301 | |||
| bddf255598 | |||
| 9b58a31759 | |||
| 6d27258090 | |||
| 0507f52a84 | |||
| 2203b9a98e | |||
| 96380b314e | |||
| 8502c3cea3 | |||
| c1673b148c | |||
| 04c84c7a9a | |||
| 53dfc2f2d1 | |||
| 2e77b8ef2f | |||
| 62d6f365cb | |||
| eb67c01e34 | |||
| 0a72a6d1c8 | |||
| d7d64cbead | |||
| 519e950218 | |||
| fb3152fe65 | |||
| 4130df7b6c | |||
| d529009e26 | |||
| 5362ad02db | |||
| 98e3fc20d5 | |||
| 15f10641aa | |||
| 572dfd97ce | |||
| d6022efefb | |||
| de0146e007 | |||
| 837b4d5d9b | |||
| 472677cc61 | |||
| 641b77da3b | |||
| 583eb8d41e | |||
| ce17a08b17 | |||
| 6cf6013fd6 | |||
| e5812bb7c7 | |||
| 239fb5115a | |||
| 7f22fa5ce2 | |||
| 712014cfd8 | |||
| a2ac053f85 | |||
| 446b8da69a | |||
| 27fbc6fa06 | |||
| cc160a50c8 | |||
| ce3aa935d4 | |||
| 8828e9c678 | |||
| 10365d431a | |||
| def2fb7f85 | |||
| b77268485d | |||
| 21046acdd7 | |||
| 4a86601909 | |||
| 246e62242c | |||
| 9bddef6976 | |||
| 5f9526d4a0 | |||
| f382bc9bc8 | |||
| 9363fb6e68 | |||
| 566c44a74b | |||
| a327e4e1fe | |||
| 5e37534f4f | |||
| e1acff706f | |||
| a87e1d3467 | |||
| 7dc713d4fb | |||
| 958badadf9 | |||
| 30f804bfd9 | |||
| 5399478419 | |||
| b0fe9d0c5b | |||
| adfdac39ef | |||
| 9edbe9fee2 | |||
| 502f612aa2 | |||
| eb5eb69be3 | |||
| ad3faa301d | |||
| dba6f3c705 | |||
| a44a287ca9 | |||
| 1b2a57a220 | |||
| 0f929b4a88 | |||
| 92aa553740 | |||
| f7e0d6e004 | |||
| df7390ad2a | |||
| 47679d47ba | |||
| 524f4cc285 | |||
| 4a74b4a934 | |||
| 7efd8f5962 | |||
| e544845048 | |||
| 1dd6e91180 | |||
| 26c2029300 | |||
| d15762cb36 | |||
| 78dcd9065c | |||
| 3e092303c1 | |||
| 00d9ed438b | |||
| 2fe7f309af | |||
| 7e515862a5 | |||
| 194f2f6b26 | |||
| b2665a2e68 | |||
| 4fa833bac2 | |||
| d173bfa1be | |||
| c971cc1199 | |||
| 0d95984c2a | |||
| e4d8ee832f | |||
| 76b8b83952 | |||
| e79c577a14 | |||
| f67c76eef0 | |||
| 35b7a817f6 | |||
| 569ef80535 | |||
| affd63ee09 | |||
| da1f26f028 | |||
| 230b11a060 | |||
| b3b1b89b1f | |||
| aadea510b0 | |||
| dc9db9c4fc | |||
| ddee54c7c5 |
3
.gitignore
vendored
3
.gitignore
vendored
@ -43,3 +43,6 @@ Thumbs.db
|
||||
|
||||
DesktopEditor/fontengine/js/common/freetype-2.10.4
|
||||
*_resource.rc
|
||||
|
||||
.qtc_clangd
|
||||
Common/3dParty/openssl/openssl/
|
||||
|
||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -6,6 +6,14 @@ core_android {
|
||||
CORE_BOOST_LIBS = $$PWD/build/android/lib/$$CORE_BUILDS_PLATFORM_PREFIX
|
||||
}
|
||||
|
||||
bundle_xcframeworks {
|
||||
xcframework_platform_ios_simulator {
|
||||
CORE_BOOST_LIBS = $$PWD/build/ios_xcframework/ios_simulator/lib/$$CORE_BUILDS_PLATFORM_PREFIX
|
||||
} else {
|
||||
CORE_BOOST_LIBS = $$PWD/build/ios_xcframework/ios/lib/$$CORE_BUILDS_PLATFORM_PREFIX
|
||||
}
|
||||
}
|
||||
|
||||
core_windows {
|
||||
VS_VERSION=140
|
||||
VS_DEBUG=
|
||||
|
||||
@ -291,8 +291,8 @@ generateOut()
|
||||
$BOOST_SRC/iphonesim-build/stage/lib/libboost_${NAME}.a \
|
||||
-o $SRCDIR/build/ios/lib/libboost_${NAME}.a
|
||||
|
||||
lipo $SRCDIR/build/ios/lib/libboost_${NAME}.a -remove i386 -o $SRCDIR/build/ios/lib/libboost_${NAME}.a
|
||||
lipo $SRCDIR/build/ios/lib/libboost_${NAME}.a -remove armv4t -o $SRCDIR/build/ios/lib/libboost_${NAME}.a
|
||||
#lipo $SRCDIR/build/ios/lib/libboost_${NAME}.a -remove i386 -o $SRCDIR/build/ios/lib/libboost_${NAME}.a
|
||||
#lipo $SRCDIR/build/ios/lib/libboost_${NAME}.a -remove armv4t -o $SRCDIR/build/ios/lib/libboost_${NAME}.a
|
||||
done
|
||||
|
||||
doneSection
|
||||
|
||||
@ -327,3 +327,13 @@ SOURCES += \
|
||||
../zdeflate.cpp \
|
||||
../zinflate.cpp \
|
||||
../zlib.cpp
|
||||
|
||||
# OfficeCryptReader
|
||||
include($$CORE_ROOT_DIR/Common/3dParty/boost/boost.pri)
|
||||
HEADERS += \
|
||||
$$CORE_ROOT_DIR/OfficeCryptReader/source/ECMACryptFile.h \
|
||||
$$CORE_ROOT_DIR/OfficeCryptReader/source/CryptTransform.h
|
||||
|
||||
SOURCES += \
|
||||
$$CORE_ROOT_DIR/OfficeCryptReader/source/ECMACryptFile.cpp \
|
||||
$$CORE_ROOT_DIR/OfficeCryptReader/source/CryptTransform.cpp
|
||||
|
||||
2
Common/3dParty/googletest/.gitignore
vendored
Normal file
2
Common/3dParty/googletest/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
googletest/
|
||||
build/
|
||||
12
Common/3dParty/googletest/googletest.pri
Normal file
12
Common/3dParty/googletest/googletest.pri
Normal file
@ -0,0 +1,12 @@
|
||||
CORE_GTEST_PATH=$$PWD/googletest/googletest
|
||||
|
||||
CONFIG += c++14
|
||||
|
||||
CORE_GTEST_PATH_INCLUDE = $$CORE_GTEST_PATH/include
|
||||
|
||||
INCLUDEPATH += $$CORE_GTEST_PATH
|
||||
INCLUDEPATH += $$CORE_GTEST_PATH_INCLUDE
|
||||
|
||||
SOURCES += \
|
||||
$$CORE_GTEST_PATH/src/gtest-all.cc \
|
||||
$$CORE_GTEST_PATH/src/gtest_main.cc
|
||||
@ -1282,7 +1282,10 @@ namespace NSCSS
|
||||
|
||||
Scale(nValue, enScalingDirection);
|
||||
|
||||
sValueString += std::to_wstring(nValue);
|
||||
sValueString += std::to_wstring(nValue);
|
||||
|
||||
if (!iswdigit(sValueTemp.back()))
|
||||
sValueString += sValueTemp.back();
|
||||
}
|
||||
else
|
||||
sValueString += sValueTemp;
|
||||
|
||||
@ -2023,7 +2023,7 @@ namespace NSCSS
|
||||
if (sValue.empty())
|
||||
return BorderSide();
|
||||
|
||||
const std::vector<std::wstring> arValues = NS_STATIC_FUNCTIONS::GetWordsW(sValue, L" ");
|
||||
const std::vector<std::wstring> arValues = NS_STATIC_FUNCTIONS::GetWordsW(NS_STATIC_FUNCTIONS::NormalizeRGB(sValue), L" ");
|
||||
BorderSide oBorderSide;
|
||||
for (std::wstring sValue : arValues)
|
||||
{
|
||||
|
||||
@ -315,6 +315,26 @@ namespace NSCSS
|
||||
return sValue.empty() ? false : std::all_of(sValue.begin(), sValue.end(), [] (const wchar_t& cChar) { return iswdigit(cChar); });
|
||||
}
|
||||
|
||||
inline std::wstring NormalizeRGB(const std::wstring& wsValue)
|
||||
{
|
||||
std::wstring wsNewValue = wsValue;
|
||||
|
||||
size_t unBegin = 0, unEnd;
|
||||
|
||||
while (std::wstring::npos != (unBegin = wsNewValue.find(L"rgb(", unBegin)))
|
||||
{
|
||||
unEnd = wsNewValue.find(L")", unBegin);
|
||||
|
||||
while ((unBegin = wsNewValue.find(L" ", unBegin)) != std::wstring::npos && unBegin < unEnd)
|
||||
{
|
||||
wsNewValue.replace(unBegin, 1, L",");
|
||||
++unBegin;
|
||||
}
|
||||
}
|
||||
|
||||
return wsNewValue;
|
||||
}
|
||||
|
||||
inline std::wstring ConvertRgbToHex(const std::wstring& sRgbValue)
|
||||
{
|
||||
size_t posFirst = sRgbValue.find_first_of(L"01234567890");
|
||||
|
||||
@ -17,12 +17,12 @@ if not base.is_dir("gumbo-parser"):
|
||||
base.replaceInFile(base_directory + "/gumbo-parser/src/tag.c", "isspace(*c)", "isspace((unsigned char)*c)")
|
||||
|
||||
if not base.is_dir("katana-parser"):
|
||||
base.cmd("git", ["clone", "https://github.com/hackers-painters/katana-parser.git"])
|
||||
base.cmd_in_dir("katana-parser", "git", ["checkout", "499118d32c387a893fdc9dda2cb95eee524bdb9b"])
|
||||
base.cmd("git", ["clone", "https://github.com/jasenhuang/katana-parser.git"])
|
||||
base.cmd_in_dir("katana-parser", "git", ["checkout", "be6df458d4540eee375c513958dcb862a391cdd1"])
|
||||
|
||||
# fix katana
|
||||
base.replaceInFile(base_directory + "/katana-parser/src/tokenizer.c", "static inline bool katana_is_html_space(char c);", "static inline bool2 katana_is_html_space(char c);")
|
||||
base.replaceInFile(base_directory + "/katana-parser/src/tokenizer.c", "inline bool katana_is_html_space(char c)", "static inline bool katana_is_html_space(char c)")
|
||||
base.replaceInFile(base_directory + "/katana-parser/src/tokenizer.c", "static inline bool2 katana_is_html_space(char c);", "static inline bool katana_is_html_space(char c);")
|
||||
base.replaceInFile(base_directory + "/katana-parser/src/parser.c", "katanaget_text(parser->scanner)", "/*katanaget_text(parser->scanner)*/\"error\"")
|
||||
|
||||
base.replaceInFile(base_directory + "/katana-parser/src/parser.c", "#define KATANA_PARSER_STRING(literal) (KatanaParserString){", "#define KATANA_PARSER_STRING(literal) {")
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -27,9 +27,18 @@ core_mac {
|
||||
core_ios {
|
||||
INCLUDEPATH += $$PWD/$$CORE_BUILDS_PLATFORM_PREFIX/build/include
|
||||
|
||||
LIBS += $$PWD/$$CORE_BUILDS_PLATFORM_PREFIX/build/libicudata.a
|
||||
LIBS += $$PWD/$$CORE_BUILDS_PLATFORM_PREFIX/build/libicui18n.a
|
||||
LIBS += $$PWD/$$CORE_BUILDS_PLATFORM_PREFIX/build/libicuuc.a
|
||||
ICU_LIBS_PATH_IOS = $$PWD/$$CORE_BUILDS_PLATFORM_PREFIX/build
|
||||
bundle_xcframeworks {
|
||||
xcframework_platform_ios_simulator {
|
||||
ICU_LIBS_PATH_IOS = $$PWD/$$CORE_BUILDS_PLATFORM_PREFIX/build_xc/simulator
|
||||
} else {
|
||||
ICU_LIBS_PATH_IOS = $$PWD/$$CORE_BUILDS_PLATFORM_PREFIX/build_xc
|
||||
}
|
||||
}
|
||||
|
||||
LIBS += $$ICU_LIBS_PATH_IOS/libicudata.a
|
||||
LIBS += $$ICU_LIBS_PATH_IOS/libicui18n.a
|
||||
LIBS += $$ICU_LIBS_PATH_IOS/libicuuc.a
|
||||
}
|
||||
|
||||
core_android {
|
||||
|
||||
@ -199,20 +199,25 @@ function build() {
|
||||
|
||||
echo "preparing $1 toolchain"
|
||||
|
||||
export BUILD_DIR="${PWD}/build-${2}"
|
||||
export BUILD_DIR="${PWD}/build-${5}"
|
||||
|
||||
SDKROOT="$(xcodebuild -version -sdk $4 | grep -E '^Path' | sed 's/Path: //')"
|
||||
ARCH=$2
|
||||
|
||||
ICU_FLAGS="-I$ICU_SOURCE/common/ -I$ICU_SOURCE/tools/tzcode/ "
|
||||
|
||||
IOS_MIN_VER = "-miphoneos-version-min=11.0"
|
||||
if [ "$4" = "iphonesimulator" ]; then
|
||||
IOS_MIN_VER = "-mios-simulator-version-min=11.0"
|
||||
fi;
|
||||
|
||||
export ADDITION_FLAG="-DIOS_SYSTEM_FIX"
|
||||
|
||||
export CXX="$(xcrun -find clang++)"
|
||||
export CC="$(xcrun -find clang)"
|
||||
export CFLAGS="-fembed-bitcode -isysroot $SDKROOT -I$SDKROOT/usr/include/ -I./include/ -arch $ARCH -miphoneos-version-min=9.0 $ICU_FLAGS $CFLAGS ${ADDITION_FLAG}"
|
||||
export CXXFLAGS="${CXXFLAGS} -fembed-bitcode -stdlib=libc++ -isysroot $SDKROOT -I$SDKROOT/usr/include/ -I./include/ -arch $ARCH -miphoneos-version-min=9.0 $ICU_FLAGS ${ADDITION_FLAG}"
|
||||
export LDFLAGS="-fembed-bitcode -stdlib=libc++ -L$SDKROOT/usr/lib/ -isysroot $SDKROOT -Wl,-dead_strip -miphoneos-version-min=9.0 -lstdc++ ${ADDITION_FLAG}"
|
||||
export CFLAGS="-fembed-bitcode -isysroot $SDKROOT -I$SDKROOT/usr/include/ -I./include/ -arch $ARCH $IOS_MIN_VER $ICU_FLAGS $CFLAGS ${ADDITION_FLAG}"
|
||||
export CXXFLAGS="${CXXFLAGS} -fembed-bitcode -stdlib=libc++ -isysroot $SDKROOT -I$SDKROOT/usr/include/ -I./include/ -arch $ARCH $IOS_MIN_VER $ICU_FLAGS ${ADDITION_FLAG}"
|
||||
export LDFLAGS="-fembed-bitcode -stdlib=libc++ -L$SDKROOT/usr/lib/ -isysroot $SDKROOT -Wl,-dead_strip $IOS_MIN_VER -lstdc++ ${ADDITION_FLAG}"
|
||||
|
||||
mkdir -p ${BUILD_DIR}
|
||||
cd ${BUILD_DIR}
|
||||
@ -221,7 +226,6 @@ function build() {
|
||||
|
||||
make clean
|
||||
make -j4
|
||||
make install
|
||||
|
||||
cd ..
|
||||
}
|
||||
@ -232,19 +236,25 @@ echo "------------------------------------------------------"
|
||||
echo " ICU build armv7 libraries"
|
||||
echo "------------------------------------------------------"
|
||||
|
||||
build "armv7" "armv7" "armv7-apple-darwin" "iphoneos"
|
||||
build "armv7" "armv7" "armv7-apple-darwin" "iphoneos" "armv7"
|
||||
|
||||
echo "------------------------------------------------------"
|
||||
echo " ICU build arm64 libraries"
|
||||
echo "------------------------------------------------------"
|
||||
|
||||
build "arm64" "arm64" "aarch64-apple-darwin" "iphoneos"
|
||||
build "arm64" "arm64" "aarch64-apple-darwin" "iphoneos" "arm64"
|
||||
|
||||
echo "------------------------------------------------------"
|
||||
echo " ICU combining x86_64 libraries"
|
||||
echo "------------------------------------------------------"
|
||||
|
||||
build "x86_64" "x86_64" "x86_64-apple-darwin" "iphonesimulator"
|
||||
build "x86_64" "x86_64" "x86_64-apple-darwin" "iphonesimulator" "x86_64"
|
||||
|
||||
echo "------------------------------------------------------"
|
||||
echo " ICU combining arm64 (simulator) libraries"
|
||||
echo "------------------------------------------------------"
|
||||
|
||||
build "arm64" "arm64" "aarch64-apple-darwin" "iphonesimulator" "sim-arm64"
|
||||
|
||||
cd ..
|
||||
|
||||
@ -259,13 +269,31 @@ function buildUniversal() {
|
||||
"${PWD}/ios/build-armv7/lib/$1armv7.a"
|
||||
}
|
||||
|
||||
function buildUniversalXC() {
|
||||
lipo -create -output "${PWD}/ios/build_xc/$1.a" \
|
||||
"${PWD}/ios/build-arm64/lib/$1arm64.a"
|
||||
|
||||
lipo -create -output "${PWD}/ios/build_xc/simulator/${1}.a" \
|
||||
"${PWD}/ios/build-sim-arm64/lib/$1arm64.a" \
|
||||
"${PWD}/ios/build-x86_64/lib/$1x86_64.a"
|
||||
}
|
||||
|
||||
mkdir -p build
|
||||
mkdir -p ios/build
|
||||
mkdir -p ios/build_xc
|
||||
mkdir -p ios/build_xc/simulator
|
||||
mkdir -p ios/build/include
|
||||
mkdir -p ios/build_xc/include
|
||||
mkdir -p ios/build/include/unicode
|
||||
mkdir -p ios/build_xc/include/unicode
|
||||
|
||||
cp ${ICU_SOURCE}/common/unicode/*.h ios/build/include/unicode
|
||||
cp ${ICU_SOURCE}/common/unicode/*.h ios/build_xc/include/unicode
|
||||
|
||||
buildUniversal "libicuuc"
|
||||
buildUniversal "libicui18n"
|
||||
buildUniversal "libicudata"
|
||||
|
||||
buildUniversalXC "libicuuc"
|
||||
buildUniversalXC "libicui18n"
|
||||
buildUniversalXC "libicudata"
|
||||
|
||||
1
Common/3dParty/ixwebsocket/.gitignore
vendored
1
Common/3dParty/ixwebsocket/.gitignore
vendored
@ -2,3 +2,4 @@
|
||||
# Except this file
|
||||
!.gitignore
|
||||
!ixwebsocket.pri
|
||||
!openssl.pri
|
||||
|
||||
@ -1,22 +1,18 @@
|
||||
OPENSSL_LIBS_DIRECTORY = $$PWD/../openssl/build/$$CORE_BUILDS_PLATFORM_PREFIX/lib
|
||||
|
||||
core_android {
|
||||
|
||||
ABI_PATH = $$replace(CORE_BUILDS_PLATFORM_PREFIX, "android_", "")
|
||||
contains(ABI_PATH, "armv7" ) {
|
||||
ABI_PATH = $$replace(ABI_PATH, "armv7", "armeabi-v7a")
|
||||
}
|
||||
contains(ABI_PATH, "arm64_v8a" ) {
|
||||
ABI_PATH = $$replace(ABI_PATH, "arm64_v8a", "arm64-v8a")
|
||||
}
|
||||
ABI_PATH = $$replace(ABI_PATH, "armv7", "armeabi-v7a")
|
||||
}
|
||||
contains(ABI_PATH, "arm64_v8a" ) {
|
||||
ABI_PATH = $$replace(ABI_PATH, "arm64_v8a", "arm64-v8a")
|
||||
}
|
||||
|
||||
INSTALL_FOLDER = $$PWD/IXWebSocket/build/android/$$ABI_PATH
|
||||
exists($$INSTALL_FOLDER/usr):INSTALL_FOLDER=$$INSTALL_FOLDER/usr
|
||||
|
||||
INCLUDEPATH += $$INSTALL_FOLDER/include
|
||||
LIBS += $$INSTALL_FOLDER/lib/libixwebsocket.a
|
||||
|
||||
OPENSSL_LIBS_DIRECTORY = $$PWD/../openssl/build/android/$$ABI_PATH/lib
|
||||
}
|
||||
|
||||
core_ios {
|
||||
@ -24,8 +20,6 @@ core_ios {
|
||||
INCLUDEPATH += $$PWD/IXWebSocket/build/ios/ixwebsocket-universal/include
|
||||
LIBS += $$PWD/IXWebSocket/build/ios/ixwebsocket-universal/lib/libixwebsocket.a
|
||||
|
||||
OPENSSL_LIBS_DIRECTORY = $$PWD/../openssl/build/ios/openssl-universal/lib
|
||||
|
||||
}
|
||||
|
||||
core_linux {
|
||||
@ -57,11 +51,3 @@ core_windows {
|
||||
LIBS += -lshlwapi
|
||||
|
||||
}
|
||||
|
||||
core_windows {
|
||||
LIBS += $$OPENSSL_LIBS_DIRECTORY/libssl.lib
|
||||
LIBS += $$OPENSSL_LIBS_DIRECTORY/libcrypto.lib
|
||||
} else {
|
||||
LIBS += $$OPENSSL_LIBS_DIRECTORY/libssl.a
|
||||
LIBS += $$OPENSSL_LIBS_DIRECTORY/libcrypto.a
|
||||
}
|
||||
|
||||
@ -83,19 +83,19 @@ function configure_make() {
|
||||
|
||||
if [[ "${ARCH}" == "x86_64" ]]; then
|
||||
|
||||
./Configure android-x86_64 --prefix="${PREFIX_DIR}" enable-ssl3 enable-ssl3-method
|
||||
./Configure android-x86_64 --prefix="${PREFIX_DIR}" no-shared no-tests enable-ssl3 enable-ssl3-method enable-md2 no-asm
|
||||
|
||||
elif [[ "${ARCH}" == "x86" ]]; then
|
||||
|
||||
./Configure android-x86 --prefix="${PREFIX_DIR}" enable-ssl3 enable-ssl3-method
|
||||
./Configure android-x86 --prefix="${PREFIX_DIR}" no-shared no-tests enable-ssl3 enable-ssl3-method enable-md2 no-asm
|
||||
|
||||
elif [[ "${ARCH}" == "arm" ]]; then
|
||||
|
||||
./Configure android-arm --prefix="${PREFIX_DIR}" enable-ssl3 enable-ssl3-method
|
||||
./Configure android-arm --prefix="${PREFIX_DIR}" no-shared no-tests enable-ssl3 enable-ssl3-method enable-md2 no-asm
|
||||
|
||||
elif [[ "${ARCH}" == "arm64" ]]; then
|
||||
|
||||
./Configure android-arm64 --prefix="${PREFIX_DIR}" enable-ssl3 enable-ssl3-method
|
||||
./Configure android-arm64 --prefix="${PREFIX_DIR}" no-shared no-tests enable-ssl3 enable-ssl3-method enable-md2 no-asm
|
||||
|
||||
else
|
||||
log_error "not support" && exit 1
|
||||
@ -103,6 +103,9 @@ function configure_make() {
|
||||
|
||||
log_info "make $ABI start..."
|
||||
|
||||
sed -ie 's/LIB_CFLAGS=/LIB_CFLAGS=-fvisibility=hidden /g' ./Makefile
|
||||
sed -ie 's/LIB_CXXFLAGS=/LIB_CXXFLAGS=-fvisibility=hidden /g' ./Makefile
|
||||
|
||||
make clean >"${OUTPUT_ROOT}/log/${ABI}.log"
|
||||
if make -j$(get_cpu_count) >>"${OUTPUT_ROOT}/log/${ABI}.log" 2>&1; then
|
||||
make install_sw >>"${OUTPUT_ROOT}/log/${ABI}.log" 2>&1
|
||||
|
||||
@ -18,9 +18,9 @@ source ./build-common.sh
|
||||
|
||||
export PLATFORM_TYPE="iOS"
|
||||
export IOS_MIN_TARGET="10.0"
|
||||
export ARCHS=("armv7" "arm64" "i386" "x86_64")
|
||||
export SDKS=("iphoneos" "iphoneos" "iphonesimulator" "iphonesimulator")
|
||||
export PLATFORMS=("iPhoneOS" "iPhoneOS" "iPhoneSimulator" "iPhoneSimulator")
|
||||
export ARCHS=("armv7" "arm64" "i386" "x86_64" "sim_arm64")
|
||||
export SDKS=("iphoneos" "iphoneos" "iphonesimulator" "iphonesimulator" "iphonesimulator")
|
||||
export PLATFORMS=("iPhoneOS" "iPhoneOS" "iPhoneSimulator" "iPhoneSimulator" "iphonesimulator")
|
||||
|
||||
# for test !!!
|
||||
# export ARCHS=("armv7")
|
||||
@ -45,6 +45,9 @@ function get_ios_arch() {
|
||||
x86_64)
|
||||
echo "x86-64"
|
||||
;;
|
||||
sim_arm64)
|
||||
echo "sim-arm64"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
@ -66,6 +69,9 @@ function ios_get_build_host() {
|
||||
x86-64)
|
||||
echo "x86_64-ios-darwin"
|
||||
;;
|
||||
sim-arm64)
|
||||
echo "aarch64-ios-darwin"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
@ -111,6 +117,13 @@ function set_ios_cpu_feature() {
|
||||
export LDFLAGS="-arch x86_64 -target x86_64-ios-darwin -march=x86-64 -isysroot ${sysroot} -L${sysroot}/usr/lib "
|
||||
export CXXFLAGS="-std=c++11 -arch x86_64 -target x86_64-ios-darwin -march=x86-64 -msse4.2 -mpopcnt -m64 -mtune=intel -fstrict-aliasing -DIOS -mios-simulator-version-min=${ios_min_target} -I${sysroot}/usr/include"
|
||||
;;
|
||||
sim-arm64)
|
||||
export CC="xcrun -sdk iphonesimulator clang -arch arm64"
|
||||
export CXX="xcrun -sdk iphonesimulator clang++ -arch arm64"
|
||||
export CFLAGS="-arch arm64 -target aarch64-apple-darwin -march=armv8 -mcpu=generic -Wno-unused-function -fstrict-aliasing -Oz -Wno-ignored-optimization-argument -DIOS -isysroot ${sysroot} -fembed-bitcode -mios-simulator-version-min=${ios_min_target} -I${sysroot}/usr/include"
|
||||
export LDFLAGS="-arch arm64 -target aaarch64-apple-darwin -march=armv8 -isysroot ${sysroot} -fembed-bitcode -L${sysroot}/usr/lib "
|
||||
export CXXFLAGS="-std=c++11 -arch arm64 -target aarch64-apple-darwin -march=armv8 -mcpu=generic -fstrict-aliasing -fembed-bitcode -DIOS -mios-simulator-version-min=${ios_min_target} -I${sysroot}/usr/include"
|
||||
;;
|
||||
*)
|
||||
log_error "not support" && exit 1
|
||||
;;
|
||||
|
||||
@ -38,6 +38,7 @@ echo TOOLS_ROOT=${TOOLS_ROOT}
|
||||
LIB_VERSION="OpenSSL_1_1_1d"
|
||||
LIB_NAME="openssl-1.1.1d"
|
||||
LIB_DEST_DIR="${pwd_path}/build/ios/openssl-universal/lib"
|
||||
LIB_DEST_DIR_XC="${pwd_path}/build/ios/openssl-xc/lib"
|
||||
|
||||
init_log_color
|
||||
|
||||
@ -53,11 +54,17 @@ rm -rf "${LIB_DEST_DIR}" "${LIB_NAME}"
|
||||
|
||||
function configure_make() {
|
||||
|
||||
ARCH=$1
|
||||
ARCH_NAME=$1
|
||||
ARCH=$ARCH_NAME
|
||||
|
||||
if [ "$ARCH" = "sim_arm64" ]; then
|
||||
ARCH = "arm64"
|
||||
fi;
|
||||
|
||||
SDK=$2
|
||||
PLATFORM=$3
|
||||
|
||||
log_info "configure $ARCH start..."
|
||||
log_info "configure $ARCH_NAME start..."
|
||||
|
||||
if [ -d "${LIB_NAME}" ]; then
|
||||
rm -fr "${LIB_NAME}"
|
||||
@ -75,56 +82,62 @@ function configure_make() {
|
||||
exit -1
|
||||
fi
|
||||
|
||||
PREFIX_DIR="${pwd_path}/build/ios/${ARCH}"
|
||||
PREFIX_DIR="${pwd_path}/build/ios/${ARCH_NAME}"
|
||||
if [ -d "${PREFIX_DIR}" ]; then
|
||||
rm -fr "${PREFIX_DIR}"
|
||||
fi
|
||||
mkdir -p "${PREFIX_DIR}"
|
||||
|
||||
OUTPUT_ROOT=${TOOLS_ROOT}/build/ios/${ARCH}
|
||||
OUTPUT_ROOT=${TOOLS_ROOT}/build/ios/${ARCH_NAME}
|
||||
mkdir -p ${OUTPUT_ROOT}/log
|
||||
|
||||
set_ios_cpu_feature "openssl" "${ARCH}" "${IOS_MIN_TARGET}" "${CROSS_TOP}/SDKs/${CROSS_SDK}"
|
||||
set_ios_cpu_feature "openssl" "${ARCH_NAME}" "${IOS_MIN_TARGET}" "${CROSS_TOP}/SDKs/${CROSS_SDK}"
|
||||
|
||||
ios_printf_global_params "$ARCH" "$SDK" "$PLATFORM" "$PREFIX_DIR" "$OUTPUT_ROOT"
|
||||
ios_printf_global_params "$ARCH_NAME" "$SDK" "$PLATFORM" "$PREFIX_DIR" "$OUTPUT_ROOT"
|
||||
|
||||
unset IPHONEOS_DEPLOYMENT_TARGET
|
||||
|
||||
if [[ "${ARCH}" == "x86_64" ]]; then
|
||||
if [[ "${ARCH_NAME}" == "x86_64" ]]; then
|
||||
|
||||
# openssl1.1.1d can be set normally, 1.1.0f does not take effect
|
||||
./Configure darwin64-x86_64-cc no-shared --prefix="${PREFIX_DIR}"
|
||||
./Configure darwin64-x86_64-cc no-shared --prefix="${PREFIX_DIR}" enable-md2
|
||||
sed -i -e 's/-mtune=intel//g' "Makefile"
|
||||
|
||||
elif [[ "${ARCH}" == "armv7" ]]; then
|
||||
elif [[ "${ARCH_NAME}" == "armv7" ]]; then
|
||||
|
||||
# openssl1.1.1d can be set normally, 1.1.0f does not take effect
|
||||
./Configure iphoneos-cross no-shared --prefix="${PREFIX_DIR}" enable-ssl3 enable-ssl3-method
|
||||
./Configure iphoneos-cross no-shared --prefix="${PREFIX_DIR}" enable-ssl3 enable-ssl3-method enable-md2
|
||||
sed -ie "s!-fno-common!-fno-common -fembed-bitcode !" "Makefile"
|
||||
|
||||
elif [[ "${ARCH}" == "arm64" ]]; then
|
||||
elif [[ "${ARCH_NAME}" == "arm64" ]]; then
|
||||
|
||||
# openssl1.1.1d can be set normally, 1.1.0f does not take effect
|
||||
./Configure iphoneos-cross no-shared --prefix="${PREFIX_DIR}" enable-ssl3 enable-ssl3-method
|
||||
./Configure iphoneos-cross no-shared --prefix="${PREFIX_DIR}" enable-ssl3 enable-ssl3-method enable-md2
|
||||
sed -ie "s!-fno-common!-fno-common -fembed-bitcode !" "Makefile"
|
||||
|
||||
elif [[ "${ARCH}" == "i386" ]]; then
|
||||
elif [[ "${ARCH_NAME}" == "i386" ]]; then
|
||||
|
||||
# openssl1.1.1d can be set normally, 1.1.0f does not take effect
|
||||
./Configure darwin-i386-cc no-shared --prefix="${PREFIX_DIR}" enable-ssl3 enable-ssl3-method
|
||||
./Configure darwin-i386-cc no-shared --prefix="${PREFIX_DIR}" enable-ssl3 enable-ssl3-method enable-md2
|
||||
sed -ie "s!-fno-common!-fno-common -fembed-bitcode !" "Makefile"
|
||||
sed -i -e 's/-mtune=intel//g' "Makefile"
|
||||
|
||||
elif [[ "${ARCH_NAME}" == "sim_arm64" ]]; then
|
||||
|
||||
# openssl1.1.1d can be set normally, 1.1.0f does not take effect
|
||||
./Configure iphoneos-cross no-shared --prefix="${PREFIX_DIR}" enable-ssl3 enable-ssl3-method enable-md2
|
||||
sed -ie "s!-fno-common!-fno-common -fembed-bitcode !" "Makefile"
|
||||
|
||||
else
|
||||
log_error "not support" && exit 1
|
||||
fi
|
||||
|
||||
log_info "make $ARCH start..."
|
||||
|
||||
make clean >"${OUTPUT_ROOT}/log/${ARCH}.log"
|
||||
if make -j8 >>"${OUTPUT_ROOT}/log/${ARCH}.log" 2>&1; then
|
||||
make install_sw >>"${OUTPUT_ROOT}/log/${ARCH}.log" 2>&1
|
||||
make install_ssldirs >>"${OUTPUT_ROOT}/log/${ARCH}.log" 2>&1
|
||||
make clean >"${OUTPUT_ROOT}/log/${ARCH_NAME}.log"
|
||||
if make -j8 >>"${OUTPUT_ROOT}/log/${ARCH_NAME}.log" 2>&1; then
|
||||
make install_sw >>"${OUTPUT_ROOT}/log/${ARCH_NAME}.log" 2>&1
|
||||
make install_ssldirs >>"${OUTPUT_ROOT}/log/${ARCH_NAME}.log" 2>&1
|
||||
fi
|
||||
|
||||
popd
|
||||
@ -143,28 +156,36 @@ log_info "lipo start..."
|
||||
|
||||
function lipo_library() {
|
||||
LIB_SRC=$1
|
||||
LIB_DST=$2
|
||||
LIB_PATHS=("${ARCHS[@]/#/${pwd_path}/build/ios/}")
|
||||
LIB_PATHS=("${LIB_PATHS[@]/%//lib/${LIB_SRC}}")
|
||||
lipo ${LIB_PATHS[@]} -create -output "${LIB_DST}"
|
||||
lipo -create -output "${LIB_DEST_DIR}/${LIB_SRC}.a" \
|
||||
"${pwd_path}/build/ios/arm64/lib/${LIB_SRC}.a" \
|
||||
"${pwd_path}/build/ios/armv7/lib/${LIB_SRC}.a" \
|
||||
"${pwd_path}/build/ios/x86_64/lib/${LIB_SRC}.a"
|
||||
}
|
||||
|
||||
function lipo_library_xc() {
|
||||
LIB_SRC=$1
|
||||
lipo -create -output "${LIB_DEST_DIR_XC}/${LIB_SRC}.a" \
|
||||
"${pwd_path}/build/ios/arm64/lib/${LIB_SRC}.a"
|
||||
|
||||
lipo -create -output "${LIB_DEST_DIR_XC}/../simulator/lib/${LIB_SRC}.a" \
|
||||
"${pwd_path}/build/ios/sim_arm64/lib/${LIB_SRC}.a" \
|
||||
"${pwd_path}/build/ios/x86_64/lib/${LIB_SRC}.a"
|
||||
}
|
||||
|
||||
function copy_include() {
|
||||
DST=$1
|
||||
if [ -d "${pwd_path}/build/ios/x86_64/include" ]; then
|
||||
cp -r "${pwd_path}/build/ios/x86_64/include" "${DST}"
|
||||
elif [ -d "${pwd_path}/build/ios/armv7/include" ]; then
|
||||
cp -r "${pwd_path}/build/ios/armv7/include" "${DST}"
|
||||
elif [ -d "${pwd_path}/build/ios/arm64/include" ]; then
|
||||
cp -r "${pwd_path}/build/ios/arm64/include" "${DST}"
|
||||
elif [ -d "${pwd_path}/build/ios/i386/include" ]; then
|
||||
cp -r "${pwd_path}/build/ios/i386/include" "${DST}"
|
||||
fi
|
||||
cp -r "${pwd_path}/build/ios/arm64/include" "${1}"
|
||||
}
|
||||
|
||||
mkdir -p "${LIB_DEST_DIR}"
|
||||
lipo_library "libcrypto.a" "${LIB_DEST_DIR}/libcrypto.a"
|
||||
lipo_library "libssl.a" "${LIB_DEST_DIR}/libssl.a"
|
||||
lipo_library "libcrypto"
|
||||
lipo_library "libssl"
|
||||
copy_include "${LIB_DEST_DIR}/../"
|
||||
|
||||
mkdir -p "${LIB_DEST_DIR_XC}"
|
||||
mkdir -p "${LIB_DEST_DIR_XC}/../simulator/lib"
|
||||
lipo_library_xc "libcrypto"
|
||||
lipo_library_xc "libssl"
|
||||
copy_include "${LIB_DEST_DIR_XC}/../"
|
||||
copy_include "${LIB_DEST_DIR_XC}/../simulator"
|
||||
|
||||
log_info "${PLATFORM_TYPE} ${LIB_NAME} end..."
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
@ -12,7 +12,7 @@
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
@ -12,7 +12,7 @@
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
|
||||
@ -1,14 +1,48 @@
|
||||
OPEN_SSL_PLATFORM=$$CORE_BUILDS_PLATFORM_PREFIX
|
||||
build_xp:OPEN_SSL_PLATFORM=$$join(OPEN_SSL_PLATFORM, OPEN_SSL_PLATFORM, "", "_xp")
|
||||
|
||||
INCLUDEPATH += $$PWD/build/$$OPEN_SSL_PLATFORM/include
|
||||
|
||||
core_windows:LIBS += -L$$PWD/build/$$OPEN_SSL_PLATFORM/lib -llibcrypto -llibssl
|
||||
!core_windows:LIBS += -L$$PWD/build/$$OPEN_SSL_PLATFORM/lib -lcrypto -lssl
|
||||
|
||||
open_ssl_common {
|
||||
DEFINES += COMMON_OPENSSL_BUILDING
|
||||
|
||||
HEADERS += $$PWD/common/common_openssl.h
|
||||
SOURCES += $$PWD/common/common_openssl.cpp
|
||||
}
|
||||
|
||||
OPENSSL_LIBS_DIRECTORY = $$PWD/build/$$OPEN_SSL_PLATFORM/lib
|
||||
|
||||
core_android {
|
||||
|
||||
OPENSSL_ABI_PATH = $$replace(CORE_BUILDS_PLATFORM_PREFIX, "android_", "")
|
||||
contains(OPENSSL_ABI_PATH, "armv7" ) {
|
||||
OPENSSL_ABI_PATH = $$replace(OPENSSL_ABI_PATH, "armv7", "armeabi-v7a")
|
||||
}
|
||||
contains(OPENSSL_ABI_PATH, "arm64_v8a" ) {
|
||||
OPENSSL_ABI_PATH = $$replace(OPENSSL_ABI_PATH, "arm64_v8a", "arm64-v8a")
|
||||
}
|
||||
|
||||
OPENSSL_LIBS_DIRECTORY = $$PWD/build/android/$$OPENSSL_ABI_PATH/lib
|
||||
}
|
||||
|
||||
core_ios {
|
||||
|
||||
OPENSSL_LIBS_DIRECTORY = $$PWD/ios/openssl-universal/lib
|
||||
|
||||
bundle_xcframeworks {
|
||||
xcframework_platform_ios_simulator {
|
||||
OPENSSL_LIBS_DIRECTORY = $$PWD/build/ios/openssl-xc/simulator/lib
|
||||
} else {
|
||||
OPENSSL_LIBS_DIRECTORY = $$PWD/build/ios/openssl-xc/lib
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
core_windows {
|
||||
LIBS += $$OPENSSL_LIBS_DIRECTORY/libssl.lib
|
||||
LIBS += $$OPENSSL_LIBS_DIRECTORY/libcrypto.lib
|
||||
} else {
|
||||
LIBS += $$OPENSSL_LIBS_DIRECTORY/libssl.a
|
||||
LIBS += $$OPENSSL_LIBS_DIRECTORY/libcrypto.a
|
||||
}
|
||||
|
||||
INCLUDEPATH += $$OPENSSL_LIBS_DIRECTORY/../include
|
||||
|
||||
@ -537,16 +537,27 @@ std::vector<uint64> AllocTable::follow( uint64 start )
|
||||
if( start >= count() ) return chain;
|
||||
|
||||
uint64 p = start;
|
||||
while( p < count() )
|
||||
{
|
||||
if( p == (uint64)Eof ) break;
|
||||
if( p == (uint64)Bat ) break;
|
||||
if( p == (uint64)MetaBat ) break;
|
||||
if( p >= count() ) break;
|
||||
chain.push_back( p );
|
||||
if( data[p] >= count() ) break;
|
||||
p = data[ p ];
|
||||
}
|
||||
|
||||
std::map<uint64, char> used;
|
||||
used.insert(std::make_pair(start, (char)0));
|
||||
|
||||
while (p < count())
|
||||
{
|
||||
if (p == (uint64)Eof) break;
|
||||
if (p == (uint64)Bat) break;
|
||||
if (p == (uint64)MetaBat) break;
|
||||
if (p >= count()) break;
|
||||
chain.push_back(p);
|
||||
if (data[p] >= count()) break;
|
||||
|
||||
if (used.find(data[p]) != used.end())
|
||||
{
|
||||
//cycle
|
||||
break;
|
||||
}
|
||||
p = data[p];
|
||||
used.insert(std::make_pair(p, (char)0));
|
||||
}
|
||||
|
||||
return chain;
|
||||
}
|
||||
|
||||
1
Common/3dParty/socketio/.gitignore
vendored
Normal file
1
Common/3dParty/socketio/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
socket.io-client-cpp/
|
||||
6
Common/3dParty/v8/.gitignore
vendored
6
Common/3dParty/v8/.gitignore
vendored
@ -1,12 +1,10 @@
|
||||
.cipd
|
||||
.gclient
|
||||
.gclient_entries
|
||||
.gclient*
|
||||
v8
|
||||
depot_tools
|
||||
v8.data
|
||||
v8_xp/.cipd
|
||||
v8_xp/.gclient
|
||||
v8_xp/.gclient_entries
|
||||
v8_xp/.gclient*
|
||||
v8_xp/v8
|
||||
v8_xp/depot_tools
|
||||
v8_xp/v8.data
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
# Based on Ubuntu
|
||||
############################################################
|
||||
# Set the base image to Ubuntu
|
||||
FROM ubuntu:14.04
|
||||
FROM ubuntu:18.04
|
||||
# File Author / Maintainer
|
||||
MAINTAINER onlyoffice.com
|
||||
################## BEGIN INSTALLATION ######################
|
||||
@ -23,12 +23,25 @@ RUN sudo apt-get install -y \
|
||||
curl \
|
||||
wget \
|
||||
xz-utils \
|
||||
zip
|
||||
zip \
|
||||
python2.7 \
|
||||
python3 \
|
||||
autoconf \
|
||||
build-essential \
|
||||
cmake \
|
||||
pkg-config \
|
||||
libc6-i386 \
|
||||
gcc-multilib \
|
||||
software-properties-common
|
||||
WORKDIR /home/docker
|
||||
RUN mkdir v8
|
||||
WORKDIR /home/docker/v8
|
||||
COPY ./build.sh ./build.sh
|
||||
RUN ./build.sh
|
||||
COPY ./build.py ./build.py
|
||||
RUN sudo add-apt-repository -y ppa:deadsnakes/ppa
|
||||
RUN sudo apt install -y python3.8
|
||||
RUN sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1000
|
||||
RUN sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1000
|
||||
RUN python ./build.py
|
||||
RUN zip -r ./build.zip ./build/*
|
||||
RUN ls -al /home/docker/v8/build.zip
|
||||
#End of docker Command
|
||||
199
Common/3dParty/v8/android/build.py
Normal file
199
Common/3dParty/v8/android/build.py
Normal file
@ -0,0 +1,199 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import sys
|
||||
import platform
|
||||
import os
|
||||
import subprocess
|
||||
import glob
|
||||
import shutil
|
||||
import codecs
|
||||
|
||||
# BASE --------------------------------------------
|
||||
def host_platform():
|
||||
ret = platform.system().lower()
|
||||
if (ret == "darwin"):
|
||||
return "mac"
|
||||
return ret
|
||||
|
||||
def get_path(path):
|
||||
if "windows" == host_platform():
|
||||
return path.replace("/", "\\")
|
||||
return path
|
||||
|
||||
def is_file(path):
|
||||
return os.path.isfile(get_path(path))
|
||||
|
||||
def is_dir(path):
|
||||
return os.path.isdir(get_path(path))
|
||||
|
||||
def copy_file(src, dst):
|
||||
if is_file(dst):
|
||||
delete_file(dst)
|
||||
if not is_file(src):
|
||||
print("copy warning [file not exist]: " + src)
|
||||
return
|
||||
return shutil.copy2(get_path(src), get_path(dst))
|
||||
|
||||
def delete_file(path):
|
||||
if not is_file(path):
|
||||
print("delete warning [file not exist]: " + path)
|
||||
return
|
||||
return os.remove(get_path(path))
|
||||
|
||||
def create_dir(path):
|
||||
path2 = get_path(path)
|
||||
if not os.path.exists(path2):
|
||||
os.makedirs(path2)
|
||||
return
|
||||
|
||||
def copy_dir(src, dst):
|
||||
if is_dir(dst):
|
||||
delete_dir(dst)
|
||||
try:
|
||||
shutil.copytree(get_path(src), get_path(dst))
|
||||
except OSError as e:
|
||||
print('Directory not copied. Error: %s' % e)
|
||||
return
|
||||
|
||||
def delete_dir(path):
|
||||
if not is_dir(path):
|
||||
print("delete warning [folder not exist]: " + path)
|
||||
return
|
||||
shutil.rmtree(get_path(path), ignore_errors=True)
|
||||
return
|
||||
|
||||
def cmd(prog, args=[], is_no_errors=False):
|
||||
ret = 0
|
||||
command = prog
|
||||
for arg in args:
|
||||
command += (" \"" + arg + "\"")
|
||||
ret = subprocess.call(command, stderr=subprocess.STDOUT, shell=True)
|
||||
if ret != 0 and True != is_no_errors:
|
||||
sys.exit("Error (" + prog + "): " + str(ret))
|
||||
return ret
|
||||
|
||||
def cmd2(prog, args=[], is_no_errors=False):
|
||||
ret = 0
|
||||
command = get_path(prog)
|
||||
for arg in args:
|
||||
command += (" " + arg)
|
||||
print(command)
|
||||
ret = subprocess.call(command, stderr=subprocess.STDOUT, shell=True)
|
||||
if ret != 0 and True != is_no_errors:
|
||||
sys.exit("Error (" + prog + "): " + str(ret))
|
||||
return ret
|
||||
|
||||
def get_script_dir():
|
||||
test_file = __file__
|
||||
scriptPath = os.path.realpath(test_file)
|
||||
scriptDir = os.path.dirname(scriptPath)
|
||||
return scriptDir
|
||||
|
||||
def get_env(name):
|
||||
return os.getenv(name, "")
|
||||
|
||||
def set_env(name, value):
|
||||
os.environ[name] = value
|
||||
return
|
||||
|
||||
def replaceInFile(path, text, textReplace):
|
||||
if not is_file(path):
|
||||
print("[replaceInFile] file not exist: " + path)
|
||||
return
|
||||
filedata = ""
|
||||
with open(get_path(path), "r") as file:
|
||||
filedata = file.read()
|
||||
filedata = filedata.replace(text, textReplace)
|
||||
delete_file(path)
|
||||
with open(get_path(path), "w") as file:
|
||||
file.write(filedata)
|
||||
return
|
||||
|
||||
# -------------------------------------------------
|
||||
|
||||
def get_android_args(platform, sdk_ver=21):
|
||||
gn_args = ["is_component_build=false",
|
||||
"is_clang=true",
|
||||
"is_debug=false",
|
||||
"use_sysroot=true",
|
||||
"target_os=\\\"android\\\"",
|
||||
"target_cpu=\\\"" + platform + "\\\"",
|
||||
"v8_target_cpu=\\\"" + platform + "\\\"",
|
||||
"v8_enable_i18n_support=true",
|
||||
"v8_static_library=true",
|
||||
"v8_monolithic=true",
|
||||
"use_custom_libcxx=false",
|
||||
"android_ndk_version=\\\"21.1.6352462\\\"",
|
||||
"android_sdk_version=\\\"" + str(sdk_ver) + "\\\"",
|
||||
"clang_use_chrome_plugins=false",
|
||||
"v8_use_external_startup_data=false",
|
||||
"treat_warnings_as_errors=false"]
|
||||
return gn_args
|
||||
|
||||
def deploy_libs():
|
||||
if is_dir("../build"):
|
||||
delete_dir("../build")
|
||||
create_dir("../build")
|
||||
|
||||
platforms = ["arm64", "arm", "x86_64", "x86"]
|
||||
dirs = ["arm64-v8a", "armeabi-v7a", "x86_64", "x86"]
|
||||
|
||||
for index, item in enumerate(platforms):
|
||||
input_dir = "./out.gn/android/" + platforms[index]
|
||||
output_dir = "../build/" + dirs[index]
|
||||
create_dir(output_dir)
|
||||
copy_file(input_dir + "/icudtl.dat", output_dir + "/icudtl.dat")
|
||||
copy_file(input_dir + "/icudtl_extra.dat", output_dir + "/icudtl_extra.dat")
|
||||
copy_file(input_dir + "/obj/libv8_monolith.a", output_dir + "/libv8_monolith.a")
|
||||
|
||||
create_dir("../build/v8")
|
||||
copy_dir("./include", "../build/v8/include")
|
||||
copy_dir("./src", "../build/v8/src")
|
||||
return
|
||||
|
||||
def make():
|
||||
old_env = dict(os.environ)
|
||||
old_cur = os.getcwd()
|
||||
|
||||
base_dir = get_script_dir()
|
||||
|
||||
os.chdir(base_dir)
|
||||
if not is_dir("depot_tools"):
|
||||
cmd("git", ["clone", "https://chromium.googlesource.com/chromium/tools/depot_tools.git"])
|
||||
|
||||
os.environ["PATH"] = base_dir + "/depot_tools" + os.pathsep + os.environ["PATH"]
|
||||
|
||||
if not is_dir("v8"):
|
||||
cmd("./depot_tools/fetch", ["v8"], True)
|
||||
copy_dir("./v8/third_party", "./v8/third_party_new")
|
||||
v8_branch_version = "remotes/branch-heads/8.9"
|
||||
cmd("./depot_tools/gclient", ["sync", "-r", v8_branch_version], True)
|
||||
replaceInFile("./.gclient", "]", "];target_os=['android'];")
|
||||
cmd("gclient", ["sync", "--force"], True)
|
||||
copy_dir("./v8/third_party_new/ninja", "./v8/third_party/ninja")
|
||||
|
||||
if not is_file("v8/third_party/jinja2/tests.py.bak"):
|
||||
copy_file("v8/third_party/jinja2/tests.py", "v8/third_party/jinja2/tests.py.bak")
|
||||
replaceInFile("v8/third_party/jinja2/tests.py", "from collections import Mapping", "try:\n from collections.abc import Mapping\nexcept ImportError:\n from collections import Mapping")
|
||||
|
||||
os.chdir("v8")
|
||||
|
||||
cmd2("gn", ["gen", "out.gn/android/arm64", "--args=\"" + " ".join(get_android_args("arm64")) + "\""])
|
||||
cmd("ninja", ["-C", "out.gn/android/arm64"])
|
||||
|
||||
cmd2("gn", ["gen", "out.gn/android/arm", "--args=\"" + " ".join(get_android_args("arm")) + "\""])
|
||||
cmd("ninja", ["-C", "out.gn/android/arm"])
|
||||
|
||||
cmd2("gn", ["gen", "out.gn/android/x86_64", "--args=\"" + " ".join(get_android_args("x64", 16)) + "\""])
|
||||
cmd("ninja", ["-C", "out.gn/android/x86_64"])
|
||||
|
||||
cmd2("gn", ["gen", "out.gn/android/x86", "--args=\"" + " ".join(get_android_args("x86", 16)) + "\""])
|
||||
cmd("ninja", ["-C", "out.gn/android/x86"])
|
||||
|
||||
deploy_libs()
|
||||
|
||||
os.chdir(old_cur)
|
||||
os.environ.clear()
|
||||
os.environ.update(old_env)
|
||||
|
||||
make()
|
||||
@ -48,7 +48,7 @@ restore_build_gn()
|
||||
|
||||
if [ ! -d "v8" ]
|
||||
then
|
||||
fetch v8
|
||||
./depot_tools/fetch v8
|
||||
cd v8
|
||||
git checkout -b 6.0 branch-heads/6.0
|
||||
|
||||
|
||||
@ -3,23 +3,34 @@ sys.path.append('./../../../../../build_tools/scripts')
|
||||
import base
|
||||
import os
|
||||
|
||||
if ("linux" == base.host_platform()):
|
||||
if not base.is_dir("./build"):
|
||||
base.bash("./build")
|
||||
def build_func():
|
||||
if ("linux" == base.host_platform()):
|
||||
if not base.is_dir("./build"):
|
||||
base.cmd("python", ["./build.py"])
|
||||
|
||||
if ("mac" == base.host_platform()):
|
||||
if not base.is_file("./build.zip"):
|
||||
base.bash("./run_docker")
|
||||
if not base.is_dir("./build"):
|
||||
base.configure_common_apps("./../../../../../build_tools/scripts/base.py")
|
||||
base.extract("./build.zip", "./")
|
||||
if not base.is_dir("v8"):
|
||||
if not base.is_dir("depot_tools"):
|
||||
base.cmd("git", ["clone", "https://chromium.googlesource.com/chromium/tools/depot_tools.git"])
|
||||
old_cur = os.getcwd()
|
||||
os.environ["PATH"] = old_cur + "/depot_tools" + os.pathsep + os.environ["PATH"]
|
||||
base.cmd("./depot_tools/fetch", ["v8"], True)
|
||||
os.chdir(old_cur + "/v8")
|
||||
base.cmd("git", ["checkout", "-b", "6.0", "branch-heads/6.0"], True)
|
||||
os.chdir(old_cur)
|
||||
base.cmd("gclient", ["sync"])
|
||||
if ("mac" == base.host_platform()):
|
||||
if not base.is_file("./build.zip"):
|
||||
base.bash("./run_docker")
|
||||
if not base.is_dir("./build"):
|
||||
base.configure_common_apps("./../../../../../build_tools/scripts/base.py")
|
||||
base.extract("./build.zip", "./")
|
||||
if not base.is_dir("v8"):
|
||||
if not base.is_dir("depot_tools"):
|
||||
base.cmd("git", ["clone", "https://chromium.googlesource.com/chromium/tools/depot_tools.git"])
|
||||
old_cur = os.getcwd()
|
||||
os.environ["PATH"] = old_cur + "/depot_tools" + os.pathsep + os.environ["PATH"]
|
||||
base.cmd("./depot_tools/fetch", ["v8"], True)
|
||||
base.cmd("./depot_tools/gclient", ["sync", "-r", "remotes/branch-heads/8.9"], True)
|
||||
base.cmd("gclient", ["sync", "--force"], True)
|
||||
return
|
||||
|
||||
# build function. for speed we just download the build archive
|
||||
# archive built with this func
|
||||
if False:
|
||||
build_func()
|
||||
else:
|
||||
if not base.is_file("./build.7z"):
|
||||
base.download("http://d2ettrnqo7v976.cloudfront.net/v8/android/build.7z", "./build.7z")
|
||||
base.extract("./build.7z", "./")
|
||||
base.copy_dir("./build/v8", "./v8")
|
||||
base.delete_dir("./build/v8")
|
||||
|
||||
@ -10,6 +10,7 @@ for image in $(docker images --format "{{.ID}}"); do
|
||||
done
|
||||
|
||||
docker rm v8docker
|
||||
docker build . -t v8_docker --build-arg CACHEBUST=0 --no-cache=true
|
||||
#add --progress=plain for full logs from build.sh
|
||||
docker build . -t v8_docker --build-arg CACHEBUST=0 --no-cache=true --platform linux/amd64
|
||||
docker run -d --name v8docker v8_docker:latest
|
||||
docker cp v8docker:/home/docker/v8/build.zip .
|
||||
@ -1,4 +1,6 @@
|
||||
CORE_V8_PATH_OVERRIDE=$$PWD
|
||||
!v8_version_60:CONFIG += v8_version_89
|
||||
|
||||
v8_version_89 {
|
||||
CONFIG += c++14
|
||||
CONFIG += use_v8_monolith
|
||||
@ -6,6 +8,12 @@ v8_version_89 {
|
||||
|
||||
core_win_32:CONFIG += build_platform_32
|
||||
core_linux_32:CONFIG += build_platform_32
|
||||
|
||||
core_android {
|
||||
isEqual(CORE_BUILDS_PLATFORM_PREFIX, android_armv7):CONFIG += build_platform_32
|
||||
isEqual(CORE_BUILDS_PLATFORM_PREFIX, android_x86):CONFIG += build_platform_32
|
||||
}
|
||||
|
||||
!build_platform_32:DEFINES += V8_COMPRESS_POINTERS
|
||||
|
||||
CORE_V8_PATH_OVERRIDE = $$PWD/../v8_89
|
||||
@ -14,6 +22,16 @@ v8_version_89 {
|
||||
CORE_V8_PATH_INCLUDE = $$CORE_V8_PATH_OVERRIDE/v8
|
||||
CORE_V8_PATH_LIBS = $$CORE_V8_PATH_INCLUDE/out.gn/$$CORE_BUILDS_PLATFORM_PREFIX/obj
|
||||
|
||||
core_android {
|
||||
CORE_V8_PATH_INCLUDE = $$PWD/android/v8
|
||||
CORE_V8_PATH_LIBS = $$PWD/android/build
|
||||
|
||||
isEqual(CORE_BUILDS_PLATFORM_PREFIX, android_arm64_v8a):CORE_V8_PATH_LIBS=$$CORE_V8_PATH_LIBS/arm64-v8a
|
||||
isEqual(CORE_BUILDS_PLATFORM_PREFIX, android_armv7): CORE_V8_PATH_LIBS=$$CORE_V8_PATH_LIBS/armeabi-v7a
|
||||
isEqual(CORE_BUILDS_PLATFORM_PREFIX, android_x86): CORE_V8_PATH_LIBS=$$CORE_V8_PATH_LIBS/x86
|
||||
isEqual(CORE_BUILDS_PLATFORM_PREFIX, android_x86_64): CORE_V8_PATH_LIBS=$$CORE_V8_PATH_LIBS/x86_64
|
||||
}
|
||||
|
||||
INCLUDEPATH += \
|
||||
$$CORE_V8_PATH_INCLUDE \
|
||||
$$CORE_V8_PATH_INCLUDE/include
|
||||
@ -23,7 +41,6 @@ core_windows {
|
||||
|
||||
use_v8_monolith {
|
||||
LIBS += -L$$CORE_V8_PATH_LIBS -lv8_monolith
|
||||
core_debug:DEFINES += "_ITERATOR_DEBUG_LEVEL=0"
|
||||
} else {
|
||||
LIBS += -L$$CORE_V8_PATH_LIBS -lv8_base -lv8_libplatform -lv8_libbase -lv8_snapshot -lv8_libsampler
|
||||
LIBS += -L$$CORE_V8_PATH_LIBS/third_party/icu -licui18n -licuuc
|
||||
@ -64,3 +81,7 @@ core_mac {
|
||||
QMAKE_CXXFLAGS += -Wall -Wno-inconsistent-missing-override
|
||||
QMAKE_CFLAGS += -Wall -Wno-inconsistent-missing-override
|
||||
}
|
||||
|
||||
core_android {
|
||||
LIBS += -L$$CORE_V8_PATH_LIBS -lv8_monolith
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
@ -12,7 +12,7 @@
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
@ -12,7 +12,7 @@
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
@ -12,7 +12,7 @@
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
@ -12,7 +12,7 @@
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
@ -12,7 +12,7 @@
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
@ -12,7 +12,7 @@
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
@ -12,7 +12,7 @@
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
@ -524,6 +524,7 @@ public:
|
||||
m_mapLCID2DefCodePage.insert(std::make_pair(0x40E, 1250));
|
||||
m_mapLCID2DefCodePage.insert(std::make_pair(0x40F, 1252));
|
||||
m_mapLCID2DefCodePage.insert(std::make_pair(0x410, 1252));
|
||||
m_mapLCID2DefCodePage.insert(std::make_pair(0x412, 949));
|
||||
m_mapLCID2DefCodePage.insert(std::make_pair(0x413, 1252));
|
||||
m_mapLCID2DefCodePage.insert(std::make_pair(0x414, 1252));
|
||||
m_mapLCID2DefCodePage.insert(std::make_pair(0x415, 1250));
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
@ -12,7 +12,7 @@
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
|
||||
@ -24,6 +24,8 @@ core_linux {
|
||||
SOURCES += $$PWD/src/FileTransporter_curl.cpp
|
||||
}
|
||||
core_mac {
|
||||
use_v8:DEFINES += OLD_MACOS_SYSTEM
|
||||
|
||||
OBJECTIVE_SOURCES += $$PWD/src/FileTransporter_mac.mm
|
||||
LIBS += -framework AppKit
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2021
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
@ -12,7 +12,7 @@
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2021
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
@ -12,7 +12,7 @@
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2021
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
@ -12,7 +12,7 @@
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2021
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
@ -12,7 +12,7 @@
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2021
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
@ -12,7 +12,7 @@
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2021
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
@ -12,7 +12,7 @@
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2021
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
@ -12,7 +12,7 @@
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
@ -49,323 +49,350 @@
|
||||
|
||||
namespace NSNetwork
|
||||
{
|
||||
namespace NSFileTransport
|
||||
{
|
||||
std::string wget_url_validate(const std::string& url)
|
||||
{
|
||||
std::string::size_type pos = 0;
|
||||
const char* url_ptr = url.c_str();
|
||||
while ('-' == *url_ptr++) // '\0' => break
|
||||
++pos;
|
||||
if (*url_ptr == '\0')
|
||||
return "";
|
||||
namespace NSFileTransport
|
||||
{
|
||||
std::string wget_url_validate(const std::string& url)
|
||||
{
|
||||
std::string::size_type pos = 0;
|
||||
const char* url_ptr = url.c_str();
|
||||
while ('-' == *url_ptr++) // '\0' => break
|
||||
++pos;
|
||||
if (*url_ptr == '\0')
|
||||
return "";
|
||||
|
||||
return url.substr(pos);
|
||||
}
|
||||
return url.substr(pos);
|
||||
}
|
||||
|
||||
int download_external(const std::wstring& sUrl, const std::wstring& sOutput, std::function<void(int)> func_onProgress = nullptr, std::function<bool(void)> func_checkAborted = nullptr)
|
||||
{
|
||||
pid_t pid;
|
||||
int nReturnCode = -1;
|
||||
std::string sUrlA = U_TO_UTF8(sUrl);
|
||||
//sUrlA =("\"" + sUrlA + "\"");
|
||||
std::string sOutputA = U_TO_UTF8(sOutput);
|
||||
//sOutputA =("\"" + sOutputA + "\"");
|
||||
int download_external(const std::wstring& sUrl, const std::wstring& sOutput, std::function<void(int)> func_onProgress = nullptr, std::function<bool(void)> func_checkAborted = nullptr)
|
||||
{
|
||||
pid_t pid;
|
||||
int nReturnCode = -1;
|
||||
std::string sUrlA = U_TO_UTF8(sUrl);
|
||||
//sUrlA =("\"" + sUrlA + "\"");
|
||||
std::string sOutputA = U_TO_UTF8(sOutput);
|
||||
//sOutputA =("\"" + sOutputA + "\"");
|
||||
|
||||
if (0 != nReturnCode && NSFile::CFileBinary::Exists(L"/usr/bin/curl"))
|
||||
{
|
||||
int pipefd[2];
|
||||
if(func_onProgress)
|
||||
pipe(pipefd);
|
||||
std::wstring sCurlBin = L"";
|
||||
if (NSFile::CFileBinary::Exists(L"/usr/bin/curl"))
|
||||
sCurlBin = L"/usr/bin/curl";
|
||||
if (NSFile::CFileBinary::Exists(L"/usr/local/bin/curl"))
|
||||
sCurlBin = L"/usr/local/bin/curl";
|
||||
|
||||
pid = fork(); // create child process
|
||||
int status;
|
||||
if (0 != nReturnCode && !sCurlBin.empty())
|
||||
{
|
||||
int pipefd[2];
|
||||
if(func_onProgress)
|
||||
pipe(pipefd);
|
||||
|
||||
switch (pid)
|
||||
{
|
||||
case -1: // error
|
||||
break;
|
||||
pid = fork(); // create child process
|
||||
int status;
|
||||
|
||||
case 0: // child process
|
||||
{
|
||||
const char* nargs[10];
|
||||
nargs[0] = "/usr/bin/curl";
|
||||
nargs[1] = "--url";
|
||||
nargs[2] = sUrlA.c_str();
|
||||
nargs[3] = "--output";
|
||||
nargs[4] = sOutputA.c_str();
|
||||
func_onProgress == NULL ? nargs[5] = "--silent" : nargs[5] = "--progress-bar";
|
||||
nargs[6] = "-L";
|
||||
nargs[7] = "--connect-timeout";
|
||||
nargs[8] = "10";
|
||||
nargs[9] = NULL;
|
||||
switch (pid)
|
||||
{
|
||||
case -1: // error
|
||||
break;
|
||||
|
||||
const char* nenv[3];
|
||||
nenv[0] = "LD_PRELOAD=";
|
||||
nenv[1] = "LD_LIBRARY_PATH=";
|
||||
nenv[2] = NULL;
|
||||
case 0: // child process
|
||||
{
|
||||
std::string sProgramBinA = U_TO_UTF8(sCurlBin);
|
||||
|
||||
if(func_onProgress)
|
||||
{
|
||||
close(pipefd[0]); // close reading end in the child
|
||||
const char* nargs[10];
|
||||
nargs[0] = sProgramBinA.c_str();
|
||||
nargs[1] = "--url";
|
||||
nargs[2] = sUrlA.c_str();
|
||||
nargs[3] = "--output";
|
||||
nargs[4] = sOutputA.c_str();
|
||||
func_onProgress == NULL ? nargs[5] = "--silent" : nargs[5] = "--progress-bar";
|
||||
nargs[6] = "-L";
|
||||
nargs[7] = "--connect-timeout";
|
||||
nargs[8] = "10";
|
||||
nargs[9] = NULL;
|
||||
|
||||
dup2(pipefd[1], 1); // send stdout to the pipe
|
||||
dup2(pipefd[1], 2); // send stderr to the pipe
|
||||
const char* nenv[3];
|
||||
nenv[0] = "LD_PRELOAD=";
|
||||
nenv[1] = "LD_LIBRARY_PATH=";
|
||||
nenv[2] = NULL;
|
||||
|
||||
close(pipefd[1]); // this descriptor is no longer needed
|
||||
}
|
||||
if(func_onProgress)
|
||||
{
|
||||
close(pipefd[0]); // close reading end in the child
|
||||
|
||||
execve("/usr/bin/curl", (char * const *)nargs, (char * const *)nenv);
|
||||
exit(EXIT_SUCCESS);
|
||||
break;
|
||||
}
|
||||
default: // parent process, pid now contains the child pid
|
||||
if(func_onProgress)
|
||||
{
|
||||
close(pipefd[1]);
|
||||
// close the write end of the pipe in the parent
|
||||
size_t size = 81;
|
||||
char buffer[size];
|
||||
std::string str;
|
||||
ssize_t res = 1;
|
||||
std::regex r(R"(\d+(?:\.\d+)?%)");
|
||||
std::smatch sm;
|
||||
std::string percentFull;
|
||||
std::string percent;
|
||||
int percentInt;
|
||||
dup2(pipefd[1], 1); // send stdout to the pipe
|
||||
dup2(pipefd[1], 2); // send stderr to the pipe
|
||||
|
||||
while (1)
|
||||
{
|
||||
if(func_checkAborted && func_checkAborted())
|
||||
{
|
||||
kill(pid, SIGTERM);
|
||||
//while (-1 == waitpid(pid, &status, 0)); // wait for child to complete
|
||||
return nReturnCode;
|
||||
}
|
||||
close(pipefd[1]); // this descriptor is no longer needed
|
||||
}
|
||||
|
||||
str.clear();
|
||||
res = read(pipefd[0], buffer, sizeof(buffer));
|
||||
execve(sProgramBinA.c_str(), (char * const *)nargs, (char * const *)nenv);
|
||||
exit(EXIT_SUCCESS);
|
||||
break;
|
||||
}
|
||||
default: // parent process, pid now contains the child pid
|
||||
if(func_onProgress)
|
||||
{
|
||||
close(pipefd[1]);
|
||||
// close the write end of the pipe in the parent
|
||||
size_t size = 81;
|
||||
char buffer[size];
|
||||
std::string str;
|
||||
ssize_t res = 1;
|
||||
std::regex r(R"(\d+(?:\.\d+)?%)");
|
||||
std::smatch sm;
|
||||
std::string percentFull;
|
||||
std::string percent;
|
||||
int percentInt;
|
||||
|
||||
if(res == 0)
|
||||
break;
|
||||
while (1)
|
||||
{
|
||||
if(func_checkAborted && func_checkAborted())
|
||||
{
|
||||
kill(pid, SIGTERM);
|
||||
//while (-1 == waitpid(pid, &status, 0)); // wait for child to complete
|
||||
return nReturnCode;
|
||||
}
|
||||
|
||||
str.append(buffer);
|
||||
str.clear();
|
||||
res = read(pipefd[0], buffer, sizeof(buffer));
|
||||
|
||||
if(regex_search(str, sm, r))
|
||||
{
|
||||
percentFull = sm.str();
|
||||
percent = percentFull.substr(0, percentFull.find("."));
|
||||
percentInt = std::stoi(percent);
|
||||
if(res == 0)
|
||||
break;
|
||||
|
||||
if(percentInt >= 0 && percentInt <= 100)
|
||||
func_onProgress(percentInt);
|
||||
}
|
||||
str.append(buffer);
|
||||
|
||||
if(str.find("100.0%") != std::string::npos)
|
||||
break;
|
||||
if(regex_search(str, sm, r))
|
||||
{
|
||||
percentFull = sm.str();
|
||||
percent = percentFull.substr(0, percentFull.find("."));
|
||||
percentInt = std::stoi(percent);
|
||||
|
||||
}
|
||||
}
|
||||
else {
|
||||
int waitres;
|
||||
while (1) // wait for child to complete
|
||||
{
|
||||
if(func_checkAborted && func_checkAborted())
|
||||
{
|
||||
kill(pid, SIGTERM);
|
||||
return nReturnCode;
|
||||
}
|
||||
else if((waitres = waitpid(pid, &status, WNOHANG)) > 0)
|
||||
{
|
||||
if (WIFEXITED(status))
|
||||
{
|
||||
nReturnCode = WEXITSTATUS(status);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(percentInt >= 0 && percentInt <= 100)
|
||||
func_onProgress(percentInt);
|
||||
}
|
||||
|
||||
if (0 != nReturnCode && NSFile::CFileBinary::Exists(L"/usr/bin/wget"))
|
||||
{
|
||||
std::string sUrlValidateA = wget_url_validate(sUrlA);
|
||||
if(str.find("100.0%") != std::string::npos)
|
||||
break;
|
||||
|
||||
pid = fork(); // create child process
|
||||
int status;
|
||||
}
|
||||
}
|
||||
else {
|
||||
int waitres;
|
||||
while (1) // wait for child to complete
|
||||
{
|
||||
if(func_checkAborted && func_checkAborted())
|
||||
{
|
||||
kill(pid, SIGTERM);
|
||||
return nReturnCode;
|
||||
}
|
||||
else if((waitres = waitpid(pid, &status, WNOHANG)) > 0)
|
||||
{
|
||||
if (WIFEXITED(status))
|
||||
{
|
||||
nReturnCode = WEXITSTATUS(status);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
switch (pid)
|
||||
{
|
||||
case -1: // error
|
||||
break;
|
||||
std::wstring sWgetBin = L"";
|
||||
if (NSFile::CFileBinary::Exists(L"/usr/bin/wget"))
|
||||
sWgetBin = L"/usr/bin/wget";
|
||||
if (NSFile::CFileBinary::Exists(L"/usr/local/bin/wget"))
|
||||
sWgetBin = L"/usr/local/bin/wget";
|
||||
|
||||
case 0: // child process
|
||||
{
|
||||
const char* nargs[8];
|
||||
nargs[0] = "/usr/bin/wget";
|
||||
nargs[1] = sUrlValidateA.c_str();
|
||||
nargs[2] = "-O";
|
||||
nargs[3] = sOutputA.c_str();
|
||||
nargs[4] = "-q";
|
||||
nargs[5] = "--connect-timeout=10";
|
||||
nargs[6] = "--tries=2";
|
||||
nargs[7] = NULL;
|
||||
if (0 != nReturnCode && !sWgetBin.empty())
|
||||
{
|
||||
std::string sUrlValidateA = wget_url_validate(sUrlA);
|
||||
|
||||
const char* nenv[2];
|
||||
nenv[0] = "LD_PRELOAD=";
|
||||
nenv[1] = NULL;
|
||||
pid = fork(); // create child process
|
||||
int status;
|
||||
|
||||
execve("/usr/bin/wget", (char * const *)nargs, (char * const *)nenv);
|
||||
exit(EXIT_SUCCESS);
|
||||
break;
|
||||
}
|
||||
default: // parent process, pid now contains the child pid
|
||||
int waitres;
|
||||
while (1) // wait for child to complete
|
||||
{
|
||||
if(func_checkAborted && func_checkAborted())
|
||||
{
|
||||
kill(pid, SIGTERM);
|
||||
return nReturnCode;
|
||||
}
|
||||
else if((waitres = waitpid(pid, &status, WNOHANG)) > 0)
|
||||
{
|
||||
if (WIFEXITED(status))
|
||||
{
|
||||
nReturnCode = WEXITSTATUS(status);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
switch (pid)
|
||||
{
|
||||
case -1: // error
|
||||
break;
|
||||
|
||||
if (0 == nReturnCode)
|
||||
{
|
||||
if (!NSFile::CFileBinary::Exists(sOutput))
|
||||
nReturnCode = -1;
|
||||
}
|
||||
case 0: // child process
|
||||
{
|
||||
std::string sProgramBinA = U_TO_UTF8(sWgetBin);
|
||||
|
||||
return nReturnCode;
|
||||
}
|
||||
#ifndef OLD_MACOS_SYSTEM
|
||||
const char* nargs[8];
|
||||
#else
|
||||
const char* nargs[9];
|
||||
#endif
|
||||
|
||||
int uploaddata_external(const std::wstring &sUploadUrl, const unsigned char* cData, const int nSize)
|
||||
{
|
||||
int nReturnCode = -1;
|
||||
NSFile::CFileBinary oFileData;
|
||||
std::wstring tempFileName = NSFile::CFileBinary::GetTempPath() + L"/tmpFileForUpload";
|
||||
oFileData.CreateFileW(tempFileName);
|
||||
oFileData.WriteFile(cData, nSize);
|
||||
oFileData.CloseFile();
|
||||
nargs[0] = sProgramBinA.c_str();
|
||||
nargs[1] = sUrlValidateA.c_str();
|
||||
nargs[2] = "-O";
|
||||
nargs[3] = sOutputA.c_str();
|
||||
nargs[4] = "-q";
|
||||
nargs[5] = "--connect-timeout=10";
|
||||
nargs[6] = "--tries=2";
|
||||
|
||||
std::string sUploadUrlA = U_TO_UTF8(sUploadUrl);
|
||||
#ifndef OLD_MACOS_SYSTEM
|
||||
nargs[7] = NULL;
|
||||
#else
|
||||
nargs[7] = "--no-check-certificate";
|
||||
nargs[8] = NULL;
|
||||
#endif
|
||||
|
||||
const char* nenv[2];
|
||||
nenv[0] = "LD_PRELOAD=";
|
||||
nenv[1] = NULL;
|
||||
|
||||
execve(sProgramBinA.c_str(), (char * const *)nargs, (char * const *)nenv);
|
||||
exit(EXIT_SUCCESS);
|
||||
break;
|
||||
}
|
||||
default: // parent process, pid now contains the child pid
|
||||
int waitres;
|
||||
while (1) // wait for child to complete
|
||||
{
|
||||
if(func_checkAborted && func_checkAborted())
|
||||
{
|
||||
kill(pid, SIGTERM);
|
||||
return nReturnCode;
|
||||
}
|
||||
else if((waitres = waitpid(pid, &status, WNOHANG)) > 0)
|
||||
{
|
||||
if (WIFEXITED(status))
|
||||
{
|
||||
nReturnCode = WEXITSTATUS(status);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (0 == nReturnCode)
|
||||
{
|
||||
if (!NSFile::CFileBinary::Exists(sOutput))
|
||||
nReturnCode = -1;
|
||||
}
|
||||
|
||||
return nReturnCode;
|
||||
}
|
||||
|
||||
int uploaddata_external(const std::wstring &sUploadUrl, const unsigned char* cData, const int nSize)
|
||||
{
|
||||
int nReturnCode = -1;
|
||||
NSFile::CFileBinary oFileData;
|
||||
std::wstring tempFileName = NSFile::CFileBinary::GetTempPath() + L"/tmpFileForUpload";
|
||||
oFileData.CreateFileW(tempFileName);
|
||||
oFileData.WriteFile(cData, nSize);
|
||||
oFileData.CloseFile();
|
||||
|
||||
std::string sUploadUrlA = U_TO_UTF8(sUploadUrl);
|
||||
|
||||
|
||||
if (0 != nReturnCode && NSFile::CFileBinary::Exists(L"/usr/bin/curl"))
|
||||
{
|
||||
pid_t pid = fork(); // create child process
|
||||
int status;
|
||||
if (0 != nReturnCode && NSFile::CFileBinary::Exists(L"/usr/bin/curl"))
|
||||
{
|
||||
pid_t pid = fork(); // create child process
|
||||
int status;
|
||||
|
||||
switch (pid)
|
||||
{
|
||||
case -1: // error
|
||||
break;
|
||||
switch (pid)
|
||||
{
|
||||
case -1: // error
|
||||
break;
|
||||
|
||||
case 0: // child process
|
||||
{
|
||||
//curl --request POST --data-binary "@template_entry.xml" $URL
|
||||
auto pathTofile(std::string("@") + std::string(tempFileName.begin(), tempFileName.end()));
|
||||
const char* nargs[9];
|
||||
nargs[0] = "/usr/bin/curl";
|
||||
nargs[1] = "--request";
|
||||
nargs[2] = "POST";
|
||||
nargs[3] = "--data-binary";
|
||||
nargs[4] = pathTofile.c_str();
|
||||
nargs[5] = sUploadUrlA.c_str();
|
||||
nargs[6] = "--connect-timeout";
|
||||
nargs[7] = "10";
|
||||
nargs[8] = NULL;
|
||||
case 0: // child process
|
||||
{
|
||||
//curl --request POST --data-binary "@template_entry.xml" $URL
|
||||
auto pathTofile(std::string("@") + std::string(tempFileName.begin(), tempFileName.end()));
|
||||
const char* nargs[9];
|
||||
nargs[0] = "/usr/bin/curl";
|
||||
nargs[1] = "--request";
|
||||
nargs[2] = "POST";
|
||||
nargs[3] = "--data-binary";
|
||||
nargs[4] = pathTofile.c_str();
|
||||
nargs[5] = sUploadUrlA.c_str();
|
||||
nargs[6] = "--connect-timeout";
|
||||
nargs[7] = "10";
|
||||
nargs[8] = NULL;
|
||||
|
||||
const char* nenv[3];
|
||||
nenv[0] = "LD_PRELOAD=";
|
||||
nenv[1] = "LD_LIBRARY_PATH=";
|
||||
nenv[2] = NULL;
|
||||
const char* nenv[3];
|
||||
nenv[0] = "LD_PRELOAD=";
|
||||
nenv[1] = "LD_LIBRARY_PATH=";
|
||||
nenv[2] = NULL;
|
||||
|
||||
execve("/usr/bin/curl", (char * const *)nargs, (char * const *)nenv);
|
||||
exit(EXIT_SUCCESS);
|
||||
break;
|
||||
}
|
||||
default: // parent process, pid now contains the child pid
|
||||
while (-1 == waitpid(pid, &status, 0)); // wait for child to complete
|
||||
if (WIFEXITED(status))
|
||||
{
|
||||
nReturnCode = WEXITSTATUS(status);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
NSFile::CFileBinary::Remove(tempFileName);
|
||||
execve("/usr/bin/curl", (char * const *)nargs, (char * const *)nenv);
|
||||
exit(EXIT_SUCCESS);
|
||||
break;
|
||||
}
|
||||
default: // parent process, pid now contains the child pid
|
||||
while (-1 == waitpid(pid, &status, 0)); // wait for child to complete
|
||||
if (WIFEXITED(status))
|
||||
{
|
||||
nReturnCode = WEXITSTATUS(status);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
NSFile::CFileBinary::Remove(tempFileName);
|
||||
|
||||
return nReturnCode;
|
||||
}
|
||||
return nReturnCode;
|
||||
}
|
||||
|
||||
int uploadfile_external(const std::wstring &sUploadUrl, const std::wstring &sUploadFilePath)
|
||||
{
|
||||
int nReturnCode = -1;
|
||||
int uploadfile_external(const std::wstring &sUploadUrl, const std::wstring &sUploadFilePath)
|
||||
{
|
||||
int nReturnCode = -1;
|
||||
|
||||
std::string sUploadUrlA = U_TO_UTF8(sUploadUrl);
|
||||
std::string sUploadFilePathA = U_TO_UTF8(sUploadFilePath);
|
||||
std::string sUploadFileNameA = U_TO_UTF8(NSFile::GetFileName(sUploadFilePath));
|
||||
std::string sUploadUrlA = U_TO_UTF8(sUploadUrl);
|
||||
std::string sUploadFilePathA = U_TO_UTF8(sUploadFilePath);
|
||||
std::string sUploadFileNameA = U_TO_UTF8(NSFile::GetFileName(sUploadFilePath));
|
||||
|
||||
if (0 != nReturnCode && NSFile::CFileBinary::Exists(L"/usr/bin/curl"))
|
||||
{
|
||||
pid_t pid = fork(); // create child process
|
||||
int status;
|
||||
if (0 != nReturnCode && NSFile::CFileBinary::Exists(L"/usr/bin/curl"))
|
||||
{
|
||||
pid_t pid = fork(); // create child process
|
||||
int status;
|
||||
|
||||
switch (pid)
|
||||
{
|
||||
case -1: // error
|
||||
break;
|
||||
switch (pid)
|
||||
{
|
||||
case -1: // error
|
||||
break;
|
||||
|
||||
case 0: // child process
|
||||
{
|
||||
//curl -v -F filename=image.jpg -F upload=@/home/vladimir/Pictures/Test.png $URL
|
||||
auto filename(std::string("filename=") + sUploadFileNameA);
|
||||
auto upload(std::string("upload=@") + sUploadFilePathA);
|
||||
const char* nargs[10];
|
||||
nargs[0] = "/usr/bin/curl";
|
||||
nargs[1] = "-v";
|
||||
nargs[2] = "-F";
|
||||
nargs[3] = filename.c_str();
|
||||
nargs[4] = "-F";
|
||||
nargs[5] = upload.c_str();
|
||||
nargs[6] = sUploadUrlA.c_str();
|
||||
nargs[7] = "--connect-timeout";
|
||||
nargs[8] = "10";
|
||||
nargs[9] = NULL;
|
||||
case 0: // child process
|
||||
{
|
||||
//curl -v -F filename=image.jpg -F upload=@/home/vladimir/Pictures/Test.png $URL
|
||||
auto filename(std::string("filename=") + sUploadFileNameA);
|
||||
auto upload(std::string("upload=@") + sUploadFilePathA);
|
||||
const char* nargs[10];
|
||||
nargs[0] = "/usr/bin/curl";
|
||||
nargs[1] = "-v";
|
||||
nargs[2] = "-F";
|
||||
nargs[3] = filename.c_str();
|
||||
nargs[4] = "-F";
|
||||
nargs[5] = upload.c_str();
|
||||
nargs[6] = sUploadUrlA.c_str();
|
||||
nargs[7] = "--connect-timeout";
|
||||
nargs[8] = "10";
|
||||
nargs[9] = NULL;
|
||||
|
||||
const char* nenv[3];
|
||||
nenv[0] = "LD_PRELOAD=";
|
||||
nenv[1] = "LD_LIBRARY_PATH=";
|
||||
nenv[2] = NULL;
|
||||
const char* nenv[3];
|
||||
nenv[0] = "LD_PRELOAD=";
|
||||
nenv[1] = "LD_LIBRARY_PATH=";
|
||||
nenv[2] = NULL;
|
||||
|
||||
execve("/usr/bin/curl", (char * const *)nargs, (char * const *)nenv);
|
||||
exit(EXIT_SUCCESS);
|
||||
break;
|
||||
}
|
||||
default: // parent process, pid now contains the child pid
|
||||
while (-1 == waitpid(pid, &status, 0)); // wait for child to complete
|
||||
if (WIFEXITED(status))
|
||||
{
|
||||
nReturnCode = WEXITSTATUS(status);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
execve("/usr/bin/curl", (char * const *)nargs, (char * const *)nenv);
|
||||
exit(EXIT_SUCCESS);
|
||||
break;
|
||||
}
|
||||
default: // parent process, pid now contains the child pid
|
||||
while (-1 == waitpid(pid, &status, 0)); // wait for child to complete
|
||||
if (WIFEXITED(status))
|
||||
{
|
||||
nReturnCode = WEXITSTATUS(status);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return nReturnCode;
|
||||
}
|
||||
}
|
||||
return nReturnCode;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2021
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
@ -12,7 +12,7 @@
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
@ -36,6 +36,7 @@
|
||||
#include "../../../kernel_config.h"
|
||||
#include <string>
|
||||
#include <memory>
|
||||
#include <map>
|
||||
|
||||
namespace NSNetwork
|
||||
{
|
||||
@ -44,10 +45,11 @@ namespace NSNetwork
|
||||
class IWebSocket
|
||||
{
|
||||
public:
|
||||
virtual void open() = 0;
|
||||
virtual void open(const std::map<std::string, std::string>& query) = 0;
|
||||
virtual void send(const std::string& message) = 0;
|
||||
virtual void close() = 0;
|
||||
virtual void setUrl(const std::string& url) = 0;
|
||||
virtual bool setReconnectInfo(const int& attemtCount, const int& delay, const int& delayMax) { return false; }
|
||||
virtual ~IWebSocket() {}
|
||||
};
|
||||
|
||||
@ -61,7 +63,7 @@ namespace NSNetwork
|
||||
virtual ~IListener() {}
|
||||
};
|
||||
|
||||
// type : { "ixwebsocket" | "socketRocket" }
|
||||
// type : { "ixwebsocket" | "socketRocket" | "socketio" }
|
||||
KERNEL_DECL std::shared_ptr<IWebSocket> createWebsocket(const std::string& type, std::shared_ptr<IListener> listener, const std::string& url = "");
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2021
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
@ -12,7 +12,7 @@
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
@ -36,7 +36,7 @@ namespace NSNetwork
|
||||
{
|
||||
namespace NSWebSocket
|
||||
{
|
||||
void CIXWebSocket::open()
|
||||
void CIXWebSocket::open(const std::map<std::string, std::string>& query)
|
||||
{
|
||||
ix::SocketTLSOptions tls;
|
||||
tls.caFile = "NONE";
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2021
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
@ -12,7 +12,7 @@
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
@ -55,7 +55,7 @@ namespace NSNetwork
|
||||
|
||||
public:
|
||||
|
||||
virtual void open() override;
|
||||
virtual void open(const std::map<std::string, std::string>& query) override;
|
||||
virtual void send(const std::string& message) override;
|
||||
virtual void close() override;
|
||||
void receive(const ix::WebSocketMessagePtr& msg);
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2021
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
@ -12,7 +12,7 @@
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
@ -40,6 +40,10 @@
|
||||
#include "./socketrocket/socketRocket_internal.h"
|
||||
#endif
|
||||
|
||||
#ifdef USE_IOWEBSOCKET
|
||||
#include "./socketio/socketio_internal.h"
|
||||
#endif
|
||||
|
||||
namespace NSNetwork
|
||||
{
|
||||
namespace NSWebSocket
|
||||
@ -65,6 +69,13 @@ namespace NSNetwork
|
||||
return std::make_shared<CSocketRocket>(url, listener);
|
||||
}
|
||||
#endif
|
||||
#ifdef USE_IOWEBSOCKET
|
||||
if (sType == "socketio")
|
||||
{
|
||||
return std::make_shared<CIOWebSocket>(url, listener);
|
||||
}
|
||||
#endif
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
21
Common/Network/WebSocket/src/socketio/make.py
Executable file
21
Common/Network/WebSocket/src/socketio/make.py
Executable file
@ -0,0 +1,21 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import sys
|
||||
sys.path.append('../../../../../../build_tools/scripts')
|
||||
import base
|
||||
|
||||
file_path = "./socketio_internal_private_no_tls.h"
|
||||
if not base.is_file(file_path):
|
||||
file.delete_file(file_path)
|
||||
|
||||
base.copy_file("./socketio_internal_private.h", file_path)
|
||||
|
||||
header = "///////////////////////////////////////////////////////////\n"
|
||||
header += "/// auto generated file. please use generator (make.py) ///\n"
|
||||
header += "///////////////////////////////////////////////////////////\n"
|
||||
header += "\n#pragma once"
|
||||
|
||||
base.replaceInFile(file_path, "#pragma once", header)
|
||||
base.replaceInFile(file_path, "/socket.io-client-cpp/src/", "/socket.io-client-cpp/src_no_tls/")
|
||||
base.replaceInFile(file_path, "sio::", "sio_no_tls::")
|
||||
base.replaceInFile(file_path, "CIOWebSocket_private_tls", "CIOWebSocket_private_no_tls")
|
||||
74
Common/Network/WebSocket/src/socketio/socketio_internal.cpp
Normal file
74
Common/Network/WebSocket/src/socketio/socketio_internal.cpp
Normal file
@ -0,0 +1,74 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
|
||||
#include "socketio_internal_private.h"
|
||||
#include "socketio_internal_private_no_tls.h"
|
||||
|
||||
namespace NSNetwork
|
||||
{
|
||||
namespace NSWebSocket
|
||||
{
|
||||
CIOWebSocket::CIOWebSocket(const std::string& url, std::shared_ptr<IListener> listener): CWebWorkerBase(url, listener)
|
||||
{
|
||||
if (0 == url.find("http://"))
|
||||
m_internal = new CIOWebSocket_private_no_tls(this);
|
||||
else
|
||||
m_internal = new CIOWebSocket_private_tls(this);
|
||||
}
|
||||
|
||||
void CIOWebSocket::open(const std::map<std::string, std::string>& query)
|
||||
{
|
||||
m_internal->open(query);
|
||||
}
|
||||
|
||||
void CIOWebSocket::send(const std::string& message_str)
|
||||
{
|
||||
m_internal->send(message_str);
|
||||
}
|
||||
|
||||
void CIOWebSocket::close()
|
||||
{
|
||||
m_internal->close();
|
||||
}
|
||||
|
||||
CIOWebSocket::~CIOWebSocket()
|
||||
{
|
||||
delete m_internal;
|
||||
}
|
||||
|
||||
bool CIOWebSocket::setReconnectInfo(const int& attemtCount, const int& delay, const int& delayMax)
|
||||
{
|
||||
m_internal->setReconnectInfo(attemtCount, delay, delayMax);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
91
Common/Network/WebSocket/src/socketio/socketio_internal.h
Normal file
91
Common/Network/WebSocket/src/socketio/socketio_internal.h
Normal file
@ -0,0 +1,91 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _IO_WEB_SOCKET_H_
|
||||
#define _IO_WEB_SOCKET_H_
|
||||
|
||||
#include "../websocketbase.h"
|
||||
#include "../../../../../DesktopEditor/graphics/TemporaryCS.h"
|
||||
|
||||
namespace NSNetwork
|
||||
{
|
||||
namespace NSWebSocket
|
||||
{
|
||||
class CIOWebSocket;
|
||||
class CIOWebSocket_private
|
||||
{
|
||||
protected:
|
||||
CIOWebSocket* m_base;
|
||||
NSCriticalSection::CRITICAL_SECTION m_oCS;
|
||||
NSCriticalSection::CRITICAL_SECTION m_oCS_Events;
|
||||
public:
|
||||
CIOWebSocket_private(CIOWebSocket* base)
|
||||
{
|
||||
m_base = base;
|
||||
m_oCS.InitializeCriticalSection();
|
||||
m_oCS_Events.InitializeCriticalSection();
|
||||
}
|
||||
virtual ~CIOWebSocket_private()
|
||||
{
|
||||
m_oCS_Events.DeleteCriticalSection();
|
||||
m_oCS.DeleteCriticalSection();
|
||||
}
|
||||
|
||||
virtual void open(const std::map<std::string, std::string>& query) = 0;
|
||||
virtual void send(const std::string& message) = 0;
|
||||
virtual void close() = 0;
|
||||
virtual void setReconnectInfo(const int& attemtCount, const int& delay, const int& delayMax) = 0;
|
||||
};
|
||||
|
||||
class CIOWebSocket: public CWebWorkerBase
|
||||
{
|
||||
private:
|
||||
CIOWebSocket_private* m_internal;
|
||||
|
||||
public:
|
||||
CIOWebSocket(const std::string& url, std::shared_ptr<IListener> listener);
|
||||
virtual ~CIOWebSocket();
|
||||
|
||||
public:
|
||||
virtual void open(const std::map<std::string, std::string>& query) override;
|
||||
virtual void send(const std::string& message) override;
|
||||
virtual void close() override;
|
||||
virtual bool setReconnectInfo(const int& attemtCount, const int& delay, const int& delayMax);
|
||||
|
||||
friend class CIOWebSocket_private;
|
||||
friend class CIOWebSocket_private_tls;
|
||||
friend class CIOWebSocket_private_no_tls;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* _IO_WEB_SOCKET_H_ */
|
||||
@ -0,0 +1,242 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
#include "socketio_internal.h"
|
||||
#include <iostream>
|
||||
#include "../../../../3dParty/socketio/socket.io-client-cpp/src/internal/sio_packet.h"
|
||||
#include "../../../../3dParty/socketio/socket.io-client-cpp/src/sio_client.h"
|
||||
#include <memory>
|
||||
#include "../../../../../DesktopEditor/graphics/BaseThread.h"
|
||||
|
||||
namespace NSNetwork
|
||||
{
|
||||
namespace NSWebSocket
|
||||
{
|
||||
class CIOWebSocket_private_tls : public CIOWebSocket_private
|
||||
{
|
||||
public:
|
||||
std::shared_ptr<sio::client> m_socket;
|
||||
// проблема закрытия сокета, пока он не приконнектился
|
||||
bool m_connecting_in_process;
|
||||
bool m_closing_in_progress;
|
||||
|
||||
public:
|
||||
CIOWebSocket_private_tls(CIOWebSocket* base) : CIOWebSocket_private(base)
|
||||
{
|
||||
m_connecting_in_process = false;
|
||||
m_closing_in_progress = false;
|
||||
m_base = base;
|
||||
}
|
||||
~CIOWebSocket_private_tls()
|
||||
{
|
||||
close();
|
||||
}
|
||||
|
||||
public:
|
||||
void event_onConnected()
|
||||
{
|
||||
CTemporaryCS oCS(&m_oCS_Events);
|
||||
m_connecting_in_process = false;
|
||||
|
||||
if (!m_closing_in_progress)
|
||||
m_base->listener->onOpen();
|
||||
}
|
||||
void event_onClose(sio::client::close_reason const& reason)
|
||||
{
|
||||
CTemporaryCS oCS(&m_oCS_Events);
|
||||
m_connecting_in_process = false;
|
||||
|
||||
if (!m_closing_in_progress)
|
||||
m_base->listener->onClose(0, "");
|
||||
}
|
||||
void event_onFail()
|
||||
{
|
||||
CTemporaryCS oCS(&m_oCS_Events);
|
||||
m_connecting_in_process = false;
|
||||
|
||||
if (!m_closing_in_progress)
|
||||
m_base->listener->onError("");
|
||||
}
|
||||
|
||||
public:
|
||||
virtual void open(const std::map<std::string, std::string>& query) override
|
||||
{
|
||||
m_socket = std::make_shared<sio::client>();
|
||||
m_socket->set_open_listener (std::bind(&CIOWebSocket_private_tls::event_onConnected, this));
|
||||
m_socket->set_close_listener(std::bind(&CIOWebSocket_private_tls::event_onClose, this, std::placeholders::_1));
|
||||
m_socket->set_fail_listener (std::bind(&CIOWebSocket_private_tls::event_onFail, this));
|
||||
|
||||
sio::message::ptr objAuth = sio::object_message::create();
|
||||
//std::string sAuth;
|
||||
|
||||
std::map<std::string, std::string> queryDst = query;
|
||||
std::map<std::string, std::string>::iterator iterAuth = queryDst.find("token");
|
||||
if (iterAuth != queryDst.end())
|
||||
{
|
||||
objAuth->get_map()["token"] = sio::string_message::create(iterAuth->second);
|
||||
//sAuth = "{\"token\":\"" + iterAuth->second + "\"}";
|
||||
queryDst.erase(iterAuth);
|
||||
}
|
||||
|
||||
//webSocket.connect(url, queryDst, sio::string_message::create(sAuth));
|
||||
m_connecting_in_process = true;
|
||||
m_socket->connect(m_base->url, queryDst, objAuth);
|
||||
|
||||
m_socket->socket()->on("message", [&](sio::event& event){
|
||||
CTemporaryCS oCS(&m_oCS_Events);
|
||||
if (m_closing_in_progress)
|
||||
return;
|
||||
|
||||
const sio::message::ptr& message = event.get_message();
|
||||
if (!message)
|
||||
return;
|
||||
|
||||
// TODO: пока только текстовые и json команды
|
||||
switch (message->get_flag())
|
||||
{
|
||||
case sio::message::flag_null:
|
||||
{
|
||||
m_base->listener->onMessage("null");
|
||||
break;
|
||||
}
|
||||
case sio::message::flag_integer:
|
||||
case sio::message::flag_double:
|
||||
case sio::message::flag_boolean:
|
||||
{
|
||||
m_base->listener->onMessage("");
|
||||
break;
|
||||
}
|
||||
case sio::message::flag_binary:
|
||||
{
|
||||
m_base->listener->onMessage("");
|
||||
break;
|
||||
}
|
||||
case sio::message::flag_array:
|
||||
{
|
||||
m_base->listener->onMessage("");
|
||||
break;
|
||||
}
|
||||
case sio::message::flag_object:
|
||||
{
|
||||
sio::packet_manager manager;
|
||||
|
||||
std::stringstream ss;
|
||||
sio::packet packet("/", message);
|
||||
manager.encode( packet, [&](bool isBinary, std::shared_ptr<const std::string> const& json)
|
||||
{
|
||||
ss << *json;
|
||||
});
|
||||
manager.reset();
|
||||
|
||||
std::string result = ss.str();
|
||||
|
||||
std::size_t indexList = result.find('[');
|
||||
std::size_t indexObject = result.find('{');
|
||||
std::size_t indexString = result.find('"');
|
||||
|
||||
std::size_t index = indexList;
|
||||
if (indexObject != std::string::npos && indexObject < index)
|
||||
index = indexObject;
|
||||
if (indexString != std::string::npos && indexString < index)
|
||||
index = indexString;
|
||||
|
||||
if (index != std::string::npos)
|
||||
result = result.substr(index);
|
||||
else
|
||||
result = "";
|
||||
|
||||
m_base->listener->onMessage(result);
|
||||
break;
|
||||
}
|
||||
case sio::message::flag_string:
|
||||
{
|
||||
m_base->listener->onMessage(message->get_string());
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
virtual void send(const std::string& message_str) override
|
||||
{
|
||||
//CTemporaryCS (&m_internal->m_oCS);
|
||||
|
||||
// если json -то надо объект
|
||||
if (0 == message_str.find("{") ||
|
||||
0 == message_str.find("["))
|
||||
{
|
||||
sio::packet_manager manager;
|
||||
sio::message::ptr message;
|
||||
manager.set_decode_callback([&](sio::packet const& p)
|
||||
{
|
||||
message = p.get_message();
|
||||
});
|
||||
|
||||
// Magic message type / ID
|
||||
manager.put_payload("42" + message_str);
|
||||
manager.reset();
|
||||
|
||||
m_socket->socket()->emit("message", message);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_socket->socket()->emit("message", sio::string_message::create(message_str));
|
||||
}
|
||||
}
|
||||
|
||||
virtual void close() override
|
||||
{
|
||||
CTemporaryCS oCS(&m_oCS);
|
||||
|
||||
m_oCS_Events.Enter();
|
||||
m_closing_in_progress = true;
|
||||
m_oCS_Events.Leave();
|
||||
|
||||
// https://github.com/socketio/socket.io-client-cpp/issues/254
|
||||
while (m_connecting_in_process)
|
||||
NSThreads::Sleep(50);
|
||||
|
||||
m_socket.reset();
|
||||
}
|
||||
|
||||
virtual void setReconnectInfo(const int& attemtCount, const int& delay, const int& delayMax) override
|
||||
{
|
||||
m_socket->set_reconnect_attempts(attemtCount);
|
||||
m_socket->set_reconnect_delay(delay);
|
||||
m_socket->set_reconnect_delay_max(delayMax);
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,246 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
/// auto generated file. please use generator (make.py) ///
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
#pragma once
|
||||
#include "socketio_internal.h"
|
||||
#include <iostream>
|
||||
#include "../../../../3dParty/socketio/socket.io-client-cpp/src_no_tls/internal/sio_packet.h"
|
||||
#include "../../../../3dParty/socketio/socket.io-client-cpp/src_no_tls/sio_client.h"
|
||||
#include <memory>
|
||||
#include "../../../../../DesktopEditor/graphics/BaseThread.h"
|
||||
|
||||
namespace NSNetwork
|
||||
{
|
||||
namespace NSWebSocket
|
||||
{
|
||||
class CIOWebSocket_private_no_tls : public CIOWebSocket_private
|
||||
{
|
||||
public:
|
||||
std::shared_ptr<sio_no_tls::client> m_socket;
|
||||
// проблема закрытия сокета, пока он не приконнектился
|
||||
bool m_connecting_in_process;
|
||||
bool m_closing_in_progress;
|
||||
|
||||
public:
|
||||
CIOWebSocket_private_no_tls(CIOWebSocket* base) : CIOWebSocket_private(base)
|
||||
{
|
||||
m_connecting_in_process = false;
|
||||
m_closing_in_progress = false;
|
||||
m_base = base;
|
||||
}
|
||||
~CIOWebSocket_private_no_tls()
|
||||
{
|
||||
close();
|
||||
}
|
||||
|
||||
public:
|
||||
void event_onConnected()
|
||||
{
|
||||
CTemporaryCS oCS(&m_oCS_Events);
|
||||
m_connecting_in_process = false;
|
||||
|
||||
if (!m_closing_in_progress)
|
||||
m_base->listener->onOpen();
|
||||
}
|
||||
void event_onClose(sio_no_tls::client::close_reason const& reason)
|
||||
{
|
||||
CTemporaryCS oCS(&m_oCS_Events);
|
||||
m_connecting_in_process = false;
|
||||
|
||||
if (!m_closing_in_progress)
|
||||
m_base->listener->onClose(0, "");
|
||||
}
|
||||
void event_onFail()
|
||||
{
|
||||
CTemporaryCS oCS(&m_oCS_Events);
|
||||
m_connecting_in_process = false;
|
||||
|
||||
if (!m_closing_in_progress)
|
||||
m_base->listener->onError("");
|
||||
}
|
||||
|
||||
public:
|
||||
virtual void open(const std::map<std::string, std::string>& query) override
|
||||
{
|
||||
m_socket = std::make_shared<sio_no_tls::client>();
|
||||
m_socket->set_open_listener (std::bind(&CIOWebSocket_private_no_tls::event_onConnected, this));
|
||||
m_socket->set_close_listener(std::bind(&CIOWebSocket_private_no_tls::event_onClose, this, std::placeholders::_1));
|
||||
m_socket->set_fail_listener (std::bind(&CIOWebSocket_private_no_tls::event_onFail, this));
|
||||
|
||||
sio_no_tls::message::ptr objAuth = sio_no_tls::object_message::create();
|
||||
//std::string sAuth;
|
||||
|
||||
std::map<std::string, std::string> queryDst = query;
|
||||
std::map<std::string, std::string>::iterator iterAuth = queryDst.find("token");
|
||||
if (iterAuth != queryDst.end())
|
||||
{
|
||||
objAuth->get_map()["token"] = sio_no_tls::string_message::create(iterAuth->second);
|
||||
//sAuth = "{\"token\":\"" + iterAuth->second + "\"}";
|
||||
queryDst.erase(iterAuth);
|
||||
}
|
||||
|
||||
//webSocket.connect(url, queryDst, sio_no_tls::string_message::create(sAuth));
|
||||
m_connecting_in_process = true;
|
||||
m_socket->connect(m_base->url, queryDst, objAuth);
|
||||
|
||||
m_socket->socket()->on("message", [&](sio_no_tls::event& event){
|
||||
CTemporaryCS oCS(&m_oCS_Events);
|
||||
if (m_closing_in_progress)
|
||||
return;
|
||||
|
||||
const sio_no_tls::message::ptr& message = event.get_message();
|
||||
if (!message)
|
||||
return;
|
||||
|
||||
// TODO: пока только текстовые и json команды
|
||||
switch (message->get_flag())
|
||||
{
|
||||
case sio_no_tls::message::flag_null:
|
||||
{
|
||||
m_base->listener->onMessage("null");
|
||||
break;
|
||||
}
|
||||
case sio_no_tls::message::flag_integer:
|
||||
case sio_no_tls::message::flag_double:
|
||||
case sio_no_tls::message::flag_boolean:
|
||||
{
|
||||
m_base->listener->onMessage("");
|
||||
break;
|
||||
}
|
||||
case sio_no_tls::message::flag_binary:
|
||||
{
|
||||
m_base->listener->onMessage("");
|
||||
break;
|
||||
}
|
||||
case sio_no_tls::message::flag_array:
|
||||
{
|
||||
m_base->listener->onMessage("");
|
||||
break;
|
||||
}
|
||||
case sio_no_tls::message::flag_object:
|
||||
{
|
||||
sio_no_tls::packet_manager manager;
|
||||
|
||||
std::stringstream ss;
|
||||
sio_no_tls::packet packet("/", message);
|
||||
manager.encode( packet, [&](bool isBinary, std::shared_ptr<const std::string> const& json)
|
||||
{
|
||||
ss << *json;
|
||||
});
|
||||
manager.reset();
|
||||
|
||||
std::string result = ss.str();
|
||||
|
||||
std::size_t indexList = result.find('[');
|
||||
std::size_t indexObject = result.find('{');
|
||||
std::size_t indexString = result.find('"');
|
||||
|
||||
std::size_t index = indexList;
|
||||
if (indexObject != std::string::npos && indexObject < index)
|
||||
index = indexObject;
|
||||
if (indexString != std::string::npos && indexString < index)
|
||||
index = indexString;
|
||||
|
||||
if (index != std::string::npos)
|
||||
result = result.substr(index);
|
||||
else
|
||||
result = "";
|
||||
|
||||
m_base->listener->onMessage(result);
|
||||
break;
|
||||
}
|
||||
case sio_no_tls::message::flag_string:
|
||||
{
|
||||
m_base->listener->onMessage(message->get_string());
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
virtual void send(const std::string& message_str) override
|
||||
{
|
||||
//CTemporaryCS (&m_internal->m_oCS);
|
||||
|
||||
// если json -то надо объект
|
||||
if (0 == message_str.find("{") ||
|
||||
0 == message_str.find("["))
|
||||
{
|
||||
sio_no_tls::packet_manager manager;
|
||||
sio_no_tls::message::ptr message;
|
||||
manager.set_decode_callback([&](sio_no_tls::packet const& p)
|
||||
{
|
||||
message = p.get_message();
|
||||
});
|
||||
|
||||
// Magic message type / ID
|
||||
manager.put_payload("42" + message_str);
|
||||
manager.reset();
|
||||
|
||||
m_socket->socket()->emit("message", message);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_socket->socket()->emit("message", sio_no_tls::string_message::create(message_str));
|
||||
}
|
||||
}
|
||||
|
||||
virtual void close() override
|
||||
{
|
||||
CTemporaryCS oCS(&m_oCS);
|
||||
|
||||
m_oCS_Events.Enter();
|
||||
m_closing_in_progress = true;
|
||||
m_oCS_Events.Leave();
|
||||
|
||||
// https://github.com/socketio/socket.io-client-cpp/issues/254
|
||||
while (m_connecting_in_process)
|
||||
NSThreads::Sleep(50);
|
||||
|
||||
m_socket.reset();
|
||||
}
|
||||
|
||||
virtual void setReconnectInfo(const int& attemtCount, const int& delay, const int& delayMax) override
|
||||
{
|
||||
m_socket->set_reconnect_attempts(attemtCount);
|
||||
m_socket->set_reconnect_delay(delay);
|
||||
m_socket->set_reconnect_delay_max(delayMax);
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2021
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
@ -12,7 +12,7 @@
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
@ -51,7 +51,7 @@ namespace NSNetwork
|
||||
|
||||
CSocketRocket(const std::string& url, std::shared_ptr<IListener> listener);
|
||||
~CSocketRocket();
|
||||
virtual void open() override;
|
||||
virtual void open(const std::map<std::string, std::string>& query) override;
|
||||
virtual void send(const std::string& message) override;
|
||||
virtual void close() override;
|
||||
virtual void setUrl(const std::string& url) override;
|
||||
@ -60,4 +60,4 @@ namespace NSNetwork
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* _SOCKET_ROCKET_H_ */
|
||||
#endif /* _SOCKET_ROCKET_H_ */
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
/* (c) Copyright Ascensio System SIA 2010-2021
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
@ -11,7 +12,7 @@
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
@ -60,7 +61,7 @@ namespace NSNetwork
|
||||
delete impl;
|
||||
}
|
||||
|
||||
void CSocketRocket::open()
|
||||
void CSocketRocket::open(const std::map<std::string, std::string>& query)
|
||||
{
|
||||
[impl->wrapped open];
|
||||
}
|
||||
@ -81,4 +82,4 @@ namespace NSNetwork
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2021
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
@ -12,7 +12,7 @@
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2021
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
@ -12,7 +12,7 @@
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2021
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
@ -12,7 +12,7 @@
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
@ -52,7 +52,7 @@ namespace NSNetwork
|
||||
this->listener = listener;
|
||||
}
|
||||
virtual ~CWebWorkerBase() { close(); }
|
||||
virtual void open() override {}
|
||||
virtual void open(const std::map<std::string, std::string>& query) override {}
|
||||
virtual void send(const std::string& message) override {}
|
||||
virtual void close() override {}
|
||||
virtual void setUrl(const std::string& url) override {this->url = url;}
|
||||
|
||||
@ -1,10 +1,84 @@
|
||||
core_mac:CONFIG += apple_platform
|
||||
core_ios:CONFIG += apple_platform
|
||||
|
||||
apple_platform {
|
||||
CONFIG += socketrocket
|
||||
} else {
|
||||
CONFIG += ixwebsocket
|
||||
# since 7.3: ONLY socketio
|
||||
#apple_platform:CONFIG += socketrocket
|
||||
#!apple_platform:CONFIG += ixwebsocket
|
||||
|
||||
CONFIG += libsocketio
|
||||
|
||||
libsocketio:CONFIG += use_openssl
|
||||
ixwebsocket:CONFIG += use_openssl
|
||||
|
||||
use_openssl {
|
||||
include($$PWD/../../3dParty/openssl/openssl.pri)
|
||||
}
|
||||
|
||||
libsocketio {
|
||||
SOCKET_IO_LIB=$$PWD/../../3dParty/socketio/socket.io-client-cpp
|
||||
|
||||
INCLUDEPATH += \
|
||||
$$SOCKET_IO_LIB/lib/websocketpp \
|
||||
$$SOCKET_IO_LIB/lib/rapidjson/include \
|
||||
$$SOCKET_IO_LIB/lib/asio/asio/include
|
||||
|
||||
HEADERS += \
|
||||
$$SOCKET_IO_LIB/src/internal/sio_client_impl.h \
|
||||
$$SOCKET_IO_LIB/src/internal/sio_packet.h \
|
||||
$$SOCKET_IO_LIB/src/sio_message.h \
|
||||
$$SOCKET_IO_LIB/src/sio_socket.h \
|
||||
$$SOCKET_IO_LIB/src/sio_client.h
|
||||
|
||||
SOURCES += \
|
||||
$$SOCKET_IO_LIB/src/internal/sio_client_impl.cpp \
|
||||
$$SOCKET_IO_LIB/src/internal/sio_packet.cpp \
|
||||
$$SOCKET_IO_LIB/src/sio_socket.cpp \
|
||||
$$SOCKET_IO_LIB/src/sio_client.cpp
|
||||
|
||||
HEADERS += \
|
||||
$$SOCKET_IO_LIB/src_no_tls/internal/sio_client_impl.h \
|
||||
$$SOCKET_IO_LIB/src_no_tls/internal/sio_packet.h \
|
||||
$$SOCKET_IO_LIB/src_no_tls/sio_message.h \
|
||||
$$SOCKET_IO_LIB/src_no_tls/sio_socket.h \
|
||||
$$SOCKET_IO_LIB/src_no_tls/sio_client.h
|
||||
|
||||
SOURCES += \
|
||||
$$SOCKET_IO_LIB/src_no_tls/internal/sio_client_impl.cpp \
|
||||
$$SOCKET_IO_LIB/src_no_tls/internal/sio_packet.cpp \
|
||||
$$SOCKET_IO_LIB/src_no_tls/sio_socket.cpp \
|
||||
$$SOCKET_IO_LIB/src_no_tls/sio_client.cpp
|
||||
|
||||
DEFINES += \
|
||||
BOOST_DATE_TIME_NO_LIB \
|
||||
BOOST_REGEX_NO_LIB \
|
||||
ASIO_STANDALONE \
|
||||
\
|
||||
_WEBSOCKETPP_CPP11_STL_ \
|
||||
_WEBSOCKETPP_CPP11_FUNCTIONAL_ \
|
||||
_WEBSOCKETPP_CPP11_TYPE_TRAITS_ \
|
||||
_WEBSOCKETPP_CPP11_CHRONO_ \
|
||||
\
|
||||
"SIO_TLS=1" \
|
||||
"SIO_TLS_NO=0" \
|
||||
"PING_TIMEOUT_INTERVAL=20000"
|
||||
|
||||
include($$PWD/../../3dParty/boost/boost.pri)
|
||||
|
||||
DEFINES += USE_IOWEBSOCKET
|
||||
|
||||
HEADERS += \
|
||||
$$PWD/src/socketio/socketio_internal.h \
|
||||
$$PWD/src/socketio/socketio_internal_private.h \
|
||||
$$PWD/src/socketio/socketio_internal_private_no_tls.h
|
||||
|
||||
SOURCES += $$PWD/src/socketio/socketio_internal.cpp
|
||||
|
||||
core_linux:LIBS += -lpthread
|
||||
|
||||
core_windows {
|
||||
LIBS += -lcrypt32
|
||||
LIBS += -lUser32
|
||||
}
|
||||
}
|
||||
|
||||
HEADERS += \
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
@ -12,7 +12,7 @@
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
@ -12,7 +12,7 @@
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
@ -12,7 +12,7 @@
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
@ -12,7 +12,7 @@
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
@ -515,26 +515,26 @@ bool COfficeFileFormatChecker::isOfficeFile(const std::wstring & _fileName)
|
||||
|
||||
bEmptyFile = (dwReadBytes < 1);
|
||||
|
||||
if (isOOXFlatFormatFile(buffer, sizeRead))
|
||||
if (isBinaryDoctFormatFile(buffer, sizeRead)) // min size - 4
|
||||
{
|
||||
nFileType = AVS_OFFICESTUDIO_FILE_CANVAS_WORD;
|
||||
}
|
||||
else if (isBinaryXlstFormatFile(buffer, sizeRead))// min size - 4
|
||||
{
|
||||
nFileType = AVS_OFFICESTUDIO_FILE_CANVAS_SPREADSHEET;
|
||||
}
|
||||
else if (isBinaryPpttFormatFile(buffer, sizeRead))// min size - 4
|
||||
{
|
||||
nFileType = AVS_OFFICESTUDIO_FILE_CANVAS_PRESENTATION;
|
||||
}
|
||||
else if (isOOXFlatFormatFile(buffer, sizeRead))
|
||||
{
|
||||
//nFileType;
|
||||
}
|
||||
else if ( isRtfFormatFile(buffer,sizeRead) ) // min size - 5
|
||||
{
|
||||
nFileType = AVS_OFFICESTUDIO_FILE_DOCUMENT_RTF;
|
||||
}
|
||||
else if ( isBinaryDoctFormatFile(buffer,sizeRead) ) // min size - 4
|
||||
{
|
||||
nFileType = AVS_OFFICESTUDIO_FILE_CANVAS_WORD;
|
||||
}
|
||||
else if ( isBinaryXlstFormatFile(buffer,sizeRead) )// min size - 4
|
||||
{
|
||||
nFileType = AVS_OFFICESTUDIO_FILE_CANVAS_SPREADSHEET;
|
||||
}
|
||||
else if ( isBinaryPpttFormatFile(buffer,sizeRead) )// min size - 4
|
||||
{
|
||||
nFileType = AVS_OFFICESTUDIO_FILE_CANVAS_PRESENTATION;
|
||||
}
|
||||
}
|
||||
else if (isPdfFormatFile(buffer,sizeRead, sDocumentID) )// min size - 5
|
||||
{
|
||||
nFileType = AVS_OFFICESTUDIO_FILE_CROSSPLATFORM_PDF;
|
||||
@ -613,7 +613,7 @@ bool COfficeFileFormatChecker::isOfficeFile(const std::wstring & _fileName)
|
||||
else if (0 == sExt.compare(L".odp"))
|
||||
nFileType = AVS_OFFICESTUDIO_FILE_PRESENTATION_ODP;
|
||||
}
|
||||
else if (0 == sExt.compare(L".mht"))
|
||||
else if (0 == sExt.compare(L".mht") || 0 == sExt.compare(L".mhtml"))
|
||||
nFileType = AVS_OFFICESTUDIO_FILE_DOCUMENT_MHT;
|
||||
else if (0 == sExt.compare(L".csv") || 0 == sExt.compare(L".xlsx"))
|
||||
nFileType = AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV;
|
||||
@ -1140,9 +1140,9 @@ int COfficeFileFormatChecker::GetFormatByExtension(const std::wstring& sExt)
|
||||
return AVS_OFFICESTUDIO_FILE_DOCUMENT_RTF;
|
||||
if (L".txt" == ext)
|
||||
return AVS_OFFICESTUDIO_FILE_DOCUMENT_TXT;
|
||||
if (L".html" == ext)
|
||||
if (L".html" == ext || L".htm" == ext)
|
||||
return AVS_OFFICESTUDIO_FILE_DOCUMENT_HTML;
|
||||
if (L".mht" == ext)
|
||||
if (L".mht" == ext || L".mhtml" == ext)
|
||||
return AVS_OFFICESTUDIO_FILE_DOCUMENT_MHT;
|
||||
if (L".epub" == ext)
|
||||
return AVS_OFFICESTUDIO_FILE_DOCUMENT_EPUB;
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
@ -12,7 +12,7 @@
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
@ -12,7 +12,7 @@
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
@ -12,7 +12,7 @@
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
|
||||
108
Common/base.pri
108
Common/base.pri
@ -11,11 +11,19 @@ BUILD_NUMBER = $$(BUILD_NUMBER)
|
||||
|
||||
DEFINES += INTVER=$$VERSION
|
||||
|
||||
WIN_VERSION = $$replace(VERSION, \., ",")
|
||||
DEFINES += WIN_INTVER=$$WIN_VERSION
|
||||
|
||||
PUBLISHER_NAME = $$(PUBLISHER_NAME)
|
||||
isEmpty(PUBLISHER_NAME){
|
||||
PUBLISHER_NAME = $$cat(copyright.txt)
|
||||
}
|
||||
|
||||
APPLICATION_NAME_DEFAULT = $$(APPLICATION_NAME_DEFAULT)
|
||||
!isEmpty(APPLICATION_NAME_DEFAULT){
|
||||
DEFINES += "APPLICATION_NAME_DEFAULT=$${APPLICATION_NAME_DEFAULT}"
|
||||
}
|
||||
|
||||
OO_BUILD_BRANDING = $$(OO_BRANDING)
|
||||
OO_DESTDIR_BUILD_OVERRIDE = $$(DESTDIR_BUILD_OVERRIDE)
|
||||
|
||||
@ -31,6 +39,8 @@ win32 {
|
||||
CURRENT_YEAR = $$system(date +%Y)
|
||||
}
|
||||
|
||||
DEFINES += COPYRIGHT_YEAR=$${CURRENT_YEAR}
|
||||
|
||||
QMAKE_TARGET_COMPANY = $$PUBLISHER_NAME
|
||||
QMAKE_TARGET_COPYRIGHT = Copyright (C) $${PUBLISHER_NAME} $${CURRENT_YEAR}. All rights reserved
|
||||
|
||||
@ -135,10 +145,21 @@ mac {
|
||||
}
|
||||
}
|
||||
|
||||
gcc {
|
||||
COMPILER_VERSION = $$system($$QMAKE_CXX " -dumpversion")
|
||||
COMPILER_MAJOR_VERSION_ARRAY = $$split(COMPILER_VERSION, ".")
|
||||
COMPILER_MAJOR_VERSION = $$member(COMPILER_MAJOR_VERSION_ARRAY, 0)
|
||||
lessThan(COMPILER_MAJOR_VERSION, 5): CONFIG += build_gcc_less_5
|
||||
lessThan(COMPILER_MAJOR_VERSION, 6): CONFIG += build_gcc_less_6
|
||||
}
|
||||
|
||||
# DEFINES
|
||||
core_windows {
|
||||
DEFINES += WIN32 _WIN32
|
||||
DEFINES += NOMINMAX
|
||||
|
||||
# use default _ITERATOR_DEBUG_LEVEL value
|
||||
#core_debug:DEFINES += "_ITERATOR_DEBUG_LEVEL=0"
|
||||
}
|
||||
core_win_64 {
|
||||
DEFINES += WIN64 _WIN64
|
||||
@ -206,6 +227,11 @@ core_linux {
|
||||
}
|
||||
}
|
||||
|
||||
core_linux {
|
||||
equals(TEMPLATE, app):CONFIG += core_static_link_libstd
|
||||
plugin:CONFIG += core_static_link_libstd
|
||||
}
|
||||
|
||||
core_win_32 {
|
||||
CORE_BUILDS_PLATFORM_PREFIX = win_32
|
||||
}
|
||||
@ -263,11 +289,23 @@ core_ios {
|
||||
} else {
|
||||
|
||||
QMAKE_IOS_DEPLOYMENT_TARGET = 11.0
|
||||
CONFIG += core_ios_main_arch
|
||||
|
||||
QMAKE_CFLAGS += -fembed-bitcode
|
||||
QMAKE_CXXFLAGS += -fembed-bitcode
|
||||
QMAKE_LFLAGS += -fembed-bitcode
|
||||
QMAKE_CXXFLAGS += -fobjc-arc
|
||||
|
||||
bundle_xcframeworks {
|
||||
xcframework_platform_ios_simulator {
|
||||
QMAKE_APPLE_DEVICE_ARCHS=
|
||||
QMAKE_APPLE_SIMULATOR_ARCHS=x86_64 arm64
|
||||
} else {
|
||||
QMAKE_APPLE_DEVICE_ARCHS = arm64
|
||||
QMAKE_APPLE_SIMULATOR_ARCHS=
|
||||
}
|
||||
} else {
|
||||
CONFIG += core_ios_main_arch
|
||||
}
|
||||
|
||||
core_ios_main_arch {
|
||||
QMAKE_APPLE_DEVICE_ARCHS = arm64
|
||||
@ -276,10 +314,6 @@ core_ios {
|
||||
core_ios_32 {
|
||||
QMAKE_APPLE_DEVICE_ARCHS = $$QMAKE_APPLE_DEVICE_ARCHS armv7
|
||||
}
|
||||
} else {
|
||||
plugin : TARGET = $$join(TARGET, TARGET, "", "_addition")
|
||||
QMAKE_APPLE_DEVICE_ARCHS=
|
||||
QMAKE_APPLE_SIMULATOR_ARCHS=
|
||||
}
|
||||
|
||||
core_ios_nomain_arch {
|
||||
@ -337,6 +371,7 @@ core_android {
|
||||
}
|
||||
|
||||
core_debug {
|
||||
DEFINES += _DEBUG
|
||||
CORE_BUILDS_CONFIGURATION_PREFIX = debug
|
||||
}
|
||||
core_release {
|
||||
@ -352,11 +387,9 @@ message($$CORE_BUILDS_PLATFORM_PREFIX/$$CORE_BUILDS_CONFIGURATION_PREFIX)
|
||||
# COMPILER
|
||||
CONFIG += c++11
|
||||
|
||||
greaterThan(QT_MAJOR_VERSION, 5) {
|
||||
!core_windows {
|
||||
QMAKE_CXXFLAGS += -Wno-register
|
||||
QMAKE_CFLAGS += -Wno-register
|
||||
}
|
||||
!core_windows {
|
||||
QMAKE_CXXFLAGS += -Wno-register
|
||||
QMAKE_CFLAGS += -Wno-register
|
||||
}
|
||||
|
||||
core_linux {
|
||||
@ -365,28 +398,34 @@ core_static_link_libstd {
|
||||
message(core_static_link_libstd)
|
||||
}
|
||||
plugin {
|
||||
QMAKE_CXXFLAGS += -fvisibility=hidden
|
||||
QMAKE_CFLAGS += -fvisibility=hidden
|
||||
|
||||
TARGET_EXT = .so
|
||||
}
|
||||
}
|
||||
|
||||
core_mac {
|
||||
plugin {
|
||||
QMAKE_CXXFLAGS += -fvisibility=hidden
|
||||
QMAKE_CFLAGS += -fvisibility=hidden
|
||||
}
|
||||
}
|
||||
|
||||
core_windows {
|
||||
plugin {
|
||||
TARGET_EXT = .dll
|
||||
}
|
||||
}
|
||||
|
||||
core_disable_all_warnings {
|
||||
CONFIG += warn_off
|
||||
!core_windows {
|
||||
plugin:CONFIG += config_hidden_symbols
|
||||
staticlib:CONFIG += config_hidden_symbols
|
||||
}
|
||||
|
||||
config_hidden_symbols {
|
||||
QMAKE_CXXFLAGS += -fvisibility=hidden -fvisibility-inlines-hidden
|
||||
QMAKE_CFLAGS += -fvisibility=hidden -fvisibility-inlines-hidden
|
||||
|
||||
core_mac:CONFIG += clang_no_exclude_libs
|
||||
core_ios:CONFIG += clang_no_exclude_libs
|
||||
|
||||
!clang_no_exclude_libs {
|
||||
plugin:QMAKE_LFLAGS += -Wl,--exclude-libs,ALL
|
||||
equals(TEMPLATE, app) {
|
||||
QMAKE_LFLAGS += -Wl,--exclude-libs,ALL
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# BUILD_PATHS
|
||||
@ -397,6 +436,16 @@ OBJECTS_DIR = $$PWD_ROOT_DIR/core_build/$$CORE_BUILDS_PLATFORM_PREFIX/$$CORE_BUI
|
||||
MOC_DIR = $$PWD_ROOT_DIR/core_build/$$CORE_BUILDS_PLATFORM_PREFIX/$$CORE_BUILDS_CONFIGURATION_PREFIX/moc
|
||||
RCC_DIR = $$PWD_ROOT_DIR/core_build/$$CORE_BUILDS_PLATFORM_PREFIX/$$CORE_BUILDS_CONFIGURATION_PREFIX/rcc
|
||||
UI_DIR = $$PWD_ROOT_DIR/core_build/$$CORE_BUILDS_PLATFORM_PREFIX/$$CORE_BUILDS_CONFIGURATION_PREFIX/ui
|
||||
|
||||
bundle_xcframeworks {
|
||||
xcframework_platform_ios_simulator {
|
||||
OBJECTS_DIR = $$OBJECTS_DIR/simulator
|
||||
MOC_DIR = $$MOC_DIR/simulator
|
||||
RCC_DIR = $$RCC_DIR/simulator
|
||||
UI_DIR = $$UI_DIR/simulator
|
||||
}
|
||||
}
|
||||
|
||||
build_xp {
|
||||
OBJECTS_DIR = $$OBJECTS_DIR/xp
|
||||
MOC_DIR = $$MOC_DIR/xp
|
||||
@ -425,6 +474,13 @@ core_debug {
|
||||
CORE_BUILDS_BINARY_PATH = $$OO_DESTDIR_BUILD_OVERRIDE
|
||||
}
|
||||
|
||||
core_ios {
|
||||
xcframework_platform_ios_simulator {
|
||||
CORE_BUILDS_LIBRARIES_PATH = $$CORE_BUILDS_LIBRARIES_PATH/simulator
|
||||
CORE_BUILDS_BINARY_PATH = $$CORE_BUILDS_BINARY_PATH/simulator
|
||||
}
|
||||
}
|
||||
|
||||
plugin {
|
||||
DESTDIR = $$CORE_BUILDS_LIBRARIES_PATH
|
||||
}
|
||||
@ -506,3 +562,11 @@ defineTest(ADD_DEPENDENCY) {
|
||||
|
||||
ADD_INC_PATH = $$(ADDITIONAL_INCLUDE_PATH)
|
||||
!isEmpty(ADD_INC_PATH):INCLUDEPATH += $$ADD_INC_PATH
|
||||
|
||||
!core_enable_all_warnings {
|
||||
core_disable_all_warnings {
|
||||
QMAKE_CXXFLAGS_WARN_OFF = -w
|
||||
QMAKE_CFLAGS_WARN_OFF = -w
|
||||
CONFIG += warn_off
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,34 +1,34 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <functional>
|
||||
|
||||
@ -1,35 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*//*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
@ -42,7 +12,7 @@
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
|
||||
@ -1,34 +1,34 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#include "rbtree.h"
|
||||
#include "rbtreeexception.h"
|
||||
|
||||
|
||||
@ -1,34 +1,34 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <iterator>
|
||||
|
||||
@ -1,34 +1,34 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <exception>
|
||||
|
||||
@ -1,34 +1,34 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#include "fstream_utils.h"
|
||||
#include "fstream_wrapper.h"
|
||||
#include "stream_utils.h"
|
||||
@ -40,13 +40,30 @@ using namespace CFCPP;
|
||||
|
||||
CFCPP::Stream CFCPP::OpenFileStream(const std::wstring & filename, bool bRewrite, bool trunc)
|
||||
{
|
||||
BYTE* pUtf8 = nullptr;
|
||||
#if defined(_WIN32) || defined(_WIN32_WCE) || defined(_WIN64)
|
||||
CFCPP::Stream st;
|
||||
|
||||
// it's not good, but otherwise file doesn't create or if use ios::app, then the seek for writing will be blocked
|
||||
if (bRewrite)
|
||||
std::wfstream create(filename, std::ios::app | std::ios::out);
|
||||
|
||||
if (trunc && bRewrite)
|
||||
st.reset(new FStreamWrapper(filename, std::ios::binary | std::ios::in | std::ios::out | std::ios::trunc));
|
||||
else if (bRewrite)
|
||||
st.reset(new FStreamWrapper(filename, std::ios::binary | std::ios::in | std::ios::out));
|
||||
else
|
||||
st.reset(new FStreamWrapper(filename, std::ios::binary | std::ios::in));
|
||||
|
||||
return st;
|
||||
#else
|
||||
BYTE* pUtf8 = nullptr;
|
||||
LONG lLen = 0;
|
||||
NSFile::CUtf8Converter::GetUtf8StringFromUnicode(filename.c_str(), filename.length(), pUtf8, lLen, false);
|
||||
std::string utf8filename((char*)pUtf8, lLen);
|
||||
delete [] pUtf8;
|
||||
|
||||
return OpenFileStream(utf8filename, bRewrite, trunc);
|
||||
#endif
|
||||
}
|
||||
|
||||
CFCPP::Stream CFCPP::OpenFileStream(const std::string & filename, bool bRewrite, bool trunc)
|
||||
|
||||
@ -1,34 +1,34 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "stream.h"
|
||||
|
||||
@ -1,34 +1,34 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <fstream>
|
||||
@ -42,7 +42,11 @@ class FStreamWrapper : public IStream, public std::fstream
|
||||
public:
|
||||
FStreamWrapper(std::string filename, std::ios_base::openmode openmode) :
|
||||
std::fstream(filename, openmode) {}
|
||||
|
||||
|
||||
#if defined(_WIN32) || defined(_WIN32_WCE) || defined(_WIN64)
|
||||
FStreamWrapper(std::wstring filename, std::ios_base::openmode openmode) :
|
||||
std::fstream(filename, openmode) {}
|
||||
#endif
|
||||
inline _INT64 tell() override {
|
||||
return std::fstream::tellg();
|
||||
}
|
||||
@ -64,6 +68,9 @@ public:
|
||||
inline void close() override {
|
||||
std::fstream::close();
|
||||
}
|
||||
inline bool isError() override {
|
||||
return (std::fstream::bad() || std::fstream::fail());
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@ -1,34 +1,34 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <memory>
|
||||
@ -48,6 +48,7 @@ namespace CFCPP
|
||||
virtual void write (const char* buffer, _INT64 len) = 0;
|
||||
virtual void flush() = 0;
|
||||
virtual void close() = 0;
|
||||
virtual bool isError() = 0;
|
||||
};
|
||||
|
||||
using Stream = std::shared_ptr<IStream>;
|
||||
|
||||
@ -1,34 +1,34 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#include "stream_utils.h"
|
||||
#include "fstream_wrapper.h"
|
||||
|
||||
|
||||
@ -1,34 +1,34 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "stream.h"
|
||||
|
||||
@ -1,34 +1,34 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <exception>
|
||||
|
||||
@ -1,34 +1,34 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#include "cfitem.h"
|
||||
#include "idirectoryentry.h"
|
||||
#include "compoundfile_impl.h"
|
||||
|
||||
@ -1,34 +1,34 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "guid.h"
|
||||
|
||||
@ -1,34 +1,34 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#include "cfstorage.h"
|
||||
#include "cfexception.h"
|
||||
#include "compoundfile_impl.h"
|
||||
@ -103,7 +103,7 @@ std::shared_ptr<CFStream> CFStorage::GetStream(const std::wstring& streamName)
|
||||
}
|
||||
else
|
||||
{
|
||||
throw CFItemNotFound(L"Cannot find item [" + streamName + L"] within the current storage");
|
||||
return std::shared_ptr<CFStream>();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,34 +1,34 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "RBTree/action.h"
|
||||
|
||||
@ -1,34 +1,34 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#include "cfstream.h"
|
||||
#include "cfexception.h"
|
||||
#include "idirectoryentry.h"
|
||||
|
||||
@ -1,34 +1,34 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "Stream/stream.h"
|
||||
|
||||
@ -1,34 +1,34 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#include "compoundfile_impl.h"
|
||||
#include "directoryentry.h"
|
||||
#include "cfexception.h"
|
||||
@ -47,7 +47,7 @@ using namespace CFCPP;
|
||||
CompoundFile::CompoundFile() : _impl(new CFCPP::CompoundFile_impl())
|
||||
{
|
||||
}
|
||||
CompoundFile::CompoundFile(const std::wstring &fileName, CFSUpdateMode updateMode, CFSConfiguration configParameters) :
|
||||
CompoundFile::CompoundFile(const std::wstring &fileName, CFSUpdateMode updateMode, int configParameters) :
|
||||
_impl(new CFCPP::CompoundFile_impl(fileName, updateMode, configParameters))
|
||||
{
|
||||
}
|
||||
@ -67,9 +67,9 @@ std::shared_ptr<CFStorage> CompoundFile::RootStorage()
|
||||
{
|
||||
return _impl->RootStorage();
|
||||
}
|
||||
void CompoundFile::Save(std::wstring wFileName)
|
||||
bool CompoundFile::Save(std::wstring wFileName)
|
||||
{
|
||||
_impl->Save(wFileName);
|
||||
return _impl->Save(wFileName);
|
||||
}
|
||||
void CompoundFile::Save(Stream stream)
|
||||
{
|
||||
@ -115,7 +115,7 @@ CompoundFile_impl::CompoundFile_impl() :
|
||||
CompoundFile_impl(CFSVersion::Ver_3, CFSConfiguration::Default)
|
||||
{}
|
||||
|
||||
CompoundFile_impl::CompoundFile_impl(const std::wstring &fileName, CFSUpdateMode updateMode, CFSConfiguration configParameters)
|
||||
CompoundFile_impl::CompoundFile_impl(const std::wstring &fileName, CFSUpdateMode updateMode, int configParameters)
|
||||
{
|
||||
configuration = configParameters;
|
||||
isValidationExceptionEnabled = !(configParameters & CFSConfiguration::NoValidationException);
|
||||
@ -316,15 +316,23 @@ void CompoundFile_impl::Load(Stream stream)
|
||||
}
|
||||
}
|
||||
|
||||
void CompoundFile_impl::Save(std::wstring wFileName)
|
||||
{
|
||||
if (isDisposed)
|
||||
throw CFException("Compound File closed: cannot save data");
|
||||
bool CompoundFile_impl::Save(std::wstring wFileName)
|
||||
{
|
||||
if (isDisposed)
|
||||
{
|
||||
//throw CFException("Compound File closed: cannot save data");
|
||||
return false;
|
||||
}
|
||||
|
||||
Stream file = OpenFileStream(wFileName, true, true);
|
||||
file->seek(0, std::ios::beg);
|
||||
|
||||
try
|
||||
if (!file) return false;
|
||||
if (file->isError()) return false;
|
||||
|
||||
file->seek(0, std::ios::beg);
|
||||
|
||||
bool result = true;
|
||||
try
|
||||
{
|
||||
Save(file);
|
||||
|
||||
@ -343,7 +351,9 @@ void CompoundFile_impl::Save(std::wstring wFileName)
|
||||
file->close();
|
||||
|
||||
throw CFException("Error saving file [" + fileName + "]", ex);
|
||||
result = false;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@ -1796,7 +1806,6 @@ _INT32 CompoundFile_impl::GetSectorSize()
|
||||
{
|
||||
return 2 << (header->sectorShift - 1);
|
||||
}
|
||||
|
||||
void CompoundFile_impl::Dispose(bool disposing)
|
||||
{
|
||||
try
|
||||
|
||||
@ -1,34 +1,34 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "cfstorage.h"
|
||||
@ -56,7 +56,7 @@ class CompoundFile_impl;
|
||||
class CompoundFile
|
||||
{
|
||||
public:
|
||||
CompoundFile(const std::wstring &fileName, CFSUpdateMode updateMode, CFSConfiguration configParameters = Default);
|
||||
CompoundFile(const std::wstring &fileName, CFSUpdateMode updateMode, int configParameters = Default);
|
||||
CompoundFile(CFSVersion cfsVersion, CFSConfiguration configFlags);
|
||||
CompoundFile(const std::wstring &fileName);
|
||||
CompoundFile(Stream stream);
|
||||
@ -64,7 +64,7 @@ public:
|
||||
|
||||
std::shared_ptr<CFStorage> RootStorage();
|
||||
|
||||
void Save(std::wstring wFileName);
|
||||
bool Save(std::wstring wFileName);
|
||||
void Save(Stream stream);
|
||||
|
||||
void Commit(bool releaseMemory = false);
|
||||
|
||||
@ -1,34 +1,34 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "compoundfile.h"
|
||||
@ -49,7 +49,7 @@ class DirectoryEntry;
|
||||
class CompoundFile_impl
|
||||
{
|
||||
public:
|
||||
CompoundFile_impl(const std::wstring &fileName, CFSUpdateMode updateMode, CFSConfiguration configParameters = Default);
|
||||
CompoundFile_impl(const std::wstring &fileName, CFSUpdateMode updateMode, int configParameters = Default);
|
||||
CompoundFile_impl(CFSVersion cfsVersion, CFSConfiguration configFlags);
|
||||
CompoundFile_impl(const std::wstring &fileName);
|
||||
CompoundFile_impl(Stream stream);
|
||||
@ -59,10 +59,9 @@ public:
|
||||
// Main methods
|
||||
std::shared_ptr<CFStorage> RootStorage();
|
||||
|
||||
void Save(std::wstring wFileName);
|
||||
bool Save(std::wstring wFileName);
|
||||
void Save(Stream stream);
|
||||
|
||||
|
||||
void Commit(bool releaseMemory = false);
|
||||
bool HasSourceStream() const;
|
||||
bool ValidationExceptionEnabled() const;
|
||||
@ -140,7 +139,7 @@ private:
|
||||
CFSVersion getVersion() const;
|
||||
|
||||
public:
|
||||
CFSConfiguration configuration = Default;
|
||||
int configuration = Default;
|
||||
std::unique_ptr<Header> header;
|
||||
Stream sourceStream;
|
||||
|
||||
|
||||
@ -1,34 +1,34 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#include "directoryentry.h"
|
||||
#include <sstream>
|
||||
#include "cfexception.h"
|
||||
|
||||
@ -1,34 +1,34 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "svector.h"
|
||||
|
||||
@ -1,34 +1,34 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <functional>
|
||||
|
||||
@ -1,34 +1,34 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../../OOXML/Base/Types_32.h"
|
||||
|
||||
@ -1,34 +1,34 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#include "header.h"
|
||||
#include "cfexception.h"
|
||||
#include "streamrw.h"
|
||||
|
||||
@ -1,34 +1,34 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "sector.h"
|
||||
|
||||
@ -1,34 +1,34 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <map>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user