| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -8,4 +8,4 @@ console.log( oid.mkstr('1838CCD') ); | |||
| 8 | 8 | ||
| 9 | 9 | // Test formatting | |
| 10 | 10 | console.log( oid.mkstr('5f2aa9407f7b3aeb531c621c3358953841ccfc98') ); | |
| 11 | - console.log( oid.fmt() ); | ||
| 11 | + console.log( oid.toString(40) ); | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -23,6 +23,7 @@ void Oid::Initialize(Handle<Object> target) { | |||
| 23 | 23 | NODE_SET_PROTOTYPE_METHOD(constructor_template, "mkstr", Mkstr); | |
| 24 | 24 | NODE_SET_PROTOTYPE_METHOD(constructor_template, "mkraw", Mkraw); | |
| 25 | 25 | NODE_SET_PROTOTYPE_METHOD(constructor_template, "fmt", Fmt); | |
| 26 | + NODE_SET_PROTOTYPE_METHOD(constructor_template, "toString", ToString); | ||
| 26 | 27 | ||
| 27 | 28 | target->Set(String::NewSymbol("Oid"), constructor_template->GetFunction()); | |
| 28 | 29 | } | |
@@ -44,9 +45,17 @@ void Oid::Mkraw(const unsigned char *raw) { | |||
| 44 | 45 | } | |
| 45 | 46 | ||
| 46 | 47 | char* Oid::Fmt() { | |
| 47 | - char* raw; | ||
| 48 | - git_oid_fmt(raw, &this->oid); | ||
| 49 | - return raw; | ||
| 48 | + char* buffer; | ||
| 49 | + git_oid_fmt(buffer, &this->oid); | ||
| 50 | + | ||
| 51 | + return buffer; | ||
| 52 | + } | ||
| 53 | + | ||
| 54 | + char* Oid::ToString(size_t length) { | ||
| 55 | + char* buffer; | ||
| 56 | + git_oid_to_string(buffer, length, (const git_oid*)&this->oid); | ||
| 57 | + | ||
| 58 | + return buffer; | ||
| 50 | 59 | } | |
| 51 | 60 | ||
| 52 | 61 | Handle<Value> Oid::New(const Arguments& args) { | |
@@ -94,4 +103,16 @@ Handle<Value> Oid::Fmt(const Arguments& args) { | |||
| 94 | 103 | return String::New(oid->Fmt()); | |
| 95 | 104 | } | |
| 96 | 105 | ||
| 106 | + Handle<Value> Oid::ToString(const Arguments& args) { | ||
| 107 | + Oid *oid = ObjectWrap::Unwrap<Oid>(args.This()); | ||
| 108 | + | ||
| 109 | + HandleScope scope; | ||
| 110 | + | ||
| 111 | + if(args.Length() == 0 || !args[0]->IsNumber()) { | ||
| 112 | + return ThrowException(Exception::Error(String::New("Length argument is required and must be a Number."))); | ||
| 113 | + } | ||
| 114 | + | ||
| 115 | + return String::New(oid->ToString((size_t)Local<Integer>::Cast(args[0])->Value())); | ||
| 116 | + } | ||
| 117 | + | ||
| 97 | 118 | Persistent<FunctionTemplate> Oid::constructor_template; | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -26,7 +26,7 @@ class Oid : public EventEmitter { | |||
| 26 | 26 | char* Fmt(); | |
| 27 | 27 | //void pathfmt(char *str, const git_oid *oid) | |
| 28 | 28 | //char* allocfmt(const git_oid *oid) | |
| 29 | - //char* to_string(char *out, size_t n, const git_oid *oid) | ||
| 29 | + char* ToString(size_t length); | ||
| 30 | 30 | //void cpy(git_oid *out, const git_oid *src) | |
| 31 | 31 | //int cmp(const git_oid *a, const git_oid *b) | |
| 32 | 32 | ||
@@ -37,6 +37,7 @@ class Oid : public EventEmitter { | |||
| 37 | 37 | static Handle<Value> Mkstr(const Arguments& args); | |
| 38 | 38 | static Handle<Value> Mkraw(const Arguments& args); | |
| 39 | 39 | static Handle<Value> Fmt(const Arguments& args); | |
| 40 | + static Handle<Value> ToString(const Arguments& args); | ||
| 40 | 41 | ||
| 41 | 42 | private: | |
| 42 | 43 | git_oid oid; | |
| Back | FazBrowse Home | New Git URL |
0 commit comments