Commit Graph

327 Commits

Author SHA1 Message Date
Alex Szpakowski e258601bb5 Fix the save dir not being created if appdata/LOVE/ doesn't exist. 2021-10-21 13:46:42 -03:00
Alex Szpakowski 9b4aea8f17 Missed some copyright date updates 2021-04-07 20:34:24 -03:00
Alex Szpakowski 21f5ba86d3 Merge branch 'master' into 12.0-development 2021-04-07 20:33:44 -03:00
Alex Szpakowski f89aabb0bb Update copyright year for 2021 2021-04-04 16:14:45 -03:00
Alex Szpakowski 04d59274ef Merge branch 'master' into 12.0-development 2021-02-14 14:45:21 -04:00
Miku AuahDark 22455276f6 Implement experimental fusing method.
https://github.com/love2d/love-android/issues/201#issuecomment-772628115
2021-02-06 22:10:49 +08:00
Alex Szpakowski 633d2fa5c8 Merge branch 'master' into 12.0-development 2021-01-06 21:49:34 -04:00
Alex Szpakowski cf67e97290 Fix another windows compile error 2021-01-01 16:41:39 -04:00
Alex Szpakowski 6e6292ccb2 Fix a potential compile error on Windows 2021-01-01 16:32:34 -04:00
Alex Szpakowski f151190548 filesystem restructure work.
Add mount/unmountCommonPath, mount/unmountFullPath, getFullCommonPath.

Reimplement identity and save directory code in terms of new commonpath code.

Add internal createRealDirectory function (not exposed, currently).
2021-01-01 16:29:40 -04:00
Miku AuahDark 61580c7a0d Update src/modules/filesystem/DroppedFile.cpp
as suggested

Co-authored-by: Qais Patankar <qaisjp@gmail.com>
2021-01-01 20:48:15 +08:00
Miku AuahDark 781acf5c4d Support for >2GB DroppedFile in desktops. 2020-12-31 16:48:42 +08:00
Alex Szpakowski f61a650a87 Add 'readonly' field to love.filesystem.getInfo's returned table 2020-12-31 00:06:41 -04:00
Miku AuahDark 7524677d4c Don't use feof to check for end-of-file in DroppedFile.
Fixes #1551

Apparently `feof` is only set when `fread(..., size, count, ...) < size * count` happends,
however we actually have code that automatically adjust amount of bytes to read
(and at "eof" it really happends to be 0) so fread is never able to set the EOF flag.
2020-12-31 10:32:05 +08:00
Alex Szpakowski 0706b6243c Add love.filesystem.mountFullPath. 2020-10-03 19:28:57 -03:00
Alex Szpakowski 5f9b5a21d0 Merge default into minor
--HG--
branch : minor
2020-01-03 22:45:36 -04:00
Alex Szpakowski fc4847c69d Update copyright for the new year 2020-01-03 22:40:36 -04:00
Alex Szpakowski aa8907612d Bitbucket webhooks missed the last commit...
--HG--
branch : minor
2019-12-23 14:51:50 -04:00
Alex Szpakowski d4a1247ca3 Potentially fix a compile error.
--HG--
branch : minor
2019-12-22 23:03:30 -04:00
Alex Szpakowski 453063e20f Windows: Use a more modern API for determining the save directory.
--HG--
branch : minor
2019-12-22 22:41:13 -04:00
Alex Szpakowski bc12312f0f macOS: rename most internal uses of "macosx" to "macos".
--HG--
branch : minor
2019-12-22 17:54:20 -04:00
Alex Szpakowski a27781aa6a macOS/iOS: Use more modern APIs for determining the save directory.
--HG--
branch : minor
2019-12-22 17:42:23 -04:00
Alex Szpakowski 23db4f4a59 Remove functions that were deprecated in LÖVE 11.
--HG--
branch : minor
2019-12-20 00:45:20 -04:00
Alex Szpakowski 2a7e39d58b Rename DroppedFile to NativeFile.
--HG--
branch : minor
2019-12-20 00:32:56 -04:00
Alex Szpakowski c2ccb56117 Remove an obsolete workaround for a Windows bug in physfs 2.0.2.
--HG--
branch : minor
2019-12-19 19:56:55 -04:00
Alex Szpakowski d9ec1d8aa4 Clean up some hacky love.filesystem code.
--HG--
branch : minor
2019-12-19 17:47:46 -04:00
Bart van Strien cb625d890a Make sure luax_getfile always returns a retained value
Before it would return a retained value if it returned a freshly constructed file, and an unretained value otherwise.
Also update all (3) call sites, to correctly retain or release as needed.
2019-08-11 11:13:22 +02:00
Alex Szpakowski 639bdb10e9 Fix love.filesystem.mount(data). Resolves issue #1506. 2019-08-02 21:06:07 -03:00
Alex Szpakowski 528c1e2390 love.filesystem's loaders in the package.loaders table error instead of crashing when no argument is given to them (resolves issue #1504). 2019-08-02 21:04:22 -03:00
Alex Szpakowski 459d31db7e Fix the Data-returning variant of love.filesystem.read/File:read to return the size that was read. Now it's consistent with the string-returning variant. 2019-07-31 19:24:17 -03:00
Alex Szpakowski cb4b45dcf1 Add Data:getFFIPointer. Similar to Data:getPointer but returns a cdata pointer directly (or nil if the FFI isn't available).
It should be preferred instead of Data:getPointer because the latter uses lightuserdata which can't store more all possible memory addresses on some new arm64 architectures, when LuaJIT is used.
2019-07-20 10:47:58 -03:00
Alex Szpakowski 0752f27bdf Update copyright year for 2019 2019-01-03 21:09:05 -04:00
Alex Szpakowski 0cefb12c13 Add a variant of love.filesystem.getInfo which filters based on file type. getInfo(filename, "directory") will only return info for non-symlinked directories, for example. 2018-03-24 14:43:56 -03:00
Bart van Strien f32237a524 Prevent error in File:lines if the last line does not end with a newline (resolves #1383) 2018-02-17 14:55:39 +01:00
Bart van Strien d60849a9d5 Fix looping in File:lines on opened files (resolves #1377) 2018-02-11 12:10:57 +01:00
Bart van Strien fc9fcd2626 Prevent needless seeking in File:lines on closed files (issue #1377) 2018-02-10 12:06:30 +01:00
Alex Szpakowski a461f2d7af Improve the error message when love.filesystem.init fails. 2018-01-28 16:53:09 -04:00
Alex Szpakowski 0bc820ee0e Merged in cigumo/love (pull request #99)
Changes Filesystem::setSource mount order on Android

Simplifies the way setSource is handled on Android. It tries to mount
first and if that fails it will copy to memory and mount.

This works alongside a separate patch to GameActivity.java submitted
to the love-android-sdl2 repo, that contains the /sdcard/lovegame
fallback mechanism, and also allows to copy the game.love to the app
cache dir, which is useful for large files.
2018-01-25 02:15:29 +00:00
Bart van Strien e80247c191 Happy new year! 2018-01-03 19:47:35 +01:00
Alex Szpakowski 0b7cb4a353 Add variants of File:read and love.filesystem.read which take an enum to determine whether they return a FileData or string. 2017-12-22 16:32:54 -04:00
Alex Szpakowski 640e8f0d2e love.filesystem.mount can accept a Data object containing zipped data.
- Add mount(Data, archivename, mountpoint [, appendtopath]). 'archivename' must be a string that has not been used with mount before.
- Add mount(FileData, mountpoint [, appendtopath]). The file path of the FileData is used as the archive name.
- Add unmount(Data).
- unmount(archivename) also works.
2017-12-16 23:09:15 -04:00
Alex Szpakowski ce46fa3ebe Remove PhysFS 2.x-specific code, it's no longer needed since we always have PhysFS 3. 2017-12-16 19:56:02 -04:00
Alex Szpakowski 1d8a3326b3 Include the physfs 3.0.1 source in love. 2017-12-15 19:41:17 -04:00
Bart van Strien 19ddc27069 Use a seekless implementation of File:lines/love.filesystem.lines
The previous algorithm would seek every time. This meant that although reading
from a filesystem would be quick (especially with disk caching), but reading
from a zip would be extremely slow.

The new version is rouhgly as fast on a filesystem, but appears not to slow
down on zips at all. Not in my tests, at least.

--HG--
branch : minor
2017-11-11 21:42:52 +01:00
Bart van Strien 9e4374935d Show (short) list of possible enum values when an invalid value is encountered (resolves #1318)
All enum errors have (hopefully) been changed to a luax_enumerror, which has a
fixed error message. If additionally a list of valid options is passed, it
lists that in the error message. For every enum error with few options I've
implemented this using a getConstants call.

This solution has been designed specifically to reduce the number of template
instantiations (as I've been told that was a concern). All new template code
happens in places where there already was an instantiation of the relevant
StringMap. Of course there is still std::vector<std::string>...

--HG--
branch : minor
2017-10-02 17:11:53 +02:00
Alex Szpakowski bdc6eb3b29 Fix copy/paste error in the love.filesystem.isDirectory deprecation message.
--HG--
branch : minor
2017-09-25 15:52:49 +00:00
Alex Szpakowski 90e86c329d Add love.data module.
- Moved love.math.compress / decompress / decode / encode / hash to love.data.
- Changed love.data.compress/decompress to take the format argument first instead of second.
- Added love.data.newDataView. Returns a read-only subsection of an existing Data object.
- Added love.data.newByteData. Mostly useful in combination with LuaJIT's FFI as it has no extra methods currently.
- Added implementations of Lua 5.3's data packing APIs: love.data.packString / packData / unpack / getPackedSize.

Resolves issue #1336.
Resolves issue #1331.

--HG--
branch : minor
2017-09-24 19:25:27 -03:00
Alex Szpakowski 4ee85e1793 love get* APIs which return tables with fields can optionally accept a table argument to fill in, instead of creating a new table.
--HG--
branch : minor
2017-09-22 19:47:55 -03:00
Alex Szpakowski bf67d7ad0e PHYSFS_enumerateFiles bug has been fixed post-2.1.0.
--HG--
branch : minor
2017-09-04 01:18:48 -03:00
Alex Szpakowski e4e4c6673e Use PhysFS_getErrorByCode instead of PhysFS_getLastError, when available.
--HG--
branch : minor
2017-09-03 19:47:46 -03:00