Skip to content

Latest commit

 

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

K - An Enhanced Fork of Joe's Own Editor

Project Goal

Create a new fork of joe-4.6 that incorporates the feature enhancements from the k21 fork of joe2.1. The result will be a modern K editor that benefits from JOE 4.6's improved codebase while retaining K's distinctive features.

Repository Structure

Folder Description
joe2.1/ Original JOE 2.1 source (reference)
k21/ K fork of JOE 2.1 with feature enhancements
joe-4.6/ Original JOE 4.6 source (base for new fork)
k46/ K fork of JOE 4.6 (active development)

Key Documents

  • Features.md — Complete list of K21 features to port to K46
  • k21/krc — K configuration file with custom keybindings
  • k21/keys.tpt — Visual keyboard reference for K bindings

JOE 4.6 vs JOE 2.1: Notable Differences

When porting K features, be aware of these JOE 4.6 changes:

File Locking

  • JOE 4.6: Uses symlink-based locking (creates .#filename symlinks)
  • K21: Uses flock() system call
  • Recommendation: Replace JOE 4.6's symlink locking with K21's flock() approach — cleaner, no filesystem artifacts, compatible with other tools

File Change Detection

  • JOE 4.6: Detects external file modifications when you edit (checks mtime every 15 seconds of editing activity, warns before your changes overwrite external ones)
  • K21: No such feature
  • Status: K46 inherits this from JOE 4.6 — complements K's file locking

Codebase Improvements

JOE 4.6 includes many modernizations:

  • Unicode support
  • Syntax highlighting
  • Better terminal handling
  • Improved build system (autoconf)
  • Many bug fixes accumulated over 20+ years

Many of K21's compilation fixes (POSIX compliance, missing headers, symbol conflicts) are likely already resolved in JOE 4.6.

Porting Strategy

  1. Start fresh in a new k46/ folder — copy from joe-4.6/
  2. Reference Features.md for the complete feature list
  3. Compare implementations — check if JOE 4.6 already has equivalent functionality
  4. Port behavioral changes — focus on user-facing features, not compilation fixes
  5. Adapt the krc config — JOE 4.6's rc file format may differ slightly

K21 History

K was created as a fork of JOE 2.1 to add:

  • Session persistence (resume editing where you left off)
  • File locking (prevent concurrent edits)
  • Timestamped backups (preserve edit history)
  • Improved macro system
  • Custom keybindings optimized for the author's workflow

The editor was renamed from "joe" to "k" with its own configuration file krc.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages