diff -Naur rpm-5.4.10.orig/lib/rpmfc.h rpm-5.4.10/lib/rpmfc.h --- rpm-5.4.10.orig/lib/rpmfc.h 2014-04-30 17:14:01.158698669 +0400 +++ rpm-5.4.10/lib/rpmfc.h 2014-04-30 17:15:21.236691127 +0400 @@ -62,7 +62,9 @@ RPMFC_WHITE = (1 << 29), RPMFC_INCLUDE = (1 << 30), - RPMFC_ERROR = (1 << 31) + RPMFC_ERROR = (1 << 31), + + RPMFC_NODEJS = (1 << 11) } FCOLOR_t; #if defined(_RPMFC_INTERNAL) diff -Naur rpm-5.4.10.orig/lib/rpmfc.c rpm-5.4.10/lib/rpmfc.c --- rpm-5.4.10.orig/lib/rpmfc.c 2014-04-30 17:14:01.158698669 +0400 +++ rpm-5.4.10/lib/rpmfc.c 2014-04-30 17:16:46.669683082 +0400 @@ -635,6 +635,7 @@ { "perl script text", RPMFC_PERL|RPMFC_INCLUDE }, { "Perl5 module source text", RPMFC_PERL|RPMFC_MODULE|RPMFC_INCLUDE }, + { "NodeJS script text", RPMFC_NODEJS|RPMFC_INCLUDE }, { "PHP script text", RPMFC_PHP|RPMFC_INCLUDE }, { "G-IR binary database", RPMFC_TYPELIB|RPMFC_INCLUDE }, @@ -912,6 +913,8 @@ fc->fcolor->vals[fc->ix] |= RPMFC_PYTHON; else if (!strncmp(bn, "php", sizeof("php")-1)) fc->fcolor->vals[fc->ix] |= RPMFC_PHP; + else if (!strncmp(bn, "json", sizeof("json")-1)) + fc->fcolor->vals[fc->ix] |= RPMFC_NODEJS; else if (!strncmp(bn, "ruby", sizeof("ruby")-1)) fc->fcolor->vals[fc->ix] |= RPMFC_RUBY; @@ -932,6 +935,10 @@ if (is_executable || (fc->fcolor->vals[fc->ix] & RPMFC_MODULE)) xx = rpmfcHelper(fc, 'R', "python"); } else + if (fc->fcolor->vals[fc->ix] & RPMFC_NODEJS) { + xx = rpmfcHelper(fc, 'P', "nodejs"); + xx = rpmfcHelper(fc, 'R', "nodejs"); + } else if (fc->fcolor->vals[fc->ix] & RPMFC_LIBTOOL) { xx = rpmfcHelper(fc, 'P', "libtool"); #ifdef NOTYET @@ -1140,7 +1147,7 @@ /*@unchecked@*/ static struct rpmfcApplyTbl_s rpmfcApplyTable[] = { { rpmfcELF, RPMFC_ELF }, - { rpmfcSCRIPT, (RPMFC_SCRIPT|RPMFC_FONT|RPMFC_HASKELL|RPMFC_RUBY|RPMFC_PERL|RPMFC_PYTHON|RPMFC_LIBTOOL|RPMFC_PKGCONFIG|RPMFC_BOURNE|RPMFC_JAVA|RPMFC_PHP|RPMFC_MONO|RPMFC_TYPELIB) }, + { rpmfcSCRIPT, (RPMFC_SCRIPT|RPMFC_FONT|RPMFC_HASKELL|RPMFC_RUBY|RPMFC_PERL|RPMFC_PYTHON|RPMFC_LIBTOOL|RPMFC_PKGCONFIG|RPMFC_BOURNE|RPMFC_JAVA|RPMFC_PHP|RPMFC_MONO|RPMFC_TYPELIB|RPMFC_NODEJS) }, #if defined(RPM_VENDOR_MANDRIVA) { rpmfcSYMLINK, RPMFC_SYMLINK }, #endif @@ -1452,6 +1459,10 @@ else if (_suffix(s, ".php")) ftype = "PHP script text"; + /* XXX all files with extension ".json" are NodeJS for now. */ + else if (_suffix(s, ".json")) + ftype = "NodeJS script text"; + /* XXX files with extension ".typelib" are GNOME typelib for now. */ else if (_suffix(s, ".typelib")) ftype = "G-IR binary database";