Comments (7)
I've been able to reproduce an issue. It appears that a file with nothing but zeroes can be represented as fully sparse, but a file that starts with zeroes and then has some nonzero values must have an explicitly-allocated block 0, or you can get failures. So far I've only seen them happen when the file is > 128KB (the transition from "sapling" to "tree" structure). I suspect the problem is that there must be at least one block allocated in the first 128KB, so that the first block in the tree's master block list is allocated.
from ciderpress.
I've seen Copy ][+ fail on such files (see issue #15), but I was not aware that the ProDOS FST had issues. What version of GS/OS are you using? Can you attach a disk image with a file that fails?
from ciderpress.
A ran some tests. A file with 1024 zeroes stored in a ShrinkIt archive occupies 3 blocks when extracted by P8 ShrinkIt, but only 1 block when extracted by GS/ShrinkIt, and 1 block when created by CiderPress. Looking at the directory entry, GS/OS set the storage type to 5 (forked) for all files, while P8 set it to 2. P8 ShrinkIt is able to "type" files extracted by either (it just can't open resource forks).
So both GS/OS and P8 are able to handle files with an initial sparse block. I'm not sure why you're seeing failures / corruption.
from ciderpress.
Glad you have been able to reproduce it. I noticed it on a tree, but another person on the Slack has seen it on a 34 KB file (i.e. sapling).
from ciderpress.
This should fix the issue: https://github.com/fadden/ciderpress/releases/tag/v4.1.0-d3
I'm always nervous messing with the filesystem stuff, but I threw a bunch of tests at it and nothing seemed to break. Let me know if it does the trick.
from ciderpress.
That's fixed it! Thanks a lot!
from ciderpress.
@fadden Indeed, good unit tests are your friend.
from ciderpress.
Related Issues (20)
- Feature Request: Create subdirectory on ProDOS image HOT 2
- ERROR: jump-to-label crosses variable initialization HOT 2
- Linux Utilities / getfile HOT 3
- File Viewer window displays incorrectly on high DPI displays HOT 12
- Feature Request: Overwrite Volume in Partition Map HOT 2
- Volumes can't be unlocked once Ciderpress locks them. HOT 4
- Some HFS timestamps are off by an hour
- Arm32/Arm64 release? HOT 2
- Bad test for end of DOS T/S list
- Stop scanning DOS catalog when unused entry found
- Feature Request: Support for adding AppleSingle files to a disk image HOT 4
- Feature Request: Editing file data in the File Viewer. HOT 6
- Painfully slow access to CF card
- Pascal filesystem adds zero-length files incorrectly
- Double Hi-Res B&W output is shifted
- AppleWorks DB converter misses last record
- AppleWorks SS column generator label is wrong
- Feature Request: allow to specify DOS catalog track HOT 4
- Nibble code doesn't check data epilog bytes
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ciderpress.