diff --git a/dtool/src/attach/Sources.pp b/dtool/src/attach/Sources.pp index c01a7ab56c..40a36fbd8f 100644 --- a/dtool/src/attach/Sources.pp +++ b/dtool/src/attach/Sources.pp @@ -19,8 +19,7 @@ #define INSTALL_SCRIPTS \ ctattach.drv ctunattach.drv ctquery ctdelta ctihave ctallihave \ ctunco ctattachcc cttimewarp get-cttree update-cttree get-delta \ - ctsanity ctmkelem ctmkdir ctci ctco ctrm ctmv ctmake neartool \ - newheader + ctsanity ctmkelem ctmkdir ctci ctco ctrm ctmv ctmake neartool #define INSTALL_CONFIG \ dtool.cshrc dtool.init dtool.emacs dtool.alias \ diff --git a/dtool/src/attach/newheader b/dtool/src/attach/newheader deleted file mode 100755 index 95eb3fbdc3..0000000000 --- a/dtool/src/attach/newheader +++ /dev/null @@ -1,106 +0,0 @@ -#! /bin/csh -f -# -# Automatically generate a header file for $1 -# -if ( ${#argv} < 1 ) then - echo You need to specify a filename... ala test.{c++,C,h,sal,ss} - exit 1 - endif - -# Let's do it - -# flags -set hfile=0 -set cfile=0 -set cppfile=0 -set salfile=0 - -if ( `basename $1 .h` != $1 ) set hfile=1 -if ( `basename $1 .hh` != $1 ) set hfile=1 -if ( `basename $1 .c` != $1 ) set cfile=1 -if ( `basename $1 .c++` != $1 ) set cppfile=1 -if ( `basename $1 .cxx` != $1 ) set cppfile=1 -if ( `basename $1 .cc` != $1 ) set cppfile=1 -if ( `basename $1 .C` != $1 ) set cppfile=1 -if ( `basename $1 .I` != $1 ) set cppfile=1 -if ( `basename $1 .i` != $1 ) set cppfile=1 -if ( `basename $1 .ii` != $1 ) set cppfile=1 -if ( `basename $1 .sal` != $1 ) set salfile=1 -if ( `basename $1 .ss` != $1 ) set salfile=1 -if ( `basename $1 .el` != $1 ) set salfile=1 -if ( `basename $1 .stk` != $1 ) set salfile=1 - -if ( ! ( $hfile || $cfile || $cppfile || $salfile ) ) then - echo Usage: $0 filename.ext - echo where ext is one of .h .hh .c .c++ .cxx .cc .C .sal .ss .el or .stk - exit 1 -endif - -# echo $hfile $cppfile $salfile -if ( $hfile || $cppfile ) then - - cat < +#include +#include + +char *cxx_style = +"// Filename: %s\n" +"// Created by: %s (%s)\n" +"//\n" +"////////////////////////////////////////////////////////////////////\n" +"//\n" +"// PANDA 3D SOFTWARE\n" +"// Copyright (c) 2001 - 2004, Disney Enterprises, Inc. All rights reserved\n" +"//\n" +"// All use of this software is subject to the terms of the Panda 3d\n" +"// Software license. You should have received a copy of this license\n" +"// along with this source code; you will also find a current copy of\n" +"// the license at http://etc.cmu.edu/panda3d/docs/license/ .\n" +"//\n" +"// To contact the maintainers of this program write to\n" +"// panda3d-general@lists.sourceforge.net .\n" +"//\n" +"////////////////////////////////////////////////////////////////////\n" +"\n"; + +char *c_style = +"/* Filename: %s\n" +" * Created by: %s (%s)\n" +" *\n" +" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n" +" *\n" +" * PANDA 3D SOFTWARE\n" +" * Copyright (c) 2001 - 2004, Disney Enterprises, Inc. All rights reserved\n" +" *\n" +" * All use of this software is subject to the terms of the Panda 3d\n" +" * Software license. You should have received a copy of this license\n" +" * along with this source code; you will also find a current copy of\n" +" * the license at http://etc.cmu.edu/panda3d/docs/license/ .\n" +" *\n" +" * To contact the maintainers of this program write to\n" +" * panda3d-general@lists.sourceforge.net .\n" +" *\n" +" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */\n" +"\n"; + +struct FileDef { + const char *extension; + const char *header; +}; + +FileDef file_def[] = { + { "h", cxx_style }, + { "cxx", cxx_style }, + { "I", cxx_style }, + { "T", cxx_style }, + { "c", c_style }, + { NULL, NULL }, +}; + +void +generate_header(const char *header, const string &filename) { + char *username = getenv("USER"); + if (username == NULL) { + username = ""; + } + + static const size_t max_date_buffer = 128; + char date_buffer[max_date_buffer]; + time_t now = time(NULL); + strftime(date_buffer, max_date_buffer, "%d%b%y", localtime(&now)); + + printf(header, filename.c_str(), username, date_buffer); +} + +int +main(int argc, char *argv[]) { + if (argc < 2) { + cerr << "Must specify the filename to generate a header for.\n"; + exit(1); + } + + string filename = argv[1]; + size_t dot = filename.rfind('.'); + if (dot == string::npos) { + // No extension, no header. + return 0; + } + + string extension = filename.substr(dot + 1); + + size_t i = 0; + while (file_def[i].extension != NULL) { + if (extension == file_def[i].extension) { + generate_header(file_def[i].header, filename); + return 0; + } + i++; + } + + // No matching extension, no problem. + return 0; +}