module Rtxt

$KCODE = 'u'
require 'jcode'

def justificar_linea(linea, ancho)
 inc = 0
 linea_j = ""
 ancho_j = 0
 cad1 = ""
 cad2 = ""
 corte = 0
 linea.split(/\s+/).each do |p|		# añadimos doble espacio desde el principio de la línea
 	linea_j << p if inc == 0 
	if inc > 0 
	 if  inc <= (ancho - linea.jsize)
		linea_j << " "*2 << p
	 else
		linea_j << " " << p
	 end
        end
	inc += 1
 end
 ancho_j = linea_j.jsize 
 if ancho_j < ancho 			# control de calidad
 	corte = linea_j.rindex(" ")
	if corte 
		cad1 = linea_j[0..corte]
		cad2 = linea_j[corte+1..-1]
	else
		cad2 = linea_j
	end
	linea_j = ""
	linea_j << cad1 << " "*(ancho - ancho_j) << cad2
	
 end	
 return linea_j
end

def nuevo_ancho(s, ancho=78, justificar=nil)
	lineas = []
	linea = ""
	alinea = 0
	s.split(/\s+/).each do |palabra|
	 alinea = linea.jsize + palabra.jsize
	 if  alinea >= ancho
		linea = justificar_linea(linea, ancho) if justificar != nil 
		lineas << linea 
		linea = palabra
	 elsif linea.empty?
	 	linea = palabra
	 else
		linea << " " << palabra
	 end
	end
	lineas << linea if linea
	return lineas.join("\n")
end

end