summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2006-03-21 13:57:38 +0000
committeraarne <aarne@cs.chalmers.se>2006-03-21 13:57:38 +0000
commite7f325f975eb7e816e04d06e35e0bd6dd16776ed (patch)
tree058833498fce8fc775fb8d126bb01eab8ffbf45a /src
parentda61e709ad08d059f5a2a604eb98ff82a5a15e5e (diff)
unlexer bug ; "vilka" ; lib path warning ; p -lines result
Diffstat (limited to 'src')
-rw-r--r--src/GF.hs20
-rw-r--r--src/GF/Shell.hs6
-rw-r--r--src/GF/Text/Text.hs2
3 files changed, 20 insertions, 8 deletions
diff --git a/src/GF.hs b/src/GF.hs
index 8fcd219b0..478a40d3f 100644
--- a/src/GF.hs
+++ b/src/GF.hs
@@ -31,11 +31,11 @@ import GF.Text.UTF8
import GF.Today (today,version)
import GF.System.Arch
-import System (getArgs,system)
+import System (getArgs,system,getEnv)
import Control.Monad (foldM,liftM)
import Data.List (nub)
--- AR 19/4/2000 -- 28/4/2005
+-- AR 19/4/2000 -- 21/3/2006
main :: IO ()
main = do
@@ -52,7 +52,8 @@ main = do
putStrLnFlush $ encodeUTF8 helpMsg
_ | opt forJava -> do
- putStrLnFlush $ encodeUTF8 welcomeMsg
+ welcome <- welcomeMsgLib
+ putStrLnFlush $ encodeUTF8 welcome
st <- useIOE st0 $
foldM (shellStateFromFiles os) st0 fs
sessionLineJ True st
@@ -77,8 +78,8 @@ main = do
if opt beSilent then return () else putStrLnFlush "</gfbatch>"
return ()
_ -> do
-
- ifNotSil $ putStrLnFlush $ welcomeMsg
+ welcome <- welcomeMsgLib
+ ifNotSil $ putStrLnFlush $ welcome
st <- useIOE st0 $
foldM (shellStateFromFiles os) st0 fs
if null fs then return () else (ifNotSil putCPU)
@@ -110,9 +111,16 @@ helpMsg = unlines [
"which suppresses all messages except the output and fatal errors."
]
-welcomeMsg =
+welcomeMsgLib = do
+ lib <- catch
+ (getEnv "GF_LIB_PATH" >>= return . ("GF_LIB_PATH is set to" +++))
+ (const (return "Warning: GF_LIB_PATH is not defined."))
+ return $ welcomeMsg lib
+
+welcomeMsg lib =
"Welcome to " ++ authorMsg ++++
"If ä and ö (umlaut letters) look strange, see 'h -coding'." ++
+ "\n" ++ lib ++
"\n\nType 'h' for help, and 'h [Command] for more detailed help.\n"
authorMsg = unlines [
diff --git a/src/GF/Shell.hs b/src/GF/Shell.hs
index 1077616f5..3af343bb2 100644
--- a/src/GF/Shell.hs
+++ b/src/GF/Shell.hs
@@ -24,6 +24,7 @@ import qualified GF.Grammar.Lookup as L
import qualified GF.Canon.GFC as GFC
import qualified GF.Canon.Look as Look
import qualified GF.Canon.CMacros as CMacros
+import qualified GF.Grammar.MMacros as MMacros
import qualified GF.Compile.GrammarToCanon as GrammarToCanon
import GF.Grammar.Values
import GF.UseGrammar.GetTree
@@ -236,7 +237,10 @@ execC co@(comm, opts0) sa@(sh@(st,(h,_,_,_)),a) = checkOptions st co >> case com
let ss = (if oElem showAll opts then id else filter (not . null)) $
lines $ prCommandArg a
mts <- mapM parse ss
- let a' = ATrms [t | (_,ATrms ts) <- mts, t <- ts]
+ let mark s ts = case ts of
+ [] -> [MMacros.uTree] -- to leave a trace of unparsed line
+ _ -> ts
+ let a' = ATrms [t | (s,(_,ATrms ts)) <- zip ss mts, t <- mark s ts]
changeArg (const a') sa
| otherwise -> parse $ prCommandArg a
where
diff --git a/src/GF/Text/Text.hs b/src/GF/Text/Text.hs
index 3e1b9c46d..a2a69f70c 100644
--- a/src/GF/Text/Text.hs
+++ b/src/GF/Text/Text.hs
@@ -60,7 +60,7 @@ formatAsCodeLit :: String -> String
formatAsCodeLit = formatAsCode . unwords . map unStringLit . words
formatAsText,formatAsHTML,formatAsLatex :: String -> String
-formatAsText = formatAsTextGen (=="&-") (=="&-")
+formatAsText = formatAsTextGen (const False) (=="&-")
formatAsHTML = formatAsTextGen (\s -> take 1 s == "<" || last s == '>') (const False)
formatAsLatex = formatAsTextGen ((=="\\") . take 1) (const False)