Index: main.cpp
===================================================================
RCS file: /sources/groff/groff/src/preproc/tbl/main.cpp,v
retrieving revision 1.14
diff -u -r1.14 main.cpp
--- main.cpp	5 Jan 2009 20:11:10 -0000	1.14
+++ main.cpp	5 Feb 2010 03:50:26 -0000
@@ -498,6 +498,11 @@
 	error("`nospaces' option does not take an argument");
       opt->flags |= table::NOSPACES;
     }
+    else if (strieq(p, "nowarn")) {
+      if (arg)
+	error("`nowarn' option does not take an argument");
+      opt->flags |= table::NOWARN;
+    }
     else if (strieq(p, "decimalpoint")) {
       if (!arg)
 	error("`decimalpoint' option requires argument in parentheses");
Index: table.cpp
===================================================================
RCS file: /sources/groff/groff/src/preproc/tbl/table.cpp,v
retrieving revision 1.21
diff -u -r1.21 table.cpp
--- table.cpp	4 Feb 2010 20:11:46 -0000	1.21
+++ table.cpp	5 Feb 2010 03:50:28 -0000
@@ -2079,10 +2079,11 @@
   prints("\n");
   prints(".if \\n[" EXPAND_REG "]<0 \\{");
   entry_list->set_location();
-  prints(".tm1 \"warning: file `\\n[.F]', around line \\n[.c]:\n"
-         ".tm1 \"  table wider than line width\n"
-	 ".nr " EXPAND_REG " 0\n"
-	 ".\\}\n");
+  if( !(flags & NOWARN) )
+	  prints(".tm1 \"warning: file `\\n[.F]', around line \\n[.c]:\n"
+			 ".tm1 \"  table wider than line width\n"
+		 ".nr " EXPAND_REG " 0\n" );
+  prints(".\\}\n");
   if (colcount > 1)
     printfs(".nr " EXPAND_REG " \\n[" EXPAND_REG "]/%1\n",
 	    as_string(colcount));
@@ -2118,15 +2119,17 @@
   printfs("/%1\n", as_string(total_separation));
   prints(".ie \\n[" SEPARATION_FACTOR_REG "]<=0 \\{");
   entry_list->set_location();
-  prints(".tm1 \"warning: file `\\n[.F]', around line \\n[.c]:\n"
-         ".tm1 \"  column separation set to zero\n"
-	 ".nr " SEPARATION_FACTOR_REG " 0\n"
-	 ".\\}\n"
+  if( !(flags & NOWARN) )
+	  prints(".tm1 \"warning: file `\\n[.F]', around line \\n[.c]:\n"
+			 ".tm1 \"  column separation set to zero\n"
+		 ".nr " SEPARATION_FACTOR_REG " 0\n" );
+  prints( ".\\}\n"
 	 ".el .if \\n[" SEPARATION_FACTOR_REG "]<1n \\{");
   entry_list->set_location();
-  prints(".tm1 \"warning: file `\\n[.F]', around line \\n[.c]:\n"
-         ".tm1 \"  table squeezed horizontally to fit line length\n"
-	 ".\\}\n");
+  if( !(flags & NOWARN) )
+	  prints(".tm1 \"warning: file `\\n[.F]', around line \\n[.c]:\n"
+			 ".tm1 \"  table squeezed horizontally to fit line length\n" );
+  prints( ".\\}\n");
 }
 
 void table::compute_column_positions()
Index: table.h
===================================================================
RCS file: /sources/groff/groff/src/preproc/tbl/table.h,v
retrieving revision 1.16
diff -u -r1.16 table.h
--- table.h	5 Jan 2009 20:11:10 -0000	1.16
+++ table.h	5 Feb 2010 03:50:28 -0000
@@ -142,6 +142,7 @@
     DOUBLEBOX    = 0x00000010,
     NOKEEP       = 0x00000020,
     NOSPACES     = 0x00000040,
+	NOWARN       = 0x00000080,
     EXPERIMENTAL = 0x80000000	// undocumented; use as a hook for experiments
     };
   char *expand;
Index: tbl.man
===================================================================
RCS file: /sources/groff/groff/src/preproc/tbl/tbl.man,v
retrieving revision 1.29
diff -u -r1.29 tbl.man
--- tbl.man	28 Oct 2009 18:53:43 -0000	1.29
+++ tbl.man	5 Feb 2010 03:50:29 -0000
@@ -172,6 +172,11 @@
 .I x
 instead of a tab to separate items in a line of input data.
 .
+.TP
+.B nowarn
+Turn off warnings related to tables
+exceeding the current line width (GNU tbl only).
+.
 .LP
 The global options must end with a semicolon.
 There might be whitespace between an option and its argument in parentheses.
