Fix multi-line string escaping issues with special characters#111
Open
konard wants to merge 4 commits into
Open
Fix multi-line string escaping issues with special characters#111konard wants to merge 4 commits into
konard wants to merge 4 commits into
Conversation
Adding CLAUDE.md with task information for AI processing. This file will be removed when the task is complete. Issue: #37
Resolves #37: Multi-line strings containing backticks, dollar signs, and quotes are now properly handled without corruption when used with echo commands. **Changes:** - Enhanced quote() function to detect complex multi-line strings - Updated regex patterns to handle multi-line content (added 's' flag) - Added virtual command bypass for complex echo > file patterns - Created _write_multiline_content virtual command for safe file writing - Added comprehensive test suite for various special character scenarios **Technical Details:** - Complex multi-line strings (with newlines + backticks/dollar signs) are automatically detected and processed via virtual command to bypass shell interpretation entirely - Simple strings continue to work as before (backward compatible) - Content is base64-encoded when passed to virtual command to prevent corruption **Test Coverage:** - Multi-line strings with mixed special characters ✅ - README files, configuration files, code examples ✅ - Backticks, dollar signs, quotes preservation ✅ - Backward compatibility with simple strings ✅ 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #37: Multi-line strings containing special shell characters (backticks `, dollar signs $, quotes) are now properly preserved when used with echo commands, preventing corruption due to shell interpretation.
Problem
Previously, complex multi-line strings would get corrupted when passed through command-stream's template literals:
Solution
Automatic Detection & Virtual Command Bypass
quote()function detects multi-line strings with shell special charactersTechnical Changes
sflag_write_multiline_contentvirtual command for safe file writingTest Coverage
Files Changed
src/$.mjs: Core logic enhancementsrc/commands/$._write_multiline_content.mjs: New virtual commandtests/multiline-escaping.test.mjs: Comprehensive test suiteexamples/test-multiline-escaping.mjs: Demonstration scriptdocs/MULTILINE_ESCAPING_FIX.md: Technical documentationBackward Compatibility
✅ All existing functionality preserved. The fix only activates for:
\n)echo ... > filepatterns🤖 Generated with Claude Code