6

C ファイルと関数名を渡すスクリプトが必要で、その C 関数をファイルから削除します。これを行うユーティリティはありますか?

基本的に、私は内部で開発されたライブラリをオープン ソース化し、その履歴を保持したいと考えています。ただし、ソースをオープンできない特定の機能があります。私は git filter-branch を使用してオープンソース化できないファイル全体を削除してきましたが、ファイルの一部がオープンソース化されている可能性があるファイルから特定の機能を削除する必要があるところまで来ましたが、他の機能はオープンソース化できません。git filter-branch はすべてのコミットでコマンドを実行するため、リポジトリのすべてのコミットからこの機能を削除する自動化されたものが必要です。

4

4 に答える 4

2

開いていないすべての C 関数を別のファイル/ライブラリにリファクタリングできませんか? これは機能しますが、公開リリースごとにソース コードを変更するよりもクリーンであり、おそらく長期的には保守が容易です。

リファクタリングがオプションでない場合、http: //search.cpan.org/~jtbraun/Parse-RecDescent-1.967009/demo/demo_another_Cgrammar.pl で perl ベースの C ソース コード パーサーを見つけました。いくつかのハッキングで、不要な機能を除外できるようです。

于 2013-06-02T16:46:27.407 に答える
0

Emacs。関数定義を含むテキストの領域を選択する方法は既にわかっており、他の多くの方法よりも特定のコーディング スタイルへの依存度が低くなります。これにより、何かを見逃す可能性が低くなります。少しの emacs lisp スクリプトを使用すると、ソース ツリー全体を非対話的に検索することができます。

于 2013-06-03T05:23:34.000 に答える