#!/bin/bash # This file is part of the LibreOffice project. # # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. # corrects include guards for hxx/h files automatically by its path. # Usage: # a) fixincludeguards.sh header.hxx # b) find . -name *.hxx -or -name *.h | xargs bash ./bin/fixincludeguards.sh # TODO: This doesn't fix wrong #endif comments, like: # #ifndef FOO_BAR_HXX # #define FOO_BAR_HXX # ... # #endif // OTHER_BAR_HXX # TODO: Make this portable. As it is now, it likely only works on Linux, or # other platforms with a purely GNU toolset. guard_prefix="INCLUDED_" for fn in "$@"; do # remove leading ./, if invoked with find fn=`echo "$fn" | sed 's/^.\///g'` # global header in include/ top level dir: # drop the project dir fnfixed=`echo $fn | sed 's,include/,,g'` # add examples prefix to headers in odk/examples fnfixed=`echo $fnfixed | sed 's,odk/examples/\(cpp\|DevelopersGuide\|OLE\)/,examples_,g'` # convert file path to header guard guard=`echo "$fnfixed" | sed 's/[\/\.-]/_/g' | tr 'a-z' 'A-Z'` if [ aa"`git grep -h "^\s*#ifndef ${guard_prefix}$guard" "$fn" | wc -l`" != "aa1" ] || [ aa"`git grep -h "^\s*#define ${guard_prefix}$guard" "$fn" | wc -l`" != "aa1" ]; then # pattern which identifies guards, common one look like # _MODULE_FILE_HXX, FILE_H, FILE_INC pattern=".*\(_HXX\|_H\|_INC\|_hxx\|_h\|_inc\)" ### extract guard definition # head to take only the first match old_guard=`git grep -h "#ifndef $pattern" "$fn" | head -n1 | sed "s/.*\s\($pattern.*\)/\1/"` if [ aa"$old_guard" == aa"" ]; then echo -e "$fn: \e[00;31mwarning:\e[00m guard not detectable" continue fi if [ aa"`git grep -w "$old_guard" | cut -d ':' -f1 | sort -u | wc -l `" != aa"1" ]; then echo -e "$fn: \e[00;31mwarning:\e[00m $old_guard guard definition used in other files" continue fi ### skip some special files... # skip this comphelper stuff: # INCLUDED_COMPHELPER_IMPLBASE_VAR_HXX_14 if [ aa"INCLUDED_COMPHELPER_IMPLBASE_" == aa"`echo $old_guard | sed "s/VAR_HXX_[0-9]\+//g"`" ]; then continue fi # skip files like xmloff/source/forms/elementimport_impl.hxx if [ aa"`git grep -h "#error.*directly" "$fn" | wc -l`" != "aa0" ]; then continue fi ### replace old guard with new scheme guard echo "$fn: $old_guard" # includes leading whitespace removal sed -i "s/\s*${old_guard}/ ${guard_prefix}${guard}/g" "$fn" ### clean up endif sed -i "s/#endif\s*\(\/\/\|\/\*\)\s*\#\?\(ifndef\)\?\s*!\?\s*\(${guard_prefix}${guard}\).*/#endif \/\/ \3/g" "$fn" fi done 24.04.12'>distro/collabora/co-24.04.12 LibreOffice 核心代码仓库文档基金会
summaryrefslogtreecommitdiff
path: root/sysui
AgeCommit message (Expand)Author
2017-03-25Fix typosAndrea Gelmini
2017-03-19Fix typosAndrea Gelmini
2017-01-23Install a libreoffice-kde.appdata.xml file for KDE integrationAleix Pol
2017-01-04Remove useless cat, and replace backtickMuhammet Kara
2016-12-02Use hub links in AppdataSamuel Mehrbrodt
2016-11-01sysui: add "translate" urls to AppData filesMichael Stahl
2016-10-25improve debug outputDavid Tardon
2016-10-25tdf#103448 remove WPS Office exts. from MIME typesDavid Tardon
2016-08-11add StarOffice mimetypes to desktop filesDavid Tardon
2016-08-04Introduce --with-product-name superseding --with-macosx-app-nameTor Lillqvist
2016-07-07AppArmor fixes to fix testsBryan Quigley
2016-05-06tdf#70998 Termchange: Graphic->ImageSamuel Mehrbrodt
2016-04-14tdf#99251 Update AppArmor ProfilesBryan Quigley
2016-03-09tdf#82335 Register Libreoffice for Kingsoft file typesJaskaran
2016-03-02Just use xdg-openBryan Quigley
2016-02-18Add missing trailing semicolon to Keywords againAdolfo Jayme Barrientos
2016-02-18Add pdf and visio to info to Draw's linux application menu fileYousuf Philips