From dc53423183a0c459284ebd139022b707f01af006 Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Fri, 27 Jul 2007 12:53:38 +0000 Subject: moved core files to new dir structure git-svn-id: svn://svn.alpinelinux.org/acf/core/trunk@219 ab2d0c66-481e-0410-8bed-d214d4d58bed --- lib/ed.lua | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 lib/ed.lua (limited to 'lib/ed.lua') diff --git a/lib/ed.lua b/lib/ed.lua new file mode 100644 index 0000000..2e86f08 --- /dev/null +++ b/lib/ed.lua @@ -0,0 +1,60 @@ +#!/usr/bin/lua + +require "object" + +-- ed object +Ed = Object:new{ + filename = nil, + lines = {} +} + + +-- openfile and read it to table +function Ed:open( filename, mode ) + local f = io.open( filename, mode ) + -- check that open was success + if f == nil then + return nil + end + + -- read the lines + for line in f:lines() do + table.insert( self.lines, line ) + end + f:close() + self.filename = filename + return self.lines +end + + +-- search and replace on lines that matches linematch +function Ed:find_gsub( linematch, search, replace, limit ) + local i, line + for i, line in ipairs( self.lines ) do + if string.find( line, linematch ) then + self.lines[i] = string.gsub( line, search, replace, limit ) + end + end +end + + +-- Write the table to file again +function Ed:flush( filename ) + local f = io.open( filename, "w" ) + if f == nil then + return false + end + + -- write each line to file + for i, line in ipairs( self.lines ) do + f:write(line .. "\n") -- test this! + end + f:close() + return true +end + +function Ed:insert( line ) + self.lines:insert( line ) +end + + -- cgit v1.2.3