From 2d52ee06786e5caf0c2d65a4b4bb7c45c6493190 Mon Sep 17 00:00:00 2001 From: "simonpj@microsoft.com" Date: Thu, 1 Mar 2007 11:45:13 +0000 Subject: [PATCH] Do not go into an infinite loop when pretty-printer finds a negative indent (Trac #1176) --- compiler/utils/Pretty.lhs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/compiler/utils/Pretty.lhs b/compiler/utils/Pretty.lhs index 31d65f2..0fc817f 100644 --- a/compiler/utils/Pretty.lhs +++ b/compiler/utils/Pretty.lhs @@ -225,6 +225,7 @@ allow you to use either GHC or Hugs. To get GHC, just set the CPP variable #define GR ># #define GREQ >=# #define LT <# +#define LTEQ <=# #define DIV `quotInt#` @@ -994,11 +995,11 @@ cant_fail = error "easy_display: NoDoc" indent n | n GREQ ILIT(8) = '\t' : indent (n MINUS ILIT(8)) | otherwise = spaces n -multi_ch ILIT(0) ch = "" -multi_ch n ch = ch : multi_ch (n MINUS ILIT(1)) ch +multi_ch n ch | n LTEQ ILIT(0) = "" + | otherwise = ch : multi_ch (n MINUS ILIT(1)) ch -spaces ILIT(0) = "" -spaces n = ' ' : spaces (n MINUS ILIT(1)) +spaces n | n LTEQ ILIT(0) = "" + | otherwise = ' ' : spaces (n MINUS ILIT(1)) \end{code} \begin{code} -- 1.7.10.4