Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

Tree [36a0f4] master /
History



File Date Author Commit
documentation 2013-06-05 Ben Gardner Ben Gardner [77681b] Merge pull request #180 from berenm/cpp-lambdas
etc 2013-12-17 Ben Gardner Ben Gardner [4e1ce1] Merge branch 'alanf/space-between-block-and-squ...
man 2013-03-26 Ben Gardner Ben Gardner [20a311] Merge pull request #158 from madscientist/ms/wrap
osx 2009-10-28 Ben Gardner Ben Gardner [011a65] Merge branch 'objc'
scripts 2012-03-21 Ben Gardner Ben Gardner [5a930a] Merge branch 'master' of github.com:bengardner/...
src 2014-04-04 Ben Gardner Ben Gardner [1022db] Fix indent error if an open paren is the first ...
tests 2014-04-04 Ben Gardner Ben Gardner [36a0f4] Fix wrong test result.
uncrustify.xcodeproj 2013-12-17 Ben Gardner Ben Gardner [4e1ce1] Merge branch 'alanf/space-between-block-and-squ...
win32 2012-03-29 Ben Gardner Ben Gardner [d28e0f] Add VS2011 project files (Oleg Smolsky)
.gitignore 2012-04-28 Ben Gardner Ben Gardner [159921] Merge pull request #65 from JanX2/master
AUTHORS 2009-10-17 Ben Gardner Ben Gardner [fe25b6] Import r1644 from subversion
BUGS 2009-10-17 Ben Gardner Ben Gardner [fe25b6] Import r1644 from subversion
COPYING 2009-10-17 Ben Gardner Ben Gardner [fe25b6] Import r1644 from subversion
ChangeLog 2013-01-14 Ben Gardner Ben Gardner [15dc4b] Merge pull request #128 from ryanmaxwell/master
HELP 2009-10-17 Ben Gardner Ben Gardner [fe25b6] Import r1644 from subversion
INSTALL 2009-10-17 Ben Gardner Ben Gardner [fe25b6] Import r1644 from subversion
Makefile.am 2010-05-28 Ben Gardner Ben Gardner [d2c438] Use silent rules instead of nostdinc
Makefile.in 2013-01-01 Ben Gardner Ben Gardner [d85e62] Run autogen.sh on Ubuntu 12.10.
NEWS 2009-10-17 Ben Gardner Ben Gardner [fe25b6] Import r1644 from subversion
README 2013-10-08 Ben Gardner Ben Gardner [62d836] Merge branch 'java-class-names-with-brackets' o...
TESTING 2011-08-27 Ben Gardner Ben Gardner [95ee11] Merge pull request #32 from patnotz/testing-howto
aclocal.m4 2013-01-01 Ben Gardner Ben Gardner [d85e62] Run autogen.sh on Ubuntu 12.10.
autogen.sh 2009-10-17 Ben Gardner Ben Gardner [fe25b6] Import r1644 from subversion
commit.log 2013-01-01 Ben Gardner Ben Gardner [432aa0] Update commit.log
config.guess 2009-10-17 Ben Gardner Ben Gardner [fe25b6] Import r1644 from subversion
config.sub 2009-10-17 Ben Gardner Ben Gardner [fe25b6] Import r1644 from subversion
configure 2013-01-01 Ben Gardner Ben Gardner [d85e62] Run autogen.sh on Ubuntu 12.10.
configure.in 2013-01-01 Ben Gardner Ben Gardner [cae8a0] Update version number to 0.60
extras.vpj 2013-01-01 Ben Gardner Ben Gardner [5d1398] Add a few files to the workspace
install-sh 2013-01-01 Ben Gardner Ben Gardner [d85e62] Run autogen.sh on Ubuntu 12.10.
make_token_names.sh 2012-12-28 Ben Gardner Ben Gardner [ec14de] Remove the date from token_names.h/make_token_n...
make_win32.sh 2010-03-09 Ben Gardner Ben Gardner [b2354a] Add a script to build a win32 release zip on linux
missing 2013-01-01 Ben Gardner Ben Gardner [d85e62] Run autogen.sh on Ubuntu 12.10.
release-steps.txt 2011-10-05 Ben Gardner Ben Gardner [8efb7e] Save off changes for version 0.59
run_tests.sh 2009-10-17 Ben Gardner Ben Gardner [fe25b6] Import r1644 from subversion
uncrustify.vpj 2011-12-29 Ben Gardner Ben Gardner [044ebe] Add ability to get config from UNCRUSTIFY_CONFI...
uncrustify.vpw 2011-10-09 Ben Gardner Ben Gardner [c40457] Update SlickEdit project files
update-default-cfg.sh 2009-10-17 Ben Gardner Ben Gardner [fe25b6] Import r1644 from subversion
working.txt 2009-12-06 Ben Gardner Ben Gardner [d99335] Merge branch 'freebsd'

Read Me

README for Uncrustify
=====================

Post any bugs to the issue tracker found on the project's Sourceforge page:
  http://sourceforge.net/projects/uncrustify

Please include the following with your issue:
 - a description of what is not working right
 - input code sufficient to demonstrate the issue
 - expected output code
 - configuration options used to generate the output

If the issue cannot be easily reproduced, then it isn't likely to be fixed.


Building the program
--------------------

Quick start:
 $ ./configure
 $ make

The executable is src/uncrustify.
Copy that to your ~/bin/ folder or wherever you want.


Building the program using Xcode on Mac OS X
---------------------------------------------

You can of course just open the Xcode project and build uncrustify using the
default 'Debug' configuration but if you want to install it the 'Install'
configuration will not work from within Xcode.

For that you will have to use the Xcode command line tool 'xcodebuild'.

To do that, cd into the uncrustify project folder where uncrustify.xcodeproj
resides and enter the following command:

sudo xcodebuild -configuration 'Install'

You will be prompted for the root level password. By doing this you will install
uncrustify into /usr/local/bin. The install location can be changed by editing
the Build Settings for the uncrustify target. The setting you need to change is
called, surprisingly enough, 'Installation Directory'.


Configuring the program
-----------------------

Examine the example config files in etc and/or read
documentation/htdocs/configuration.txt.
Copy the existing config file that closely matches your style and put in
~/.uncrustify/.  Modify to your liking.


Running the program (and refining your style)
---------------------------------------------

As of the current release, I don't particularly trust this program to not make
mistakes and screw up my whitespace formatting.

Here's how to run it:
$ uncrustify -c ~/.uncrustify/mystyle.cfg -f somefile.c > somefile.c.unc

The -c option selects the configuration file.
The -f option specifies the input file.
The output is sent to stdout.  Error messages are sent to stderr.

Use a quality side-by-side diff tool to determine if the program did what you
wanted.
Repeat until your style is refined.


Running the program (once you've found your style)
--------------------------------------------------

Write a script to automate the above.
Check out etc/dofiles.sh for an example.
That script is used as follows:
1. navigate one level above your project
2. make a list of file to process
  $ find myproj -name "*.[ch]" > files.txt
3. sh etc/dofiles.sh files.txt
4. Use your favorite diff/merge program to merge in the changes
  $ xxdiff out/myproj myproj