Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
MGDIFF(1)		     General Commands Manual		       MGDIFF(1)

NAME
     mgdiff - Motif-based graphical file difference browser

SYNOPSIS
     mgdiff  [-toolkitoption  ...]  [-quit] [-file name] [-args diffargs] [file1
     file2]

DESCRIPTION
     Mgdiff is a graphical front end to the diff command.  It permits  the  user
     to view the differences between two ASCII files in context and, optionally,
     to  write	out  a third file which is the user-defined merging of those two
     files.  It is inspired by a similar program, called gdiff, which runs  only
     on Silicon Graphics workstations and for which source code is not provided.

     The  program  takes  as arguments various flags (described in the next sec-
     tion) and the names of two files to  compare.   Either  filename  (but  not
     both) may be given as '-' to use standard input instead.

     The  resulting display consists mostly of two panes of text; the one on the
     left is the first file specified and the one on the  right  is  the  second
     file  specified.  Between and below the text panes are scrollbars that per-
     mit changing the visible portions of the two files being compared.  In  ad-
     dition,  the program implements the Scrolled Region recommendations of Sec-
     tion 2.3.4 of the OSF/Motif Style Guide (release 1.1), meaning that the ar-
     row and paging keys will work to scroll as well.  Above each text	pane  is
     the  name	of  the  file  in that text pane and the line number in the file
     which is being displayed.

     The text in each of the text panes is divided into blocks	of  lines  which
     are color-coded with one of five different colors.  This indicates that the
     block:

	    differs between the two files

	    is identical between the two files

	    has been inserted in one file or the other

	    is	for  display  purposes	(to match an inserted block in the other
	    file)

	    has been selected by the user (for writing to a merged file)

     These colors can be modified by the user via X resources; see the RESOURCES
     section of this manual page.  A legend display  of  the  colors  and  their
     meanings is available using the Help menu.

     On  the  right-hand side of the display is an overview area; this shows the
     files in their entirety.  The sliders in the overview area track the  lines
     being displayed in the text panes.

     At  the  top  of  the display is a Motif menu bar; those functions are dis-
     cussed in the MENUS section of this manual page.

COMMAND LINE OPTIONS
     -toolkitoption
	     These are the standard options accepted by  all  applications  that
	     use  the X Toolkit Intrinsics.  See the OPTIONS section in the X(1)
	     manual page.

     -quit   This option sets the resource Mgdiff.quitIfSame  to  "true".   This
	     will  cause  the  program to exit immediately without bringing up a
	     window if the two files have no differences (as determined  by  the
	     diff command).

     -args diffargs
	     This  option  sets the resource Mgdiff.diffArgs to the value of the
	     diffargs argument.  These flags are passed to the diff command that
	     actually computes the differences between the two files.  Since any
	     argument can be passed, it is possible to specify flags that  cause
	     the  diff command to fail or to generate output in a different for-
	     mat that will cause mgdiff to fail.  For  most  versions  of  diff,
	     only  three  flags  make any sense.  The first is '-b'; this causes
	     diff to ignore trailing blanks (spaces and tabs) and to  treat  all
	     other  strings  of  blanks as equivalent.	The second flag is '-w';
	     this ignores blanks and treats strings  of  blanks  as  equivalent.
	     The last flag is '-i'; this ignores case when comparing letters.

     -file name
	     This  command sets the resource Mgdiff.filename to the value of the
	     name argument.  mgdiff uses this string to display over a file read
	     from standard input.

MENUS
     The menubar contains the following menu  topics  as  CascadeButtons:  File,
     View,  Select,  Options  and Help.  The rest of this section discusses each
     menu entry, showing it's name and accelerator, if any.

     File

     This pulldown menu controls file access:

	    Open...			  Ctrl+O

	    Brings up the "Open Files" FileSelectionDialog to allow the user  to
	    open two files for comparison.

	    Open Left...		  Ctrl+L

	    Brings  up	the "Open File" FileSelectionDialog to allow the user to
	    specify  a	file  to  open	and  compare  with  the  already  opened
	    right-hand file.

	    Open Right...		  Ctrl+R

	    Brings  up	the "Open File" FileSelectionDialog to allow the user to
	    specify a file to open and compare with the already opened left-hand
	    file.

	    Save As...			  Ctrl+S

	    Brings up the "Save File" FileSelectionDialog to allow the	user  to
	    specify  an  output file for writing the merged file; this is an ap-
	    plication modal dialog.  The program will allow the  user  to  over-
	    write  an  existing  file  but pops up a QuestionDialog to allow the
	    user to cancel the operation if desired.  If  there  are  any  unse-
	    lected  areas  of difference between the two files the user is noti-
	    fied via an ErrorDialog and the save operation is canceled.

	    Exit			  Ctrl+C

	    Exits the program immediately.

     View

     This pulldown menu contains commands for moving through the files.

	    Previous			  Ctrl+P

	    Scrolls both file views so that the previous area of  difference  is
	    Mgdiff.linesOfContext lines from the top of the application window.

	    Next			  Ctrl+N

	    Scrolls  both  file  views	so  that  the next area of difference is
	    Mgdiff.linesOfContext lines from the top of the application window.

	    Next Unselected		  Ctrl+U

	    Scrolls both file views so that the next unselected area of  differ-
	    ence  is Mgdiff.linesOfContext lines from the top of the application
	    window.

     Select

     The two files being compared can be optionally merged into one file.  To do
     this, the user must select for each area  of  difference  between	the  two
     files which version should be written to the merged file.	The menu entries
     in  this  pulldown menu allow the user to select or unselect differences in
     groups rather than individually.

	    Left All

	    For all areas  of  difference  between  the  two  files  select  the
	    left-hand file version.

	    Right All

	    For  all  areas  of  difference  between  the  two	files select the
	    right-hand file version.

	    Unselect All

	    Unselects all areas of difference in both files.

     Options

     This pulldown menu controls miscellaneous appearance  and/or  behavior  op-
     tions.

	    Overview			  Ctrl+W

	    This  menu	entry  toggles	the presence of the overview area on the
	    right-hand side of the application window.	The  default  value  for
	    this  toggle  is controlled by a resource, Mgdiff.overview, which is
	    described in the RESOURCES section.

	    Horizontal Scrollbar	  Ctrl+H

	    This menu entry toggles the presence of the horizontal scrollbar  at
	    the  bottom  of  the application window.  The default value for this
	    toggle is controlled by a resource, Mgdiff.horzScrollbar,  which  is
	    described in the RESOURCES section.

	    Drag Scroll 		  Ctrl+D

	    This  menu	entry toggles the behaviour of the scrollbars in the ap-
	    plication window.  When set, dragging the slider of a scrollbar  re-
	    sults  in a immediate change in the view of the text being compared.
	    When unset, the view is only changed at the end  of  a  slider  drag
	    (when  the	mouse  button  is released.)  This setting might be pre-
	    ferred on a slower X server.  The default value for this  toggle  is
	    controlled	by  a resource, Mgdiff.dragScroll, which is described in
	    the RESOURCES section.

     Help

     This pulldown menu displays commands for obtaining help on  or  information
     about mgdiff.

	    Version...			  Ctrl+V

	    Brings up an InformationDialog with author and version information.

	    Manual Page...		  Ctrl+M

	    Brings  up	a DialogShell with a ScrolledText widget containing this
	    manual page.  The command for generating this is customizable via  a
	    resource,  Mgdiff.manCommand,  which  is  described in the RESOURCES
	    section.

	    Color Legend...		  Ctrl+G

	    Brings up a DialogShell which summarizes the use of color in  encod-
	    ing the types of differences between the two files being compared.

OTHER DISPLAYS/CONTROLS
     You  can move directly to a particular spot in the two files by using BDrag
     in the overview area.

     The program uses what the OSF/Motif Style Guide calls "multiple  selection"
     to select individual blocks for writing to a merged file.	Clicking BSelect
     on  an  unselected  block adds it to the list of selected blocks.	Clicking
     BSelect on a selected block removes it from the list  of  selected  blocks.
     In  addition,  Clicking  BSelect on an unselected block which is opposite a
     selected block (in the other text panes) removes the  selected  block  from
     the list of selected blocks.

     The  numbers in the small boxes next to the file names are the line numbers
     of the lines at the top of the text panes.

WIDGETS
     What follows is the hierarchy of Motif widgets, as generated by editres(1).
     The hierarchical structure of the widget tree is reflected in the	indenta-
     tion.   Each  line consists of the widget class name followed by the widget
     instance name.  This information might be useful if you wish  to  customize
     the appearance of the program via resource settings.

     Mgdiff  mgdiff
	  XmMainWindow	mainw
	       XmSeparatorGadget  MainWinSep1
	       XmSeparatorGadget  MainWinSep2
	       XmSeparatorGadget  MainWinSep3
	       XmRowColumn  menubar
		    XmCascadeButtonGadget  button_0
		    XmCascadeButtonGadget  button_1
		    XmCascadeButtonGadget  button_2
		    XmCascadeButtonGadget  button_3
		    XmCascadeButtonGadget  button_4
		    XmMenuShell  popup_file_menu
			 XmRowColumn  select_menu
			      XmPushButtonGadget  button_0
			      XmPushButtonGadget  button_1
			      XmSeparatorGadget  separator_0
			      XmPushButtonGadget  button_2
			 XmRowColumn  file_menu
			      XmPushButtonGadget  button_0
			      XmPushButtonGadget  button_1
			      XmPushButtonGadget  button_2
			      XmPushButtonGadget  button_3
			      XmSeparatorGadget  separator_0
			      XmPushButtonGadget  button_4
			 XmRowColumn  options_menu
			      XmToggleButtonGadget  button_0
			      XmToggleButtonGadget  button_1
			      XmToggleButtonGadget  button_2
			 XmRowColumn  help_menu
			      XmPushButtonGadget  button_0
			      XmPushButtonGadget  button_1
			      XmPushButtonGadget  button_2
			 XmRowColumn  view_menu
			      XmPushButtonGadget  button_0
			      XmPushButtonGadget  button_1
			      XmPushButtonGadget  button_2
	       XmForm  form1
		    XmFrame  frame1
			 XmForm  form3
			      XmScrollBar  sbl
			      XmDrawingArea  dam
			      XmScrollBar  sbr
		    XmFrame  frame2
			 XmForm  form4
			      XmForm  form2
				   XmScrollBar	sb
				   XmForm  form21
					XmFrame  frame3
					     XmLabel  fnamel
					XmFrame  frame31
					     XmTextField  linenuml
				   XmForm  form22
					XmFrame  frame4
					     XmLabel  fnamer
					XmFrame  frame41
					     XmTextField  linenumr
				   XmDrawingArea  textl
				   XmDrawingArea  textr
			      XmScrollBar  sbh
	  XmDialogShell  version_popup
	       XmMessageBox  version
		    XmLabelGadget  symbol
		    XmLabelGadget
		    XmSeparatorGadget  separator
		    XmPushButtonGadget	OK
		    XmPushButtonGadget	Cancel
		    XmPushButtonGadget	Help
	  XmDialogShell  manualpage_popup
	       XmForm  manualpage
		    XmPanedWindow  pane
			 XmScrolledWindow  help_textSW
			      XmScrollBar  vbar
			      XmText  help_text
			 XmForm  form2a
			      XmPushButton  OK
			 XmSash  sash
			 XmSeparatorGadget  separator
			 XmSash  sash
			 XmSeparatorGadget  separator
	  XmDialogShell  legend_popup
	       XmForm  legend
		    XmPanedWindow  pane
			 XmRowColumn  rc
			      XmLabel  label1
			      XmLabel  label2
			      XmLabel  label3
			      XmLabel  label4
			      XmLabel  label5
			 XmForm  form2a
			      XmPushButton  OK
			 XmSash  sash
			 XmSeparatorGadget  separator
			 XmSash  sash
			 XmSeparatorGadget  separator
	  XmDialogShell  werror_popup
	       XmMessageBox  werror
		    XmLabelGadget  symbol
		    XmLabelGadget
		    XmSeparatorGadget  separator
		    XmPushButtonGadget	OK
		    XmPushButtonGadget	Cancel
		    XmPushButtonGadget	Help

X RESOURCES
     Mgdiff.diffForeground:   black

     Mgdiff.diffBackground:   yellow

     These colors are for blocks which differ between files.

     Mgdiff.sameForeground:   black

     Mgdiff.sameBackground:   grey

     These colors are for blocks which are identical between files.

     Mgdiff.insertForeground: black

     Mgdiff.insertBackground: orange

     These colors are for blocks which have been inserted in one file.

     Mgdiff.blankForeground:  black

     Mgdiff.blankBackground:  grey66

     These colors are for blocks which are for display purposes.

     Mgdiff.selectForeground: black

     Mgdiff.selectBackground: light slate blue

     These colors are for blocks which have been selected by the user.

     Mgdiff.font:	      7x13bold

     Font for displaying text blocks.

     Mgdiff.dragScroll:       true

     Set  to  true  if	scrollbar dragging should cause immediate changes in the
     viewed text, and false if the view should only change after  the  scrollbar
     has been moved.

     Mgdiff.overview:	      true

     Set to true if the file overview section should appear.

     Mgdiff.horzScrollbar:    true

     Set to true if the horizontal scrollbar should appear.

     Mgdiff.linesOfContext:   3

     Number of lines that should appear above a difference block gotten to using
     the Previous or Next commands.  Should be greater or equal to zero.

     Mgdiff.manCommand:       (man mgdiff | col -b) 2>&1

     The  command  (or pipeline) used to produce a formatted manual page without
     escape codes.

     Mgdiff.diffCommand:      diff

     The diff(1) compatible command to use for calculating  differences  between
     text files.

     Mgdiff.diffArgs:

     The  arguments  to be provided to the diff command.  This resource can also
     be set via the -args command line option.

     Mgdiff.quitIfSame:       false

     If the two files have no differences (as determined by  the  diff	command)
     then exit immediately without bringing up a window.  This resource can also
     be set to "true" via the -quit command line option.

     Mgdiff.filename:	      (stdin)

     mgdiff  uses  this  string to display over a file read from standard input.
     This resource can also be set via the -file command line option.

DIAGNOSTICS
     Returns the exit status generated by the diff command.  This is  usually  0
     for no differences, 1 for some differences and 2 for errors.

SEE ALSO
     diff(1), X(1)

RESTRICTIONS
     Using  BDrag  in the overview area doesn't work well when drag scrolling is
     turned off.

     Doesn't support monochrome displays.

     Input lines longer than  BUFSIZ  (see  /usr/include/stdio.h)  are	silently
     truncated.

     The  code for parsing and passing arguments to the diff command assumes ar-
     guments are delimited by white space and does not do any quote processing.

COPYRIGHT
     Copyright (c) 1994, Daniel Williams
     See X (1) for a full statement of rights and permissions.

AUTHOR
     Daniel Williams (dan@sass.com)

ACKNOWLEDGEMENTS
     To Andrew C. Myers for writing gdiff.

								       MGDIFF(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=mgdiff&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help