From owner-svn-src-all@FreeBSD.ORG Tue May 7 04:46:09 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 98374447; Tue, 7 May 2013 04:46:09 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 7281AE0E; Tue, 7 May 2013 04:46:09 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r474k9qi028585; Tue, 7 May 2013 04:46:09 GMT (envelope-from dteske@svn.freebsd.org) Received: (from dteske@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r474k9F8028584; Tue, 7 May 2013 04:46:09 GMT (envelope-from dteske@svn.freebsd.org) Message-Id: <201305070446.r474k9F8028584@svn.freebsd.org> From: Devin Teske Date: Tue, 7 May 2013 04:46:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r250321 - head/usr.sbin/bsdconfig/dot X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 May 2013 04:46:09 -0000 Author: dteske Date: Tue May 7 04:46:08 2013 New Revision: 250321 URL: http://svnweb.freebsd.org/changeset/base/250321 Log: Recursively calculate includes. This solves the problem of some includes missing from the graph, but it also unfortunately forces yet another bug in graphviz dot(1) to appear. When edge labels are enabled (using '\T') with this many edges, dot(1) will do bad things in init_rank() and often crash. So while we're here, let's disable edge labels for the include- relationship graph feature. Modified: head/usr.sbin/bsdconfig/dot/dot Modified: head/usr.sbin/bsdconfig/dot/dot ============================================================================== --- head/usr.sbin/bsdconfig/dot/dot Tue May 7 04:40:57 2013 (r250320) +++ head/usr.sbin/bsdconfig/dot/dot Tue May 7 04:46:08 2013 (r250321) @@ -276,20 +276,26 @@ if [ "$SHOW_INCLUDES" ]; then # # Search previously-discovered include files for further includes # - for file in $include_file_list; do - include_file_list="$include_file_list $( - awk "$print_includes_awk" $BSDCFG_SHARE/$file - )" - done + before="$include_file_list" + while :; do + for file in $include_file_list; do + include_file_list="$include_file_list $( + awk "$print_includes_awk" $BSDCFG_SHARE/$file + )" + done - # - # Sort the list of includes and remove duplicate entries [again] - # - include_file_list=$( - for include_file in $include_file_list; do - echo "$include_file" - done | sort -u - ) + # + # Sort list of includes and remove duplicate entries [again] + # + include_file_list=$( + for include_file in $include_file_list; do + echo "$include_file" + done | sort -u + ) + + [ "$include_file_list" = "$before" ] && break + before="$include_file_list" + done fi # @@ -435,7 +441,8 @@ if [ "$SHOW_INCLUDES" ]; then shape=oval color=black fillcolor=white style=filled edge_color=grey begin_nodelist "$shape" "$color" "$fillcolor" "$style" print_node edge "style = dashed" "color = $edge_color" - print_node edge "label = \"\\T\"" "fontsize = 9" + #print_node edge "label = \"\\T\"" "fontsize = 9" + # NOTE: Edge labels are buggy on large graphs file_list=$( for file in \ $BSDCONFIG \