चलो बॉलपार्क में जाने के लिए grep
का उपयोग करें। मैं default
के लिए खोज करने की परेशानी नहीं कर रहा हूं क्योंकि मुझे बहुत सारे परिणाम मिलेंगे, लेकिन मैं Type "Help"
का प्रयास करूंगा, जो कई बार प्रकट नहीं होना चाहिए। यदि यह एक सी स्ट्रिंग है, तो उद्धरण बच जाएंगे। हमें पहले सी स्ट्रिंग्स और पाइथन स्ट्रिंग्स को देखना चाहिए।
Python $ grep 'Type \\"help\\"' . -Ir
./Modules/main.c: "Type \"help\", \"copyright\", \"credits\" or \"license\" " \
यह Py_Main()
में Modules/main.c
में है,।
fprintf(stderr, "Python %s on %s\n",
Py_GetVersion(), Py_GetPlatform());
क्योंकि "पर" प्रारूप स्ट्रिंग में है, Py_GetPlatform()
linux
होना चाहिए और Py_GetVersion()
स्ट्रिंग हम चाहते हैं देना चाहिए ...
Python $ grep Py_GetVersion . -Irl
...
./Python/getversion.c
...
कि होनहार लग रहा है: अधिक खुदाई हमें इस लाइन देता है। ..
PyOS_snprintf(version, sizeof(version), "%.80s (%.80s) %.80s",
PY_VERSION, Py_GetBuildInfo(), Py_GetCompiler());
हम, Py_GetBuildInfo()
चाहते चाहिए क्योंकि यह कोष्ठकों के अंदर है ...
Python $ grep Py_GetBuildInfo . -Irl
...
./Modules/getbuildinfo.c
...
यह थोड़ा स्पष्ट दिखता है।
const char *
Py_GetBuildInfo(void)
{
static char buildinfo[50 + sizeof(HGVERSION) +
((sizeof(HGTAG) > sizeof(HGBRANCH)) ?
sizeof(HGTAG) : sizeof(HGBRANCH))];
const char *revision = _Py_hgversion();
const char *sep = *revision ? ":" : "";
const char *hgid = _Py_hgidentifier();
if (!(*hgid))
hgid = "default";
PyOS_snprintf(buildinfo, sizeof(buildinfo),
"%s%s%s, %.20s, %.9s", hgid, sep, revision,
DATE, TIME);
return buildinfo;
}
तो, default
मर्क्युरियल शाखा का नाम है। मेकफ़ाइल की जांच करके, हम यह पता लगा सकते हैं कि यह मैक्रो HGTAG
से आता है। HGTAG
नामक एक मेकफ़ाइल चर वैरिएबल उत्पन्न करता है, और वह चर कमांड के रूप में चलाया जाता है। तो,
सरल समाधान
जब अजगर का निर्माण,
Python $ ./configure
Python $ make HGTAG='echo awesome'
Python $ ./python
Python 3.2.3 (awesome, May 1 2013, 21:33:27)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
संबंधित कोड प्राप्त करने के लिए आप शायद '__DATE__' या' __TIME__' के लिए एएके कर सकते हैं। –
आप इस कोड का उपयोग दुभाषिया शो को बदलने के लिए कर सकते हैं - पायथन-'आयात sys; sys.ps1 = "$"; sys.ps2 = "" ' – fixxxer